Gratisversand in ganz Deutschland!
Bookbot

Niklaus Wirth

    15. Februar 1934 – 1. Januar 2024
    Niklaus Wirth
    Algorithmen und Datenstrukturen mit Modula - 2
    Modula-2
    Compilerbau
    Algorithmen und Datenstrukturen
    Grundlagen und Techniken des Compilerbaus
    Systematisches Programmieren
    • 1996

      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.

      Grundlagen und Techniken des Compilerbaus
    • 1995

      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.

      Digital circuit design for computer science students
    • 1986

      Der moderne Digital-Computer wurde entwickelt, um komplexe und zeitaufwändige Berechnungen zu erleichtern und zu beschleunigen. Bei den meisten Anwendungen ist seine Fähigkeit, große Mengen an Informationen zu speichern und zugänglich zu machen, entscheidend; die Rechenleistung spielt oft eine untergeordnete Rolle. In diesen Fällen stellt die verarbeitete Informationsmenge eine Abstraktion eines Teils der realen Welt dar. Die Informationen, die der Rechenanlage zur Verfügung stehen, bestehen aus einer ausgewählten Menge von Daten, die für das aktuelle Problem als relevant erachtet werden. Diese Daten repräsentieren eine Abstraktion der Realität, da unwichtige Eigenschaften und Details der Objekte unberücksichtigt bleiben. Eine Abstraktion ist somit auch eine Vereinfachung der Tatsachen. Ein Beispiel ist die Personalkartei eines Arbeitgebers, in der jeder Angestellte durch eine Menge von für den Arbeitgeber relevante Daten repräsentiert wird, wie Name und Gehalt. Unwichtige Informationen wie Haarfarbe, Gewicht und Größe werden in diesem Kontext wahrscheinlich nicht erfasst.

      Algorithmen und Datenstrukturen mit Modula - 2
    • 1985

      genannt) sollte in einer einzigen höheren Programmiersprache program miert werden. Die Sprache mußte daher gleichzeitig den Anforderungen des Systementwurfs auf hoher Ebene als auch den Anforderungen der Pro grammierung auf niederer, maschinennaher Ebene gerecht werden. Letztere wird für diejenigen Systemteile benötigt, die in direkter Wechselwirkung mit der vorgegebenen Hardware stehen. Modula-2 entstand aus sorgfältigen Entwurfsüberlegungen als eine Sprache, die alle Möglichkeiten von Pascal enthält, diese jedoch um die wichtigen Konzepte des Moduls und der Multi programmierung erweitert. Da ihre Syntax mehr auf der Linie von Modula als auf der von Pascal liegt, wurde der Name Modula-2 gewählt. Im Weiteren werden wir den Namen Modula synonym für Modula-2 verwenden. Die wesentlichen Zusätze von Modula-2, bezogen auf Pascal, sind: 1. Das Konzept des Moduls und insbesondere die Möglichkeit, einen Modul in einen Definitionsteil und einen Implementationsteil aufzuspalten. 2. Eine systematischere Syntax, die das Erlernen vereinfacht. Insbesondere endet jede mit einem Schlüsselwort beginnende Struktur auch mit einem Schlüsselwort, d. h. sie ist ordentlich geklammert. 3. Das Konzept des Prozesses als Schlüssel zur Multiprogrammierung. 4. Sogenannte niedere, maschinennahe Sprachelernente, mit deren Hilfe man die strengen Regeln der Konsistenz von Typen aufbrechen kann. Sie erlauben ferner, Daten einer Modula-2-Struktur auf einen anderen Speicherbereich ohne vorgegebene eigene Struktur abzubilden. 5. Der Prozedurtyp. Er ermöglicht es, eine Zuweisung von Prozeduren an Variable dynamisch vorzunehmen. Eine erste Implementierung von Modula-2 war 1979 für PDP-ll-Rechner lauffähig. Die Sprachdefinition wurde im März 1980 als Technischer Report veröffentlicht. Seither wird die Sprache an unserem Institut täglich benutzt.

      Programmieren in Modula-2
    • 1980
    • 1977

      Inhaltsverzeichnis0. Einleitung.1. Definition und Struktur formaler Sprachen.2. Satzanalyse.3. Syntax Graphen.4. Aufbau eines Parsers für eine gegebene Syntax.5. Tabellen-gesteuerte Syntax Analyse.6. Die Übersetzung von BNF-Produktionen in Tabellen.7. Die Programmiersprache PL/0.8. Ein Parser für PL/0.9. Die Behandlung von syntaktischen Fehlern.10. Ein Interpreter für PL/0.11. Die Erzeugung von Befehls-Code.12. Eine Spracherweiterung: Prozesse.13. Technik der Compilerentwicklung und -Übertragung.14. Aufgabensammlung.Literaturhinweise.Anhang: Der ASCII Zeichensatz.Stichwortverzeichnis.

      Compilerbau
    • 1975

      Algorithmen und Datenstrukturen

      Pascal-Version

      • 320 Seiten
      • 12 Lesestunden
      3,9(6)Abgeben

      In den vergangenen Jahren wurde die Programmierung wm Rechenanlagen als diejenige Disziplin erkannt, deren Beherrschung grundlegend und entscheidend fur den Erfolg vieler Entwicklungsprojekte ist und die wissenschaftlicher Behandlung und Darlegung zuganglich ist Vom Handwerk stieg sie zur akademischen Disziplin auf.

      Algorithmen und Datenstrukturen
    • 1972

      Inhaltsverzeichnis: 1. Einleitung. 2. Grundbegriffe. 3. Übersicht über den Aufbau eines Computers. 4. Programmierhilfen und Programmiersysteme. 5. Einfache Beispiele von Programmen. 6. Endlichkeit von Programmen. 7. Lineare Notation, Programmiersprachen: 7.1. Übersicht, 7.2. Ausdrücke und Anweisungen, 7.3. Einfache Programme in linearer Notation. 8. Datentypen: 8.1. Boolean, 8.2. Integer, 8.3. Char, 8.4. Real. 9. Programme mit Rekursionsrelationen: 9.1. Folgen, 9.2. Reihen. 10. Die Strukturart „File“: 10.1. Begriff des Files, 10.2. Generierung eines Files, 10.3. Inspektion eines Files, 10.4. Text-Files. 11. Die Strukturart „Array“. 12. Unterprogramme — Prozeduren und Funktionen: 12.1. Konzept und Terminologie, 12.2. Lokale Größen, 12.3. Prozedur-Parameter, 12.4. Parametrische Prozeduren und Funktionen. 13. Transformationen von Zahlendarstellungen: 13.1. Eingabe von positiven ganzen Zahlen in dezimaler Darstellung, 13.2. Ausgabe von positiven ganzen Zahlen in dezimaler Darstellung, 13.3. Ausgabe von gebrochenen Zahlen in dezimaler Darstellung, 13.4. Transformation von Gleitkomma-Darstellungen. 14. Textverarbeitung mit Array- und File-Strukturen: 14.1. Begrenzung der Zeilenlänge in einem Text-File, 14.2. Editieren einer Textzeile, 14.3. Erkennen von regulären Zeichenmustern. 15. Schrittweise Programmentwicklung: 15.1. Lösung eines linearen Gleichungssystems, 15.2. Ermittlung der kleinsten Zahl als Summe von zwei dritten Potenzen

      Systematisches Programmieren