Programmiersprachen und Übersetzer
|
|
|
- Gretel Brahms
- vor 9 Jahren
- Abrufe
Transkript
1 Programmiersprachen und Übersetzer Sommersemester April 2009
2 Vorteile bei der Verwendung höherer Programmiersprachen
3 Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation für komplizierte Ausdrücke.
4 Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation für komplizierte Ausdrücke. 2. Viele primitive Datentypen, Möglichkeiten, komplexere Datentypen selbst zu definieren.
5 Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation für komplizierte Ausdrücke. 2. Viele primitive Datentypen, Möglichkeiten, komplexere Datentypen selbst zu definieren. 3. Viele dazu passende, teilweise selbst definierbare Operationen auf den verschiedenen Datentypen.
6 Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation für komplizierte Ausdrücke. 2. Viele primitive Datentypen, Möglichkeiten, komplexere Datentypen selbst zu definieren. 3. Viele dazu passende, teilweise selbst definierbare Operationen auf den verschiedenen Datentypen. 4. Einfach Steuerstrukturen, genormte Parameterübergabe.
7 Vorteile bei der Verwendung höherer Programmiersprachen
8 Vorteile bei der Verwendung höherer Programmiersprachen 5. Blockstruktur, rekursive Aufrufe sowie ein Klassen-, Moduloder Paket-Konzept, um Implementationsdetails dem Benutzer zu verbergen (Information Hiding)
9 Vorteile bei der Verwendung höherer Programmiersprachen 5. Blockstruktur, rekursive Aufrufe sowie ein Klassen-, Moduloder Paket-Konzept, um Implementationsdetails dem Benutzer zu verbergen (Information Hiding) 6. Portabilität und Modularisierbarkeit um Programmieren im Team zu ermöglichen.
10 Vorteile bei der Verwendung höherer Programmiersprachen 5. Blockstruktur, rekursive Aufrufe sowie ein Klassen-, Moduloder Paket-Konzept, um Implementationsdetails dem Benutzer zu verbergen (Information Hiding) 6. Portabilität und Modularisierbarkeit um Programmieren im Team zu ermöglichen. 7. Wiederverwendbarkeit und Erweiterbarkeit einzelner Softwarekomponenten.
11 Nachteile bei Verwendung höherer Programmiersprachen
12 Nachteile bei Verwendung höherer Programmiersprachen 1. Man benötigt einen Compiler oder Interpreter für die verwendete höhere Programmiersprache.
13 Nachteile bei Verwendung höherer Programmiersprachen 1. Man benötigt einen Compiler oder Interpreter für die verwendete höhere Programmiersprache. 2. Das von einem Compiler gelieferte Programm ist i. a. größer (ca %) und langsamer (2 4facher Zeitbedarf) als ein von Hand geschriebenes äquivalentes Assemblerprogramm bzw. Maschinenprogramm.
14 Nachteile bei Verwendung höherer Programmiersprachen 1. Man benötigt einen Compiler oder Interpreter für die verwendete höhere Programmiersprache. 2. Das von einem Compiler gelieferte Programm ist i. a. größer (ca %) und langsamer (2 4facher Zeitbedarf) als ein von Hand geschriebenes äquivalentes Assemblerprogramm bzw. Maschinenprogramm. 3. Gewisse maschinennahe Programme sind nur schwer oder gar nicht zu erstellen.
15 Compiler und Interpreter Programm in einer Programmiersprache P Compiler für P äquivalentes Maschinenprogramm
16 Compiler und Interpreter Programm in einer Programmiersprache P Compiler für P äquivalentes Maschinenprogramm Daten Programm in einer Programmiersprache P Interpreter für P Ergebnisse
17 Im allgemeinen gilt:
18 Im allgemeinen gilt: - Compiler liefern nach der Übersetzung Programme, deren Ausführung schneller abläuft als die Abarbeitung des Ausgangsprogramms durch einen Interpreter.
19 Im allgemeinen gilt: - Compiler liefern nach der Übersetzung Programme, deren Ausführung schneller abläuft als die Abarbeitung des Ausgangsprogramms durch einen Interpreter. - Eine Änderung des Ausgangsprogramms führt bei der Verwendung eines Compilers zu größerem Aufwand (neues Übersetzen, Binden usw.) als bei Verwendung eines Interpreters.
20 Prinzipieller Aufbau eines Compilers Quellenprogramm Symboltabellen- Management lexikale Analyse syntaktische Analyse semantische Analyse Zwischencode- Erzeugung Codeoptimierung Maschinencode- Erzeugung Objektprogramm Fehlerbehandlung
21 Aufgabe der lexikalen Analyse zeichenweises Lesen der Eingabe Zusammenfassen der Zeichen zu größeren Einheiten (Lexeme). Im Compiler wird eine derartige Einheit durch ein Token dargestellt. Überlesen von Leerzeichen und Kommentaren
22 Aufgabe der lexikalen Analyse zeichenweises Lesen der Eingabe Zusammenfassen der Zeichen zu größeren Einheiten (Lexeme). Im Compiler wird eine derartige Einheit durch ein Token dargestellt. Überlesen von Leerzeichen und Kommentaren Token repräsentieren eine Folge von Eingabezeichen, die als logische Einheit zu betrachten sind. Ein Token besteht aus zwei Komponenten, nämlich der Tokenklasse und dem Tokenwert.
23 Aufgabe der lexikalen Analyse zeichenweises Lesen der Eingabe Zusammenfassen der Zeichen zu größeren Einheiten (Lexeme). Im Compiler wird eine derartige Einheit durch ein Token dargestellt. Überlesen von Leerzeichen und Kommentaren Token repräsentieren eine Folge von Eingabezeichen, die als logische Einheit zu betrachten sind. Ein Token besteht aus zwei Komponenten, nämlich der Tokenklasse und dem Tokenwert. Diese Komponente des Compilers, wird auch Lexical Scanner oder einfach Scanner genannt.
24 Beispiel: Die Eingabezeile position := initial + rate * 60 könnte die folgende Tokenfolge liefern: Tokenklasse: Tokenwert: Identifier position Wertzuweisungszeichen - Identifier initial Pluszeichen - Identifier rate Multiplikationszeichen - Zahl 60
25 Aufgabe der syntaktischen Analyse Prüfung, ob die von der lexikalen Analyse gelieferten Token in einer Reihenfolge auftreten, die der (syntaktischen) Beschreibung der Programmiersprache entspricht. Gruppieren der Token zu größeren syntaktischen Strukturen, etwa in Form eines Ableitungsbaumes oder eines Syntaxbaumes.
26 Aufgabe der syntaktischen Analyse Prüfung, ob die von der lexikalen Analyse gelieferten Token in einer Reihenfolge auftreten, die der (syntaktischen) Beschreibung der Programmiersprache entspricht. Gruppieren der Token zu größeren syntaktischen Strukturen, etwa in Form eines Ableitungsbaumes oder eines Syntaxbaumes. Diese Komponente des Compilers wird auch als Parser bezeichnet.
27 Beispiel: Die Token könnten z. B. in der folgenden Form zu einem Syntaxbaum einer Wertzuweisung zusammengefaßt werden: := position + initial * rate 60
28 Aufgabe der semantischen Analyse Überprüfung der Typen von Konstanten und Variablen bzgl. der auf sie angewendeten Operationen und eine eventuelle automatische Typanpassung. Weiterhin muß in der semantischen Analyse überprüft werden, ob verwendete Identifier auch im Deklarationsteil des Programms definiert worden sind.
29 Beispiel: Unter der Annahme, daß alle Identifier vom Typ real sind, ergibt sich die Änderung: := position + initial * rate inttoreal 60
30 Aufgabe der Zwischencode-Erzeugung Übersetzung in einen Zwischencode, d. h. in die Maschinensprache einer abstrakten Maschine, die möglichst einfache Struktur hat.
31 Aufgabe der Zwischencode-Erzeugung Übersetzung in einen Zwischencode, d. h. in die Maschinensprache einer abstrakten Maschine, die möglichst einfache Struktur hat. Eine Möglichkeit eines Zwischencodes sind 3-Adreß-Befehle der Form A := B op C, wobei A, B und C Operanden sind und op ein Operator ist.
32 Aufgabe der Zwischencode-Erzeugung Übersetzung in einen Zwischencode, d. h. in die Maschinensprache einer abstrakten Maschine, die möglichst einfache Struktur hat. Eine Möglichkeit eines Zwischencodes sind 3-Adreß-Befehle der Form A := B op C, wobei A, B und C Operanden sind und op ein Operator ist. Eine andere Möglichkeit sind erweiterte Syntaxbäume oder Graphen.
33 Beispiel: Das Beispiel könnte etwa folgende Übersetzung in 3-Adreß-Befehle liefern: t1 := inttoreal 60 t2 := rate * t1 t3 := initial + t2 position := t3 Dabei sind t1, t2 und t3 neue, vom Zwischencode-Erzeuger generierte Namen.
34 Aufgabe der Codeoptimierung Verbesserung des Zwischencodes in Hinblick auf Speicherplatzbedarf und Laufzeitverhalten. Dazu benötigt man Algorithmen zum Entfernen überflüssiger Berechnungen,
35 Aufgabe der Codeoptimierung Verbesserung des Zwischencodes in Hinblick auf Speicherplatzbedarf und Laufzeitverhalten. Dazu benötigt man Algorithmen zum Entfernen überflüssiger Berechnungen, Ersetzung von Berechnungen zur Laufzeit durch Berechnungen zur Übersetzungszeit
36 Aufgabe der Codeoptimierung Verbesserung des Zwischencodes in Hinblick auf Speicherplatzbedarf und Laufzeitverhalten. Dazu benötigt man Algorithmen zum Entfernen überflüssiger Berechnungen, Ersetzung von Berechnungen zur Laufzeit durch Berechnungen zur Übersetzungszeit Erkennen von schleifeninvarianten Berechnungen und Verschieben dieser Teile vor den Schleifenbeginn
37 Aufgabe der Codeoptimierung Verbesserung des Zwischencodes in Hinblick auf Speicherplatzbedarf und Laufzeitverhalten. Dazu benötigt man Algorithmen zum Entfernen überflüssiger Berechnungen, Ersetzung von Berechnungen zur Laufzeit durch Berechnungen zur Übersetzungszeit Erkennen von schleifeninvarianten Berechnungen und Verschieben dieser Teile vor den Schleifenbeginn viele weitere, zum Teil von der Zielmaschine abhängige Optimierungen.
38 Beispiel: Nach der Codeoptimierung ergibt sich für unser bisheriges Beispiel folgender Zwischencode: t1 := rate * 60.0 position := initial + t1
39 Aufgabe der Code-Erzeugung Erzeugung von verschiebbarem Maschinencode (d. h. eines Objektprogramms) bzw. von Assemblercode. Die größte Schwierigkeit besteht dabei darin, die Zuordnung der Hardware-Register so zu wählen, daß möglichst wenig Speicherzugriffe nötig sind. (Speziell wichtig und kompliziert bei modernen RISC-CPUs oder Parallelrechnern.)
40 Beispiel: Es wird angenommen, daß die beiden Floating-Point-Register R1 und R2 momentan frei sind. MOVF MULF MOVF ADDF MOVF rate, R2 #60.0, R2 initial, R1 R2, R1 R1, position
Compilerbau für die Common Language Run-Time
Compilerbau für die Common Language Run-Time Syntax und Semantik von Programmiersprachen 2 Compilerbau Sprachbeschreibung vs. Implementierung Beschreibung: formale oder informale (engl.) Lexik, Syntax,
Definition Compiler. Bekannte Compiler
Compiler Inhalt: Definition Compiler / bekannte Compiler Klassifikationen von Compilern Analyse-Synthese-Modell der Kompilierung Analyse des Quellprogramms Synthesephase Die Phasen eines Compilers Symboltabellenverwaltung
Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002
1. Stellen Sie die schrittweise Verbesserung eines Compilers durch das Bootstrap- Verfahren mit Hilfe von T-Diagrammen dar. Gegeben ist ein auf der Maschine M lauffähiger Compiler C 1, der in S geschrieben
2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise
Teil 1 Kapitel 2 Rechner im Überblick 2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise Frank Schmiedle Technische Informatik I 2.1 Rechnersichten Modellierung eines Rechners Zusammenspiel
Einführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Sprachen und Übersetzer Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 4. Juni 2015 Sprachen vs. Übersetzer Sprache C11 Übersetzer GNU C
Compilerbau + Virtuelle Maschinen
Helmut Seidl Compilerbau + Virtuelle Maschinen München Sommersemester 2009 1 Organisatorisches Der erste Abschnitt Die Übersetzung von C ist den Vorlesungen Compilerbau und Virtuelle Maschinen gemeinsam
Definitionen/Vorarbeit zum Thema Java
Definitionen/Vorarbeit zum Thema Java Programmiersprachen: System von Wörtern und Symbolen, die zur Formulierung von Programmen für die elektronische Datenverarbeitung verwendet werden. Arten: z.b. Javascript
Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online
Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches
Compiler; Übersetzungsprogramme. Grundlagen der Programmierung 3 A. Compiler für Programmiersprachen. Phasen eines Compilers
ompiler; Übersetzungsprogramme Grundlagen der Programmierung 3 A ompiler A: Phasen; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Ein Übersetzer (ompiler) ist ein Programm, das ein Wort
Grammatiken und ANTLR
Grammatiken und ANTLR Zusatzfolien zu Algo Blatt 6 Author: Henry Schaefer http://www.majeeks.de/folien_blatt6.pdf Grammatik Definition: syntaktische Beschreibung einer Sprache (H.S.) Definiton Grammatik
Übersetzergenerierung mit lex und yacc
Übersetzergenerierung mit lex und yacc 0. Überblick und Organisatorisches Jan Bredereke WiSe 2006/07, Universität Bremen otivation Übersetzer: Grundlegende Werkzeuge welche Fehler kann er finden? Konstrukt
Es gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.
1 Einführung Programmiersprachen: Ermöglichen formale Beschreibung von Problemlösungsverfahren, die auf einem Computer oder Computersystemen ausführbar sind. Bilden die Basis zur Entwicklung von Software
Vorsemesterkurs Informatik
Vorsemesterkurs Informatik Programmieren und Programmiersprachen SoSe 2012 Stand der Folien: 26. März 2012 Übersicht Programme und Programmiersprachen Haskell 1 Programme und Programmiersprachen 2 Haskell
1 ÜBERSETZER. Compilerbau 1
1 ÜBERSETZER 1 A.V.Aho, J.D.Ullmann: Principles of Compiler Design, Addison Wesley (1977) J.Amsterdam: Building a computer in Software, BYTE (Okt. 1985) Programming Project: A SIMPL Compiler, BYTE (Dez.
III.1 Prinzipien der funktionalen Programmierung - 1 -
1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung
Fachseminar WS 2008/09
Fachseminar WS 2008/09 Fachgebiet: Compilerbau Thema: Lexikalische Analyse (Scanner) Referent: Ali Sediq Betreuer: Prof. Dr. Helmut Weber 1 Inhaltsverzeichnis Lexikalische Analyse 1.0 Grundprobleme der
Compiler. Einführung. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung:
Compiler Einführung Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 15:49 Inhaltsverzeichnis Ein Compiler................................... 2 Ein Compiler...................................
Compiler: Einführung
Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 15:49 Inhaltsverzeichnis Ein Compiler................................... 2 Ein Compiler...................................
Rechnerstrukturen. 7. Assembler. Inhalt. Vorlesung Rechnerstrukturen. Assemblerprogrammierung SML-CPU. SML-Assembler. Binden
Rechnerstrukturen 7. Assembler Assemblerprogrammierung SML-CPU Inhalt SML-Assembler Adressierungsarten Instruktionssatz Assembler-Direktiven Binden 7.2 1 Maschinensprache Instruktion = Bitkombination Für
Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen
Inhalt 3 Bemerkung... 9 Vorwort... 10 1 Programme und Programmiersprachen 1.1 Assembler... 13 1.2 Höhere Programmiersprachen... 15 1.2.1 Interpreter... 16 1.2.2 Compiler... 17 1.2.3 Zwischencode... 18
3. Methodik der Programmerstellung
3. Methodik der Programmerstellung 3.1 Vorgehen 3.2 Programmerstellung 3.2.1 Konventionen 3.2.2 Schlüsselwörter und Bezeichner 3.2.3 Fehlertypen 3.2.4 Programmierstil 3.3 Formaler Aufbau eines Pascal-Programms
Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der Informatik. SS 2016: Grossmann, Jenko
Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der SS 2016: Grossmann, Jenko Die Beschreibung orientiert sich am Begriffssystem der Beschreibung natürlicher Sprachen Sprache in der steht
9.4 Grundlagen des Compilerbaus
Kap09.fm Seite 717 Dienstag, 7. September 2010 2:06 14 9.4 Grundlagen des Compilerbaus 717 so dass die Benutzung dieser Regeln zum Aufbau eines + -Knotens bzw. eines Negations- Knotens im abstrakten Syntaxbaum
Compiler und Codegenerierung. Hw-Sw-Co-Design
Compiler und Codegenerierung Hw-Sw-Co-Design Wo sind wir? System Verhalten Modul Architektur Block SW HW Logik Struktur Compiler und Codegenerierung Compiler - Aufbau Codegenerierung Codeoptimierung Codegenerierung
Einführung IMP-Syntax Reduktionssemantik Maschinen-Semantik. Teil IV. Semantik imperativer Sprachen
Teil IV Semantik imperativer Sprachen 201 1. Einführung Alternativen zur Beschreibung der Semantik: natürliche Sprache (bisher, unpräzise) operational Reduktionssemantik (vgl. Haskell-Semantik in Kap.
Methoden zur Interpretation LISPähnlicher. Programmiersprachen. Seminarvortrag / 53 FH AACHEN FACHBEREICH 9 TOBIAS STUMM MATR.-NR.
Methoden zur Interpretation LISPähnlicher Programmiersprachen Seminarvortrag 20.01.2017 FACHBEREICH 9 TOBIAS STUMM MATR.-NR. 4012917 1 Inhalt Motivation Lisp > Definition > Scheme Interpreter > Definition
Beispiel einer Übersetzung
Beispiel einer Übersetzung Ausdruck in C aktuelle_zeit = Startzeit + vergangene_minuten*60 + vergangene_sekunden; Ausdruck im Instruktionssatz des R10000 LW r1,minuten LW r1,sekunden ADDI r2,r0,60 ADD
TURBO PASCAL VERSION 5.5
Jörg Lange TURBO PASCAL VERSION 5.5 / Hüthig Buch Verlag Heidelberg 7 Inhaltsverzeichnis 1. DasTURBO-Pascal-System 13 1.1 Starten des TURBO-Pascal-Systems 13 1.2 DasTURBO-Pascal-Menue-System 17 1.3 DasF)ILE-Menue
EIGENSCHAFTEN VON SPRACHEN
Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler EIGENSCHAFTEN VON SPRACHEN EWS, WS 2016/17, Pfahler C-1 Einführung Sprachen in der Informatik werden für bestimmte Zwecke
Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme
Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung 2 Institut für Computational Science, ETH Zürich,
Kapitel 5: Syntaxdiagramme und Grammatikregeln
5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische
Ein kleiner Blick auf die generische Programmierung
TgZero Technik.Blosbasis.net June 3, 2013 1 Inhaltsverzeichnis 1 Vorwort 3 2 Ein kleines Beispiel 3 3 Templates 3 4 Verschiedene Datentypen 4 5 Variadic Templates 5 6 Unterschied zwischen den Programmiersprachen
Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen
Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2005 1-1 Inhalt (1) Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke 4. Ablaufsteuerung (Kontrollstrukturen)
Syntax von Programmiersprachen
Syntax von Programmiersprachen SEP 209 Programmiersprachen Sprache = Menge von Wörtern, typischerweise unendlich Programmiersprache: Wörter repräsentieren Programme Programm kann auf einem Computer evtl.
Stackmaschine; Speicheradressierung
Stackmaschine; Speicheradressierung Erweiterung um globalen Speicher (Heap, Halde) pro Speicherplatz eine Zahl. Notation ist als Array SP [0..]. Zugriff mittels Adresse (Index): eine Zahl i.a.: Zahlen
2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
Abschnitt 7: Komplexität von imperativen Programmen
Abschnitt 7: Komplexität von imperativen Programmen 7. Komplexität von imperativen Programmen 7 Komplexität von imperativen Programmen Einf. Progr. (WS 08/09) 399 Ressourcenbedarf von Algorithmen Algorithmen
Algorithmus: Kochrezept
Algorithmus: Kochrezept Ziel: Menü mit drei Gängen für 4 Personen Grundlegende Spezifikation: 1. Vorspeise: Badische Flädlesuppe 2. Hauptgericht: Überbackene Schinkenröllchen mit Spargel 3. Dessert: Vanilleeis
Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
Programmierkurs II. C und Assembler
Programmierkurs II C und Assembler Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2003 1-1 Inhalt Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke
Was ist ein Compiler?
Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?
Grundlagen der Informatik I (Studiengang Medieninformatik)
Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: [email protected]
II.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2
iii Inhaltsverzeichnis Kurseinheit 1 1 Von der Aufgabenstellung zum Programm... 1 1.1 Motivation... 1 1.2 Softwareentwicklung... 2 1.3 EXKURS: Unified Modeling Language (UML)... 4 2 Anforderungsanalyse...
30. Parser-Generatoren
30. Parser-Generatoren Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden http://st.inf.tu-dresden.de Version 11-0.1,
68000 Assembler. WAS ist ein Assembler? Ein System, das den Programmierer hilft, eine maschinennahe Programmierung zu realisieren.
WAS ist ein Assembler? Ein System, das den Programmierer hilft, eine maschinennahe Programmierung zu realisieren. Ein Programm liegt der CPU in binärer Form vor und wird durch den Assembler in einer primitiven
LR-Parser, Shift-Reduce-Verfahren
LR-Parser, Shift-Reduce-Verfahren Bottom-Up-Syntaxanalyse LR-Parser L: Eingabe von links nach rechts; R: Rechtsherleitung Shift-Reduce-Verfahren Beachte: Kein Backtracking nicht auf jede Grammatik anwendbar
Ausdrücke (1) Grundlegende Eigenschaften
Ausdrücke () Grundlegende Eigenschaften bestehen aus Literalen, Konstanten, Variablen und Operatoren einfachster Ausdruck ist das Semikolon, es bewirkt nichts. Ausdrücke werden mit einem Semikolon abgeschlossen.
Kapitel 4: Syntaxdiagramme und Grammatikregeln
4. Syntaxdiagramme und Grammatikregeln 4-1 Objektorientierte Programmierung (Winter 2006/2007) Kapitel 4: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische
LPalin-Bin & GPalin-Bin
LPalin-Bin & GPalin-Bin G Palin-Bin = (V,S,S,P) mit - V = {S} Variablen - S = S bin Terminalsymbole - Startsymbol S - P = { S -> e, (1) S -> 0, (2) S -> 1, (3) S -> 0S0, (4) S -> 1S1, (5) } L Palin-Bin
2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
Einführung in die Informatik I (autip)
Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis
Entwurfsmuster (Design Patterns)
Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder
Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe
Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 26. August 2009 1/17 Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe Prof. G. Kemnitz
Grundlagen der Programmierung 2. Operationale Semantik
Grundlagen der Programmierung 2 Operationale Semantik Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 29. April 2009 Semantik von Programmiersprachen Semantik = Bedeutung
Definition von LR(k)-Grammatiken
Definition von LR(k)-Grammatiken Ziel: Ein Lookahead von k soll ausreichen um entscheiden zu können, welche Regel angewendet werden muss. Definition: FIRST k (w 1 w n ):= w 1 w k, falls n k, w 1 w n, sonst.
Vorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
C-Grundlagen. Einführung von Tronje Krabbe 1/21
C-Grundlagen Einführung von Tronje Krabbe 1/21 Gliederung Hintergrund Geschichte Nutzungsgebiete C-Derivate Syntax Compiler Beispielcode 2/21 Was ist C? C ist eine imperative, kompilierte Programmiersprache
Masterarbeit von Filipp Andjelo
Fachgebiet für Programmiersprachen und Übersetzer Leibniz Universität Hannover Masterarbeit von Filipp Andjelo Thema: Entwicklung eines Lern- und Experimentiercompilers 1. Prüfer: Prof. Dr. Rainer Parchmann
Programmieren lernen mit Perl
Xpert.press Programmieren lernen mit Perl Bearbeitet von Joachim Ziegler 1. Auflage 2002. Buch. XIV, 400 S. Hardcover ISBN 978 3 540 42685 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 783 g Weitere Fachgebiete
Objektorientierte Programmierung (OOP)
orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,
Definition von domänenspezifischen Sprachen mit Xtext: Einführung
Definition von domänenspezifischen Sprachen mit Xtext: Einführung 28. November 2012 Taentzer Modellgetriebene Softwareentwicklung 246 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen
Programmiersprache. Emily & rica
Programmiersprache Emily & rica inhaltsangabe Programmiersprache Def inition/funktion Arten Gängige Algorithmus/Syntax Compiler, Interpreter Def inition Unterscheidung Vor- und Nachteile Compiler/ Interpreter
Grundlagen der Rechnerarchitektur. MIPS Assembler
Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32
Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda
ALP I µ-rekursive Funktionen WS 2012/2013 Primitiv-rekursive Funktionen Jede primitiv-rekursive Funktion ist Loop-berechenbar. Das bedeutet, dass jede PR-Funktion in der Loop-Programmiersprache formuliert
Programmierung 2. Übersetzer: Das Frontend. Sebastian Hack. Klaas Boesche. Sommersemester
1 Programmierung 2 Übersetzer: Das Frontend Sebastian Hack [email protected] Klaas Boesche [email protected] Sommersemester 2012 Vom Programm zur Maschine Was passiert eigentlich mit unseren
Interpreter - Gliederung
Institut für Informatik Ludwig-Maximilian Universität Interpreter - Gliederung Programmiersprache Syntax Konkrete Syntax Abstrakter Syntax Baum (Abstrakte Syntax) Parser Syntaktische Struktur einer Sprache
Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden
Funktionen in Matlab Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung
Programmierpraktikum
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Praktikum: Grundlagen der Programmierung Programmierpraktikum Woche 04 (17.11.2016) Stefan Berktold [email protected] PRÄSENZAUFGABEN Heutige Übersicht
Inhalt. Einführung in die Strukturierte Programmierung 15
Inhalt Einführung in die Strukturierte Programmierung 15 1.1 Was bedeutet Programmieren? 17 1.2 Was bedeutet Strukturierte Programmierung? 18 1.3 Was ist Pascal? 19 1.4 Was ist PS/k? 20 1.5 Warum wird
Übersetzergenerierung mit lex und yacc
Übersetzergenerierung mit lex und yacc 0. Überblick und Organisatorisches Jan Bredereke SoSe 2004, Universität Bremen otivation Übersetzer: Grundlegende Werkzeuge welche Fehler kann er finden? Konstrukt
Konzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
