2009-02-20 10 views
1

Elsewhere sur l'univers SO une tempête fait rage depuis un certain temps maintenant. Sur le point de savoir si les humains devraient préférer quelque chose qu'ils peuvent lire vis-à-vis de quelque chose qu'ils ne peuvent pas. Ce qui m'a fait prendre mon chapeau de pensée après une longue pause et poser une question pour les éclairés:Format vs Langue

Quand les formats évoluent-ils dans une langue spécifique au domaine? Ou, comment puis-je décider si je veux un format lisible par l'homme ou un langage spécifique au domaine. PostScript est ce qui est venu à l'esprit qui a déclenché ceci.

PS: Excuse le prologue; mod-down/close si cela a déjà été demandé. PPS: Quand je dis la langue, je veux dire vraiment un langage de programmation avec des conditions, boucles, etc.

+0

HRF? La plupart semble être synonyme de "Fondation des droits de l'homme" qui ne semble pas correspondre au contexte? – Richard

+0

Devinez: Format lisible par l'homme ;-) –

+0

Bien sûr, évident maintenant :-) :-) – Richard

Répondre

2

Vraiment dépend de la raison pour laquelle un humain pourrait vouloir le lire.

De nombreux formats potentiellement lisibles (par exemple HTML) peuvent être extrêmement difficiles à lire lorsqu'ils sont générés par une machine.

Quoi qu'il en soit, les programmeurs réels lisent core dump pour le petit déjeuner :-)

Quant à la question de la langue, cela dépendra de la définition (et « DSL » est pas solidement défini). Je dirais qu'un élément d'exécution est nécessaire (que ce soit vaguement) et s'il s'agit simplement d'une sérialisation binaire de données, je n'appellerais pas cela un langage (par exemple de nombreux formats raster).


Compte tenu de cette plus loin, il semble y avoir deux questions interdépendantes sous-jacentes ici:

  • est textuel (potentiellement lisible) ou binaire (très difficile pour les lecteurs humains) mieux (avec tout l'aspect de ineroperability là-bas).
  • Quand un format devient-il un DSL?

Bien que la première question soit abordée ailleurs, elle ne peut pas être complètement séparée de cette dernière. Après tout, il y a des DSL maintenus dans des formats binaires (par exemple des macros Word), et des DSL qui peuvent être compilés (par exemple .NET SDK inclut un outil pour convertir XSLT en un assemblage).

Ce qui m'amène à penser que la vraie question posée est: qu'est-ce qui fait qu'un format est un DSL? Et le problème ici est que "DSL-ness" est très dans l'œil du spectateur et dépend du contexte.

Le langage HTML est-il un langage DSL? Le code HTML avec les propriétés du gestionnaire d'événements et JavaScript est-il un langage DSL? Le premier est discutable, et le dernier est difficile à dire non parce que le code du programme est définitivement utilisé.

Ma première réaction à cette question était de considérer qu'une DSL nécessite une forme d'exécution dirigée. C'est à dire. dans le traitement du DSL, l'application modifie son fonctionnement. Ceci est, après réflexion, une définition trop large. Considérons une application de traitement de texte avec no-macros. Le document chargé domine manifestement l'état de l'application et détermine ses performances. Cela conduit à une seconde définition potentielle basée sur la création humaine pour spécifier des instructions directement dans la langue pour diriger une application (ou une classe d'applications). Ceci est cependant assez vague. Mais au moins, évite que le document WP soit un DSL.

Ainsi, ma réponse actuelle: est-ce important? Un DSL ou un format est un outil permettant aux ordinateurs de faire des choses, les définitions académiques ne font pas vraiment progresser cette activité.

+0

Pensez-vous que vous avez beaucoup de bonnes idées qui débordent? – dirkgently

+0

Élargi ... mais peut-être pas utilement :-) – Richard

+0

Non, en fait, il est logique, pour moi au moins. Nous sommes en train de nous battre pour savoir ce qu'il faut mettre en œuvre. Un DSL ou juste un fichier HRF. Parfois, ces définitions peuvent revenir vous mordre (longtemps après que le projet a été abandonné;) – dirkgently

1

Quand les formats évoluent dans un domaine linguistique spécifique? Ou, comment puis-je décider si je veux un> HRF ou un DSL. PostScript est ce qui est venu à l'esprit qui a déclenché ceci.

Chaque type de format peut être considéré comme une langue. Parce qu'il a besoin de règles pour comprendre le message. Les langages lisibles par ordinateur doivent être entièrement spécifiés sans risque d'erreur d'interprétation. Par conséquent, vous pouvez dire qu'ils n'ont pas besoin d'évoluer parce qu'ils sont déjà des langues.

J'utilise les définitions suivantes:

  • FRH (format Human Readable), presque tout par écrit.
  • DSL (Domain Specific Language), langage utilisé dans un seul but.

Si vous restreignez la définition des langues pour inclure uniquement les langages de programmation contenant des boucles et des branches. L'histoire change. Les fichiers INI simples n'ont pas besoin de ces constructions. Mais les langages de macro font. Ainsi, vous pouvez dire que seules les langues qui décrivent le comportement (séquences, décisions basées sur des données) ont le potentiel d'évoluer vers une langue.

+0

J'avais peur que quelqu'un dise ça. Mais j'ai ajouté des précisions;) – dirkgently

+0

J'ai dit 'un langage de programmation 'dans le sens où il y a un cadre qui vous permettrait de continuer sans changer les éléments de base. Et non, je ne parle pas des langages de programmation courants comme C++ :) HRF est limité et nécessite une surveillance constante? – dirkgently

+0

Ajout d'une clarification. –