Programmiersprache Theorie

Der Kleinbuchstaben griechisch Buchstabe λ (Lambda) ist ein inoffizielles Symbol des Feldes der programmensprachigen Theorie. Diese Verwendung leitet sich aus dem ab Lambda -Kalkül, a Berechnungsmodell Vorgestellt von Alonzo -Kirche in den 1930er Jahren und von Programmiersprachig-Forschern weit verbreitet. Es ziert das Cover des klassischen Textes Struktur und Interpretation von Computerprogrammenund der Titel der sogenannten Lambda Papiere von 1975 bis 1980, geschrieben von Gerald Jay Sussman und Guy Steele, die Entwickler der Programmiersprache Schema.[Jargon]

Programmiersprache Theorie (PLT) ist ein Zweig von Informatik Das befasst sich mit dem Design, der Implementierung, Analyse, Charakterisierung und Klassifizierung von formelle Sprachen bekannt als Programmiersprachen und von ihrem Individuum Merkmale. Es fällt in die Disziplin der Informatik, sowohl je nach als auch Auswirkungen auf die Informatik Mathematik, Softwareentwicklung, Linguistik und sogar Kognitionswissenschaft. Es ist ein gut anerkannter Zweig der Informatik und ein aktiver Forschungsgebiet geworden, wobei die Ergebnisse in zahlreichen veröffentlicht werden Zeitschriften sowohl PLT als auch in allgemeinen Informatik- und Ingenieurpublikationen gewidmet.

Geschichte

In gewisser Hinsicht geht die Geschichte der Programmiersprache Theorie sogar der Entwicklung von Programmiersprachen selbst voraus. Das Lambda -Kalkül, entwickelt von Alonzo Church und Stephen Cole Kleene In den 1930er Jahren wird von einigen als die erste Programmiersprache der Welt angesehen, obwohl dies beabsichtigt war Modell Berechnung eher als Mittel für Programmierer zu sein beschreiben Algorithmen zu einem Computersystem. Viele modern Funktionale Programmiersprachen wurde beschrieben, dass er ein "dünnes Furnier" über den Lambda -Kalkül bereitstellt,[1] und viele sind leicht beschrieben.

Die erste Programmiersprache, die erfunden wurde, war Plankalkül, das entworfen wurde von Konrad Zuse In den 1940er Jahren, aber erst 1972 bekannt (und erst 1998 umgesetzt). Das erste weithin bekannte und erfolgreiche Programmiersprache auf hoher Ebene war Forran, entwickelt von 1954 bis 1957 von einem Team von IBM Forscher angeführt von John Backus. Der Erfolg von FORTRAN führte zur Bildung eines Wissenschaftlerausschusses, um eine "universelle" Computersprache zu entwickeln. Das Ergebnis ihrer Bemühungen war Algol 58. Separat, John McCarthy von MIT aufgetreten LispelnDie erste Sprache mit Ursprung in der Wissenschaft, um erfolgreich zu sein. Mit dem Erfolg dieser ersten Bemühungen wurden die Programmiersprachen in den 1960er Jahren und darüber hinaus zu einem aktiven Forschungsthema.

Einige andere Schlüsselereignisse in der Geschichte der Programmiersprache Theorie seitdem:

1950er Jahre

  • Noam Chomsky entwickelte die Chomsky -Hierarchie Im Bereich der Linguistik, eine Entdeckung, die sich direkt auf die Programmiersprachentheorie und andere Zweige der Informatik ausgewirkt hat.

1960er Jahre

1970er Jahre

1980er Jahre

1990er Jahre

Unterdisziplinen und verwandte Felder

Es gibt mehrere Studienbereiche, die entweder in der Programmiersprache Theorie liegen oder einen tiefgreifenden Einfluss darauf haben. Viele davon haben eine beträchtliche Überlappung. Darüber hinaus verwendet PLT viele andere Zweige von Mathematik, einschließlich Computerbarkeitstheorie, Kategoriestheorie, und Mengenlehre.

Formelle Semantik

