NIC  
John von Neumann-Institut für Computing
 
Das NIC  
Supercomputer  
Beratung  
Dokumentation  
Rechenzeit  
Forschungsgruppen  
Publikationen  
NIC-Serie     
Proceedings  
NIC-Broschüre  
Projekte  
Internes  
Neues & Termine  
Kontakt  
Impressum  
Suche  
 
NIC-Serie Band 28

NIC-Serie Band 28:
 
Integration von Programmiersprachen durch strukturelle Typanalyse und partielle Auswertung

Jörg Striegnitz

 
ISBN 3-00-016006-X
Juni 2005, 306 Seiten
 
PDF


Die Wahl einer Programmiersprache ist häufig vom zu lösenden Problem motiviert (z.B. objektorientierte Sprache für verteilte Systeme, funktionale Sprache für Übersetzer, logische Sprache im Bereich der künstlichen Intelligenz). Im Extremfall kann es sich sogar lohnen, für ein Softwareprojekt eine neue, problemspezifische Sprache (engl.: domain specific language) zu entwerfen.

Bei größeren Softwareprojekten kann es sich anbieten, einzelne Module in der Programmiersprache zu implementieren, die für den Einsatzzweck des Moduls am besten geeignet ist. Dies wirft natürlich sofort die Frage auf, wie man diese Module zu einem kohärenten, funktionierenden und effizienten Gesamtsystem verbindet.

Diese Dissertation beschäftigt sich mit einem Spezialfall der Sprachintegration: der Einbettung einer Gastsprache in eine Wirtssprache und schlägt ein neues Verfahren zur Spracheinbettung vor, welches auf struktureller Typanalyse und partieller Auswertung beruht.

Im ersten Teil dieser Arbeit werden drei Modellsprachen eingeführt, die unseren Ansatz zur Spracheinbettung unterstützen. Die Eigenschaften dieser Sprachen werden ausführlich erklärt und es wird untersucht, welche Restriktionen sie der Gastsprache auferlegen.

Es wird sich zeigen, daß sich viele Konzepte der Modellsprachen in C++ simulieren lassen und diese sich damit auch zur Erklärung der Phänomene der C++-Template-Metaprogrammierung eignen.

Im zweiten Teil dieser Dissertation wird die Tragfähigkeit unseres Integrationsansatzes an einem praktischen Beispiel untersucht: der Integration einer funktionalen Sprache mit verzögerter Auswertung, garbage collection und algebraischen Datentypen in C++.

Es wird sich herausstellen, daß unsere Einbettungstechnik das Erzeugen von effizientem Programmcode erlaubt, der sogar mit etablierten Haskell-Übersetzern mithalten kann. Am Beispiel der Optimierung von endrekursiven Aufrufen, einer Optimierung, die von den meisten C++-Übersetzern nicht vorgenommen wird, wird klar, dass sich der Ansatz auch zur Implementierung von domänenspezifischen Optimierungen eignet.


NIC-Home/ENGLISH  

S.Hoefler-Thierfeldt@fz-juelich.de, 15-Jun-2005
URL: <http://www.fz-juelich.de/nic-series/volume28/volume28.html>