Existe-t-il un aperçu de la sémantique des différentes fonctionnalités du langage de programmation?


12

Existe-t-il un aperçu (à partir d'un article, d'un chapitre de livre, d'un tutoriel, de liens, ...) de la sémantique des différentes fonctionnalités du langage de programmation? J'étais à l'origine submergé par les fonctionnalités de D ici http://www.digitalmars.com/d/2.0/comparison.html

Je voudrais voir ce que je pourrais obtenir d'ici, bien que j'ai posé une question similaire sur stackoverflow et que ces deux sites aient des perspectives différentes.

Appréciez vraiment votre réponse! Merci à Dave Clarke pour sa suggestion sur la méta


Je pense que cette question soulève une question intéressante: la sémantique des langages de programmation est-elle toujours un domaine de recherche dans le laboratoire, ou est-elle prête pour la lumière du jour? S'il est prêt pour la lumière du jour, il devrait y avoir des recueils qui décrivent comment décrire la sémantique de chaque fonctionnalité de langage de programmation, afin que les futurs concepteurs de langage puissent aller les chercher lors de la conception de leurs langages. Je pense qu'il vaut la peine de réfléchir où nous voulons aller d'ici.
Uday Reddy

Réponses:


17

Je ne connais aucune étude de la sémantique des différentes fonctionnalités du langage, bien qu'il existe de nombreux livres traitant de la sémantique des langages de programmation. Voici quelques-unes des plus complètes, qui traitent également de constructions moins standard:

  • Concepts de conception dans les langages de programmation par Franklyn Turbak, David Gifford et Mark Sheldon. Un livre gigantesque plein de sémantique de nombreuses constructions linguistiques différentes.

  • Concepts, techniques et modèles de programmation informatique par Peter Van Roy et Seif Haridi. Ce livre se concentre principalement sur les concepts en termes de langage Oz. Chaque exemple du livre s'exécute. À la fin du livre, un ou deux chapitres discutent de la sémantique formelle des constructions langagières.

Des textes plus classiques qui mettent davantage l'accent sur les techniques sémantiques, plutôt que sur la variété des constructions de langage de programmation, comprennent:

  • Types et langages de programmation par Benjamin Pierce. Le livre sur les systèmes de types. Se concentre principalement sur les constructions de langage fonctionnel, tout en augmentant la sophistication du système de type. Il couvre également Featherweight Java, un calcul de base de Java.

  • Transitions et arbres par Hans Huttel. Une belle introduction à la sémantique opérationnelle, couvrant une variété de constructions de langages de complexité croissante.

  • Sémantique avec applications par Hanne Riis Nielson et Flemming Nielson. Une introduction à divers styles sémantiques, y compris certaines applications non évidentes d'entre eux. Bonne lecture!

  • La structure des langages de programmation typés par David A Schmidt. Un livre fondamental solide.

  • Sémantique des langages de programmation: structures et techniques par Carl A Gunter. Un autre livre fondamental solide.

Enfin, un travail en cours, généreusement disponible en téléchargement, Practical Foundations for Programming Languages de Bob Harper couvre de nombreuses fonctionnalités du langage de programmation, garantissant que tout est formalisé en cours de route.

Je dois ajouter que si vous posez une question plus spécifique, vous obtiendrez une réponse plus spécifique. De nombreux articles scientifiques sont là-bas donnant la sémantique à diverses fonctionnalités du langage de programmation. Si vous étiez intéressé par une fonctionnalité spécifique, je pourrais trouver un ou deux articles sur cette fonctionnalité.


11

Un autre bon livre sur la sémantique opérationnelle est l' ingénierie sémantique avec PLT Redex par Matthias Felleisen, Robby Findler et Matthew Flatt. Il commence par un traitement manuel de la sémantique de réduction et des machines abstraites, et couvre également l'utilisation de l'outil Redex pour modéliser la sémantique des langages de programmation.


5
Ravi de voir une autre personne PL à bord.
Dave Clarke
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.