web-dev-qa-db-fra.com

Comment puis-je écrire une spécification de langage de programmation?

J'aime vraiment la conception de la langue de programmation. Parfois, je pense que mes projets linguistiques et leurs utilisateurs potentiels bénéficieraient d'un document de normalisation complet. J'ai examiné de nombreuses normes linguistiques, allant du très formel (C++) à l'informel (ECMAScript), mais je ne peux pas vraiment avoir une poignée sur la façon dont je devrais briser les choses et organiser un tel document, même si je Pensez que je suis plutôt bon à la rédaction technique en général.

Devrais-je l'écrire comme un long tutoriel, ou plus comme un papier mathématique formel? Comment puis-je le tenir à jour si je le développe à côté d'une mise en œuvre de référence? Devrais-je simplement abandonner et traiter la mise en œuvre et la documentation en tant que norme de facto? En outre, existe-t-il vraiment un avantage important pour avoir une norme? -exigeant une norme signifie que la langue est inutilement complexe?

16
Jon Purdy

J'ai trouvé le Java SPEC SPECTURE ET LISABLE, et je pense qu'il a une structure sensible. Certaines des spécifications W3C pourraient également être de bons exemples.

Faire le travail officiel pourrait vous aider à maintenir la complexité linguistique et à voir les cas d'angle.

Rubriques Dump: encodage source, lexing, types fondamentaux, littéraux, opérateurs, expressions, instructions simples, conditionnels, boucles, fonctions (définitions et appels), types déclarations, modules, unités de compilation, scopage variable, divers types de résolution de noms (par exemple Importations, méthodes), modèle de mémoire, effets secondaires, typage, concurrence ...

3
Tobu

WIRTH conçu et mis en œuvre de nombreuses langues de programmation: de ceux-ci, les spécifications de Oberon et Oberon2 Les langues sont notées pour une exhaustivité, une treillage et la lisibilité.

3
grrussel

Les Lisp et Haskell commun ont des normes de langue. Ruby et Python a des implémentations et une documentation. Donc, je dirais qu'une norme de langue n'est pas nécessaire, mais cela pourrait être utile si vous vous attendez à ce qu'il y ait plus Une implémentation de la langue que vous concevez. D'autre part, une norme est prématurée si vous attendez des changements importants dans votre définition de langue.

2
Larry Coleman