Formale Semantik ist die formale Spezifikation des Verhaltens von Computerprogrammen und Programmiersprachen. Drei gemeinsame Ansätze zur Beschreibung der Semantik oder "Bedeutung" eines Computerprogramms sind Denotationssemantik, Betriebssemantik und Axiomatische Semantik.

Typentheorie

Typtheorie ist das Studium von Typsysteme; Welche "eine verfolgbare syntaktische Methode zum Nachweis des Fehlens bestimmter Programmverhalten durch Klassifizierung von Phrasen nach den Arten von Werten, die sie berechnen".[3] Viele Programmiersprachen unterscheiden sich durch die Eigenschaften ihrer Typsysteme.

Programmanalyse und Transformation

Die Programmanalyse ist das allgemeine Problem der Untersuchung eines Programms und der Bestimmung der wichtigsten Merkmale (z. B. das Fehlen von Klassen von Programmfehler). Die Programmumwandlung ist der Prozess der Transformation eines Programms in einer Form (Sprache) in eine andere Form.

Vergleichende Programmiersprache Analyse

Die vergleichende Programmiersprachenanalyse versucht, Programmiersprachen basierend auf ihren Merkmalen in verschiedene Typen zu klassifizieren. Große Kategorien von Programmiersprachen werden oft als bekannt als Programmierparadigmen.

Generika und Metaprogrammierung

Metaprogrammierung ist die Erzeugung von Programmen höherer Ordnung, die bei Ausführung Programme (möglicherweise in einer anderen Sprache oder in einer Teilmenge der Originalsprache) produzieren.

Domänenspezifische Sprachen

Domänenspezifische Sprachen sind Sprachen konstruiert, um Probleme eines bestimmten Teils der Domäne effizient zu lösen.

Compiler -Konstruktion

Compiler Theorie ist die Theorie des Schreibens Compiler (oder allgemeiner, Übersetzer); Programme, die ein Programm in einer Sprache in eine andere Form übersetzen. Die Handlungen eines Compilers werden traditionell unterteilt Syntaxanalyse (Scannen und Parsing), Semantische Analyse (Feststellung, was ein Programm tun sollte), Optimierung (Verbesserung der Leistung eines Programms, wie durch einige Metrik angegeben; typischerweise Ausführungsgeschwindigkeit) und Codegenerierung (Generierung und Ausgabe eines äquivalenten Programms in einer Zielsprache; oft die Befehlssatz einer CPU).

Laufzeitsysteme

Laufzeitsysteme Beziehen Sie sich auf die Entwicklung der Programmiersprache Laufzeitumgebungen und ihre Komponenten, einschließlich virtuelle Maschinen, Müllsammlung, und Fremdfunktion Schnittstellen.

Zeitschriften, Veröffentlichungen und Konferenzen

Konferenzen sind der Primärveranstalter für die Präsentation von Forschung in Programmiersprachen. Die bekanntesten Konferenzen sind die Symposium über Prinzipien von Programmiersprachen (Popl), Programmiersprache Design und Implementierung (PLDI), die Internationale Konferenz über funktionale Programme (ICFP), das Internationale Konferenz über objektorientierte Programmierung, Systeme, Sprachen und Anwendungen (Oopsla) und das International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).

Bemerkenswerte Zeitschriften, die PLT -Forschung veröffentlichen ACM -Transaktionen zu Programmiersprachen und Systemen (Toplas), Journal of Functional Programming (JFP), Journal of Functional and Logic Programming, und Höherer Ordnung und symbolische Berechnung.

Siehe auch

Verweise

  1. ^ http://www.c2.com/cgi/wiki?modelsofComputation
  2. ^ C. Böhm und W. Gross (1996). Einführung in den Kuch. In E. R. Caianiello (Hrsg.), Automatenheorie, p. 35-64/
  3. ^ Benjamin C. Pierce. 2002. Typen und Programmiersprachen. MIT Press, Cambridge, Massachusetts, USA.

Weitere Lektüre

Externe Links