1 Copyright 1994, 1995, 1998 by Axel T. Schreiner. All Rights Reserved. Compilerbau mit Java Axel-Tobias Schreiner Fachbereich Mathematik-Informatik Universität Osnabrück Dieser Band enthält Kopien der OH-Folien, die in der Vorlesung verwendet wurden. Diese Information steht außerdem im World-Wide Web online zur Verfügung; sie ist in sich und mit einer Kopie der Dokumentation zum Java Development Kit (JDK) über Hypertext-Links verbunden. Die Beispielprogramme werden maschinell aus diesem Text extrahiert. Zur Betrachtung auf anderen Systemen gibt es den Text auch als Folge von PDF-Dokumenten. Mit dem Acrobat Reader von Adobe kann der Text damit auf Windows-Systemen ausgedruckt werden. Grundkenntnisse in den Bereichen Java und objekt-orientierte Programmierung werden vorausgesetzt. Der Band stellt kein komplettes Manuskript der Vorlesung dar. Zum Selbststudium müßten zusätzlich Bücher über konkrete Programmiersprachen und Compilerbau konsultiert werden; zu Java könnte mein Skript von 1997 oder 1998 herangezogen werden. Inhalt 1 2 3 4 5 6 Einführung Arithmetische Ausdrücke — expr Ein einfacher Compiler — simple Wiederverwendung und Compiler — mixed und ck Einfache Unterprogramme Blockstruktur 5 13 125 183 239 257 2 Diese Folien befinden sich auf dem WWW-Server der Universität archiviert nur für die Universität zugänglich auf dem FTP-Server und gedruckt in der Lehrsammlung. Sie sollten mit einem Web-Browser betrachtet werden. <http://www.uni-osnabrueck.de/vorlesungen/informatik/compilerbau98>, Material zu Java und Java Compiler Tools können nur von der Universität direkt per FTP abgeholt werden . Die Dokumentation zum JDK befindet sich auch ausgepackt auf dem WWW-Server ; sie sollte mit einem Web-Browser betrachtet werden. Im Internet gibt es eine Liste von frei verfügbaren Compiler-Tools <http://www.idiom.com/free-compilers>. Die folgenden Bücher sind nützlich. Soweit vorhanden, befinden sie sich in der Lehrsammlung. Compilerbau Aho/Sethi/Ullman Appel Holub Schreiner/Friedman jr. Wirth 3-89319-150-X, -151-8 0-521-58654-2 0-130255252-5 3-446-14359-9 0-201-40353-6 Compilerbau Modern Compiler Construction with Java Compiler Design in C Compiler bauen mit UNIX Compiler Construction 0-574-21945-5 Programming Language Landscape Sammet ?? Wexelblatt (ed) Bergin et al. (ed) 0-12-745040-8 0-201-63451-1 Programming Languages: History and Fundamentals History of Programming Languages History of Programming Languages II Sprachkonzepte Marcotty/Ledgard Geschichte Java Arnold/Gosling Flanagan Gosling/Joy/Steele 0-201-31006-6 1-56592-262-X 0-201-63451-1 The Java Programming Language (2nd Ed.) Java in a Nutshell (2nd Edition) The Java Language Specification 3 Es gibt beliebig viele Programmiersprachen und Bücher oder Artikel darüber. Ich finde zum Beispiel die folgenden Publikationen sehr wichtig: Reference Manual for the Ada Programming Language Springer, 1983. Sehr modernes, sehr abschreckendes Beispiel. Clocksin/Mellish Programming in Prolog Springer, 1981, 1984. Ein Exponent der Künstlichen Intelligenz. Cox/Novobilski Object-Oriented Programming Addison-Wesley 1991, ISBN 0-201-54834-8. Viel Werbung, machte Objective C nicht populär. Dijkstra Guarded Commands, nondeterminancy, and formal derivation CACM 8, 1975. Vorstufe zu seiner ‘‘Discipline of Programming’’. Hoare Hints on Programming Language Design Stanford Report STAN-CS-73-403, 1973. in Essays in Computing Science Prentice-Hall 1989, ISBN 0-13-284027-8. Pflichtlektüre für Designer. Jensen/Wirth Pascal User Manual and Report Springer, 1975; Acta Informatica 1, 1971. Kernighan/Ritchie The C Programming Language Prentice-Hall, 1977, 1988; Hanser 1983, 1990. McCarthy et al. Lisp 1.5 Programmer’s Manual MIT Press, 1962. Urahn der AI Bewegung. Naur (ed) Revised report on the Algorithmic Language Algol 60 u.a. CACM 1, 1963. Leicht und elegant, führt BNF ein. Ellis/Stroustrup The annotated C++ Reference Manual Addison-Wesley 1990, ISBN 0-201-51459-1 und später. Dick und trotzdem keineswegs definitiv. v. Wijngaarden (ed) Revised report on the algorithmic language Algol 68 u.a. Acta Informatica 5, 1975. Schwierig und kompliziert, mit zweistufigen Grammatiken.