Clemens Grelck (Universitaet Luebeck) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Generische Array-Programmierung mit SAC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Abstract ~~~~~~~~ SAC (Single Assignment C) ist eine rein-funktionale Arraysprache mit der Zielsetzung, Programmspezifikationen auf einem hohen Abstraktionsniveau mit einem hochperformanten Laufzeitverhalten zu verbinden. Der klassischen, von Maschinen-orientierten Progrmmiersprachen geprägten Sichtweise von Arrays als direkte Abbildungen in den Speicher mit lediglich rudimentären Indizierungsmöglichkeiten stellt SAC multidimensionale Arrays als abstrakte Datenstrukturen mit gewissen algebraischen Eigenschaften gegenüber. An die Stelle unübersichtlicher Schachtelungen von Schleifen zur Lösung eines individuellen Problems tritt das Prinzip der Komposition. Anwendungsprogramme entstehen durch stufenweise Komposition von einfachen und Problem-unspezifischen Array-Operationen zu immer komplexeren und immer Problem-spezifischeren Operationen. Dieses Prinzip führt nicht nur zu sehr knappen und abstrakten Programmspezifikationen, sondern erlaubt auch ein hohes Maß an Code-Wiederverwendung auf den verschiedenen Abstraktionsstufen. Im Anschluss an eine kurze Einführung in die Prinzipien der Programmiersprache SAC werden deren Moeglichkeiten an Hand einer Fallstudie demonstriert. Dazu wird der Kern einer typischen numerischen Anwendung in seinen Anforderungen analysiert und schrittweise eine SAC-Implementierung entwickelt. Anschließend wird das Laufzeitverhalten sowohl bei sequentieller als auch bei implizit paralleler Programmausführung untersucht. Ein Vergleich mit möglichen Implementierungen in anderen Sprachen bildet den Abschluss.