Algorithmen und Datenstrukturen Pascal-Version - Wirth, Niklaus 1934-2024 (Vieweg+Teubner Verlag, 1995)
In den vergangenen Jahren wurde die Programmierung von Rechenanlagen als diejenige Disziplin erkannt, deren Beherrschung grundlegend und entscheidend für den Erfolg vieler Entwicklungsprojekte ist und die wissenschaftlicher Behandlung und Darlegung zugänglich ist. Vom Handwerk stieg sie zur akademischen Disziplin auf. Die ersten hervorragenden Beiträge zu dieser Entwicklung wurden von E. W. Dijkstra und C. A. R. Hoare geliefert Dijkstra's Notes on Structured Programming [6] führten zu einer neuen Betrachtung der Programmierung als wissenschaftliehes Thema und als intellektuelle Herausforderung. Sie bahnten den Weg zu einer "Revolution" in der Programmierung [35]. Hoare's An Axiomatic Basis/or Computer Programming [10] zeigte deutlich, dass Progamme einer exakten Analyse nach mathematischen Grundsätzen zugänglich sind. Beide Artikel argumentieren überzeugend, dass viele Programmierfehler vermieden werden können, wenn man den Programmierem die Methoden und Techniken, die sie bisher intuitiv und oft unbewusst verwendeten, zur Kenntnis bringt. Diese Artikel konzentrierten sieh auf die Aspekte des Aufbauens und Analysierens von Programmen oder, genauer ausgedrückt, auf die Struktur der durch die Progammtexte dargestellten Algorithmen. Es ist jedoch völlig klar, dass ein systematisches und wissenschaftliches Angehen der Konstruktion von Programmen seine grösste Wirkung im Fall grosser komplexer Programme hat, die komplizierte Datenmengen bearbeiten. Folglich muss eine Methodik des Programmierens auch alle Aspekte der Datenstrukturierung behandeln. Programme sind letztlich konkrete Formulierungen abstrakter Algorithmen, die sich auf bestimmte Darstellungen und Datenstrukturen stützen. Einen wesentlichen Beitrag, Ordnung in die verwirrende Vielfalt der Terminologie und Konzepte von Datenstrukturen zu bringen, leistete Hoare durch seine Notes on Data Structuring [13]