Compiler sind mehr als komplexe Programme, deren Herstellung einigen wenigen, großen Firmen vorbehalten bleibt. Sie spielen gewissermaßen die Rolle der Brücke zwischen Software und Programmiersprache einerseits und Hardware und Rechnerarchitektur andererseits. Deshalb ist das Verständnis ihrer Prinzipien und ihrer Struktur für jeden Informatiker wesentlich. Dieses Buch ist aus der Erfahrung erwachsen, dass neue Lehrstoffe nur dann haften bleiben, wenn sich der Leser auch praktisch mit der Materie befasst. Hier ist das zentrale Anliegen daher der Bau eines kompletten Compilers einer einsatzfähigen Programmiersprache und dessen Darlegung in allen Einzelheiten. Dazu wird aufgrund ihres systematischen Aufbaus eine substantielle Untermenge der Sprache Oberon gewählt und als Zielrechner eine RISC-Architektur, wobei beiden exemplarischer Charakter zukommt.
Niklaus Wirth Reihenfolge der Bücher (Chronologisch)







This book emerged from lecture notes of a course taught in the second year to students of Computer Science at the Federal Institute of Tech nology, Zurich. The topic of hardware design plays a relatively minor role in Compu ter Science curricula at many universities. Most courses concentrate on the various aspects of theory, software, and of information sys tems. Students therefore obtain few opportunities to deal with con crete engineering problems and physical devices. We consider this as rather unfortunate, particularly for technical universities. As a result, we observe a growing gap between interest in and understanding of design issues involving not only software but also hardware and inter faces. This is regrettable at a time when new and advanced solutions to many problems are often crucially influenced by recent hardware de velopments, at a time when the engineer needs to be competent in both software and hardware issues in order to fmd an optimally inte grated, competitive solution. It turns out that the hesitation of many students in Computer Science to take an active interest in hardware - his or her daily tool! - does not only stem from a preference of „clean“, abstract concepts with a corre sponding distaste for dealing with concrete components, construction techniques, and the „dirty“ realities inflicted by nature, but also stems from the lack of a bridge between the two realms.
Algorithmen und Datenstrukturen mit Modula 2
- 300 Seiten
- 11 Lesestunden
Die der Rechenanlage zur Verfugung stehende Information besteht aus einer ausgewahlten Menge von Daten uber die reale Welt, namlich der fur das vorliegende Problem als wichtig erachteten Menge, von der man annimmt, dass damit die gewunschten Resultate erzielt werden koennen.
PASCAL : User Manual and Report
- 167 Seiten
- 6 Lesestunden
The original description of Pascal by the designer of the language has been up-dated to incorporate the ISO-standard. Revisions to Niklaus Wirth's classic, "Pascal: User Manual and Report" include: Wirth's EBNF syntactical notation - an expanded user manual with improved programming examples - a thorough appendix summarizing changes in the language necessitated by the ISO-standard. What is left unchanged is the rigor and precision that made "PASCAL: User Manual and Report" the definitive reference for nearly a decade.
Programmieren in Modula-2
- 220 Seiten
- 8 Lesestunden
Die Sprache sollte in einer einzigen höheren Programmiersprache programmiert werden, die den Anforderungen des Systementwurfs auf hoher Ebene sowie der Programmierung auf niederer, maschinennaher Ebene gerecht wird. Letztere ist für Systemteile erforderlich, die direkt mit der Hardware interagieren. Modula-2 entstand aus sorgfältigen Entwurfsüberlegungen und beinhaltet alle Möglichkeiten von Pascal, erweitert um wichtige Konzepte wie Module und Multiprogrammierung. Die Syntax orientiert sich mehr an Modula als an Pascal, was zur Namenswahl führte. Wesentliche Ergänzungen von Modula-2 im Vergleich zu Pascal sind: 1. Das Modulkonzept, das eine Aufspaltung in Definitionsteil und Implementationsteil ermöglicht. 2. Eine systematischere Syntax, die das Erlernen erleichtert, indem jede Struktur, die mit einem Schlüsselwort beginnt, auch mit einem Schlüsselwort endet. 3. Das Konzept des Prozesses als Schlüssel zur Multiprogrammierung. 4. Niedere, maschinennahe Sprachelemente, die es erlauben, die strengen Typenkonsistenzregeln zu umgehen und Daten flexibel abzubilden. 5. Der Prozedurtyp, der eine dynamische Zuweisung von Prozeduren an Variablen ermöglicht. Eine erste Implementierung war 1979 für PDP-11-Rechner verfügbar, und die Sprachdefinition wurde im März 1980 veröffentlicht. Seitdem wird die Sprache täglich an unserem Institut genutzt.
This is the 4th edition of a successful book which first appeared in 1982. It is an introduction to programming in general as well as a manual for programming with the language Modula-2 in particular. It is oriented primarily towards people who have already acquired some basic knowledge of programming and would like to deepen their understanding in a more structured way. Nevertheless, an introductory chapter is included for the benefit of the beginner, displaying in a concise form some of the fundamental concepts of computers and their programming. The text is therefore also suitable as a self-contained tutorial. The notation used is Modula-2, which lends itself well to a structured approach and leads the student to a working style that has generally become known under the title of structured programming. Modula-2 is a descendant of Pascal, and is particularly suited for programming larger and more complex systems in a structured way. The principal improvement in this 4th edition is a completely new layout. The main changes in the contents are a few minor adaptations in the area of type compatibility. "Programming in Modula-2" by Niklaus Wirth can be considered as the standard reference for Modula-2 programmers.







