Glasgow Haskell Compiler
Diese Baustelle befindet sich fälschlicherweise im Artikelnamensraum. Bitte verschiebe die Seite oder entferne den Baustein {{Baustelle}} .
|
Glasgow Haskell Compiler
| |
---|---|
![]() | |
Basisdaten
| |
Entwickler | Simon Peyton Jones, Simon Marlow |
Erscheinungsjahr | 1989 |
Aktuelle Version | 7.6.3[1] (21. April 2013) |
Betriebssystem | Plattformunabhängig (UNIX, Windows) |
Programmiersprache | Haskell |
Kategorie | Compiler |
Lizenz | BSD (Freie Software) |
http://haskell.org/ghc/ |
Der Glasgow Haskell Compiler, auch The Glorious Glasgow Haskell Compilation System[2], aber vor allem bekannt als GHC, ist ein quelloffener Compiler für die Programmiersprache Haskell. Er ist selbst in Haskell geschrieben und erzeugt inzwischen nativen Maschinencode für die jeweilige Plattform.
GHC gilt heute als die Haskell-Implementierung mit den meisten Features und der weitesten Verbreitung.
Geschichte
Der Entwurf von Haskell war Folge der Conference on Functional Programming Languages and Computer Architecture 1987 gewesen, auf der deutlich geworden war, dass die Entwicklung der funktionalen Programmierung durch die vielen verschiedenen Sprachen (viele davon Mitglied der ML-Familie) aufgehalten wurde. Aus diesem Grund sollte eine neue umfassende Sprache entworfen werden, und zwar Haskell.
Kurz darauf begann Kevin Hammond an der Universität von Glasgow (daher auch der Name des Compilers) die Entwicklung einer Implementierung in Lazy ML, die praktisch ein Frontend für eine existierende Lazy-ML-Implementierung darstellte. Als diese Implementierung lauffähig war (Juni 1989), stieß Simon Peyton Jones zu der Entwicklergruppe. Der Prototyp besaß zu diesem Zeitpunkt bereits alle in Haskell 1.0 beschriebenen Eigenschaften und war verhältnismäßig stabil. Allerdings wurde die steigende Komplexität der Implementierugn zunehmend zum Problem, da der Compiler groß und langsam wurde. Daraufhin wurden einige Features wieder aus dem offiziellen Standard entfernt.
Im Herbst des selben Jahres begann dann die Arbeit an einer völlig neuen Implementierung (allein der Parser, geschrieben in C und mit der Hilfe von Yacc, wurde übernommen), wieder unter Mitarbeit von S. P. Jones, außerdem Cordelia Hall und Will Partain. Entwickelt wurde komplett in Haskell, möglich wurde dies durch Bootstrapping, indem der neue Compiler zunächst mit der alten Implementierung kompiliert wurde bis die neue Implementierung sich selbst kompilieren konnte (self-hosting). 1992 erschien die erste komplette Version, 0.10. [3]
Funktionsweise
Zunächst wird der Haskell-Code in eine einzige Datenstruktur geparst, um Typprüfungen durchzuführen. Haskell ist eine sehr stark typisierte Sprache, weshalb dieser Schritt sehr wichtig ist (falls hier keine Fehler auftreten ist die Wahrscheinlichkeit, dass das Programm fehlerfrei ist, sehr hoch).
Nach dieser ersten Phase wird das Programm in eine Zwischensprache namens Core umgeformt.
Einzelnachweise
- ↑ Release-Log
- ↑
ghc --version
- ↑ Hudak, Paul, John Hughes, Simon Peyton Jones und Philip Wadler: A History of Haskell: Being Lazy With Class (2007). Proceedings of the Third ACM SIGPLAN History of Programming Languages Conference (HOPL-III)