Gibt es eine Übersicht über die Semantik verschiedener Programmiersprachenfunktionen?


12

Gibt es eine Übersicht (aus Papier, Buchkapitel, Tutorial, Links, ...) über die Semantik verschiedener Programmiersprachenfunktionen? Ich war ursprünglich überwältigt von den Funktionen von D hier http://www.digitalmars.com/d/2.0/comparison.html

Ich würde gerne sehen, was ich möglicherweise von hier bekommen könnte, obwohl ich eine ähnliche Frage zum Stackoverflow gestellt habe und verstanden habe, dass diese beiden Sites unterschiedliche Perspektiven haben.

Schätzen Sie wirklich Ihre Antwort! Vielen Dank an Dave Clarke für seinen Vorschlag zu meta


Ich denke, diese Frage wirft ein interessantes Problem auf: Ist die Semantik von Programmiersprachen noch ein Forschungsgebiet im Labor oder ist sie bereit für das Tageslicht? Wenn es für das Tageslicht bereit ist, sollte es Kompendien geben, in denen angegeben ist, wie die Semantik der einzelnen Programmiersprachenfunktionen zu beschreiben ist, damit zukünftige Sprachdesigner sie beim Entwerfen ihrer Sprachen nachschlagen können. Ich denke, es lohnt sich darüber nachzudenken, wohin wir von hier aus wollen.
Uday Reddy

Antworten:


17

Ich kenne keine Übersicht über die Semantik verschiedener Sprachmerkmale, obwohl es viele Bücher gibt, die sich mit der Semantik von Programmiersprachen befassen. Hier sind einige der umfassenderen, die sich auch mit weniger Standardkonstrukten befassen:

  • Designkonzepte in Programmiersprachen von Franklyn Turbak, David Gifford und Mark Sheldon. Ein Mammutbuch voller Semantik vieler verschiedener Sprachkonstrukte.

  • Konzepte, Techniken und Modelle der Computerprogrammierung von Peter Van Roy und Seif Haridi. Dieses Buch konzentriert sich hauptsächlich auf die Konzepte in Bezug auf die Sprache Oz. Jedes Beispiel im Buch läuft. Am Ende des Buches finden Sie ein oder zwei Kapitel, in denen die formale Semantik der Sprachkonstrukte erörtert wird.

Zu den eher klassischen Texten, bei denen die semantischen Techniken und nicht die Vielfalt der Programmiersprachenkonstrukte im Vordergrund stehen, gehören:

  • Typen und Programmiersprachen von Benjamin Pierce. Das Buch über Typsysteme. Der Schwerpunkt liegt auf funktionalen Sprachkonstrukten, während die Komplexität des Typensystems verbessert wird. Es behandelt auch Featherweight Java, ein Kernkalkül von Java.

  • Übergänge und Bäume von Hans Huttel. Eine nette Einführung in die operative Semantik, die eine Vielzahl von Sprachkonstrukten mit zunehmender Komplexität abdeckt.

  • Semantik mit Anwendungen von Hanne Riis Nielson und Flemming Nielson. Eine Einführung in verschiedene Semantikstile, einschließlich einiger nicht offensichtlicher Anwendungen. Eine gute Lektüre!

  • Die Struktur typisierter Programmiersprachen von David A Schmidt. Ein solides Grundbuch.

  • Semantik von Programmiersprachen: Strukturen und Techniken von Carl A Gunter. Ein weiteres solides Grundbuch.

Schließlich werden in einem Work-in-Progress- Programm , das großzügig zum Download zur Verfügung steht, praktische Grundlagen für Programmiersprachen von Bob Harper viele verschiedene Programmiersprachenfunktionen behandelt, die sicherstellen, dass auf dem Weg alles formalisiert wird.

Ich sollte hinzufügen, dass Sie eine spezifischere Antwort erhalten, wenn Sie eine spezifischere Frage stellen. Es gibt viele wissenschaftliche Veröffentlichungen, die verschiedenen Programmiersprachenfunktionen Semantik verleihen. Wenn Sie sich für ein bestimmtes Feature interessieren, könnte ich ein oder zwei Artikel zu diesem Feature ausgraben.


11

Ein weiteres gutes Buch zur operativen Semantik ist Semantics Engineering mit PLT Redex von Matthias Felleisen, Robby Findler und Matthew Flatt. Es beginnt mit einem Lehrbuch über Reduktionssemantik und abstrakte Maschinen und umfasst auch die Verwendung des Redex-Tools zur Modellierung der Semantik von Programmiersprachen.


5
Schön, eine andere PL-Person an Bord zu sehen.
Dave Clarke
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.