Read more
Funktionale Programmiersprachen sind seiteneffektfrei und bilden daher eine vielversprechende Basis für die Programmierung von Parallelrechnern. Sie enthalten in der Regel keine expliziten Sprachkonstrukte zur Spezifizierung von Parallelität. Ein parallelisierender Compiler kann die in einem funktionalen Programm implizit enthaltene Parallelität entdecken und das Progamm in parallel ausführbare Prozesse zerlegen. Der Programmierer braucht sich also nicht, wie etwa in einer um Parallelkonstrukte erweiterten imperativen Programmiersprache, um die Verwaltung der parallelen Prozesse sowie Synchronisation und Kommunikation zu kümmern. Dies vereinfacht insbesondere die Programmierung von Systemen mit vielen Prozessoren. Auf der Grundlage einer einfachen funktionalen Beispielsprache, die den Kern aller funktionalen Sprachen umfaßt, werden in diesem Buch die Techniken zur automatischen Parallelisierung funktionaler Programme erläutert und formal spezifiziert. Im Vordergrund steht jedoch der sprachorientierte Entwurf einer Parallelrechnerarchitektur, die die Ausführung funktionaler Programme in besonderer Weise unterstützt.
List of contents
I: Grundlagen.- 1. SAL - eine einfache funktionale Sprache.- 2. Implementierungstechniken.- 3. Parallele Rechnerarchitekturen.- II: Parallelisierung funktionaler Programme.- 4. Organisation der Parallelisierung.- 5. Entschachtelung von SAL-Programmen.- 6. Entdeckung potentieller Parallelität.- 7. Einteilung in parallele Prozesse.- 8. Eine Graphreduktionssemantik für parallelisierte Kombinatorsysteme.- III: Entwurf einer parallelen Graphreduktionsmaschine.- 9. Struktur der parallelen Maschine.- 10. Organisation der programmierten Graphreduktion.- 11. Verwaltung der Parallelität.- 12. Implementierungsaspekte.- 13. Vergleich mit anderen Arbeiten 349.- Schlußworte.- Anhang: Mathematische Grundlagen.- A.l Algebraische Grundlagen.- A.2 Halbordnungen.- A.3 Interpretationen.- A.4 Der ungetypte ?-Kalkül.