Übersetzer und sprachverarbeitende Werkzeuge

Größe: px
Ab Seite anzeigen:

Download "Übersetzer und sprachverarbeitende Werkzeuge"

Transkript

1 Übersetzer und sprachverarbeitende Werkzeuge Arnd Poetzsch-Heffter AG Softwaretechnik TU Kaiserslautern Sommersemester 07 1

2 1.Kapitel: Einführung Implementierung von Compilern und sprachspezifischen Werkzeugen Anwendungsbereiche & angrenzende Gebiete Implementierungsaufgaben & -techniken Konstruktion sprachspezifischer Werkzeuge: Begriffe, Architektur, Techniken Inhalt der Vorlesung Lernziele der Vorlesung Aufbau von Kapitel 1: Überblick und Umfeld Implementierungsaspekte sprachspezifischer Werkzeuge Inhalt und Lernziele Literatur: R. Wilhelm, D. Maurer: Übersetzerbau. Springer-Verlag A. Appel: Modern Compiler Implementation in Java. Cambridge University Press

3 1.1 Überblick und Umfeld Begriffsklärung: Implementierung sprachspezifischer Werkzeuge: - Verarbeiten Quelltexte bestimmter Sprachen - Analysieren die Quelltexte - ggf. Übersetzung in andere Sprachen Typische Quellsprachen: - Programmiersprachen: C, C++, C#, Java, ML, Cobol, Smalltalk, Prolog,... Skriptsprachen (JavaScript), Kommandosprachen - Sprachen für Konfigurationsmanagement (make,..) - Anwendungs- & werkzeugspezifische Sprachen (Excel, Lex, Max,...) - Spezifikationssprachen (Z, Isabelle/HOL, CASL) - Formatierungs- und Datenbeschreibungssprachen (LaTeX, HTML, XML,...) - Entwurfs- & Architekturbeschreibungssprachen (UML, SDL, VHDL, Darwin,...) 3

4 Typische Zielsprachen: - Assembler- und Maschinensprachen - Programmiersprachen (z.b. C) - Daten- und Layoutbeschreibungssprachen - Sprachen zur Drucksteuerung Implementierung: - Rechner- bzw. Werkzeugunterstützung für die Verarbeitung - Integration ins Systemumfeld - Verbindung zu anderen Sprachen 4

5 Anwendungsbereiche der Techniken: (exemplarisch) Realisierung von Programmierumgebungen: - kontextsensitive Editoren, Klassenbrowser,... - graphische Programmierwerkzeuge - Präprozessoren - Übersetzer - Interpreter - Debugger - Laufzeitumgebung (Laden, Linken, Ausführen, Speicherverwalten) Generierung von Programmen aus Entwurfsdokumenten (UML,... ) Programmverstehen, Reengineering Entwurf und Implementierung anwendungsspezifischer Sprachen: - Robotersteuerung - Simulationswerkzeuge - Tabellenkalkulatoren, aktive Dokumente Web-Technologie: - Analyse von Web-Sites - aktive Webseiten (mit integrierter Funktionalität) - abstrakte Plattformen: JVM,.Net - Optimieren von Caching 5

6 Angrenzende Gebiete: Formale Sprachen, Sprachspezifikation, -entwurf Programmier- und Spezifikationsprachen Programmierung, Softwareentwicklung, SW-Generierung, SW-Architektur Systemsoftware, Rechnerarchitektur gegenseite Wechselwirkung Implementierungsaufgaben: Analyse: Übersetzung: Interpretation: Quellcode Quellcode Quellcode Eingabedaten Analysator Übersetzer Interpreter Analyse- Zielcode Ausgabedaten information häufig Kombination der Aufgaben 6

7 1. Übersetzung: Übersetzer/Compiler realisiert Analyse & Übersetzung BS & reale Maschine realisieren Interpretation Vorteile: effizienteste Lösung ein Interpreter für alle Programmiersprachen auch für andere Lösungen Voraussetzung 2. Direkte Interpretation: Interpreter realisiert alle Aufgaben Beispiele: JavaScript, Kommandosprachen Vorteile: keine Übersetzung nötig (dafür Analyse zur Laufzeit) 3. Abstrakte/virtuelle Maschinen: Übersetzer/Compiler realisiert Analyse & Übersetzung in abstrakten Maschinencode Abstrakte Maschine als Interpreter Beispiele: Prolog/WAM, Java/JVM, C#/CLR Vorteile: Plattformunabhängigkeit (Portabilität, mobilen Code) selbst modifizierende Programme möglich 4. Weitere Kombinationen 7

8 Beispiel: (Analyse) package b1_1 ; class Weltklasse extends Superklasse implement BesteBohnen {Qualifikation studieren ( Arbeit schweiss) { return new Qualifikation ();}} Superklasse.class BesteBohnen.class Qualifikation.class Arbeit.class... javac-analysator b1_1/weltklasse.java:4: '{' expected. extends Superklasse ^ 1 error 8

9 Beispiel 1: (Übersetzung) package b1_1; class Weltklasse extends Superklasse implements BesteBohnen { Qualifikation studieren ( Arbeit schweiss ) { return new Qualifikation(); }} Superklasse.class BesteBohnen.class Qualifikation.class Arbeit.class... javac Compiled from Weltklasse.java class b1_1/weltklasse extends... implements... { b1_1/weltklasse(); b1_1.qualifikation studieren(...); } Method b1_1/weltklasse()... Method b1_1.qualifikation studieren(...)... 9

10 10 Compiled from Weltklasse.java class b1_1/weltklasse extends b1_1.superklasse implements b1_1.bestebohnen { b1_1/weltklasse(); b1_1.qualifikation studieren(b1_1.arbeit); } Method b1_1/weltklasse() 0 aload_0 1 invokespecial #6 <Method b1_1.superklasse()> 4 return Method b1_1.qualifikation studieren(b1_1.arbeit) 0 new #2 <Class b1_1.qualifikation> 3 dup 4 invokespecial #5 <Method b1_1.qualifikation()> 7 areturn Beispiel 1: (Fortsetzung)

11 Beispiel 2: (Übersetzung) int main() { printf("willkommen zur Vorlesung!"); return 0; } gcc.file "hello_world.c".version "01.01" gcc2_compiled.:.section.rodata.lc0:.string "Willkommen zur Vorlesung!".text.align 16.globl main.type main,@function main: pushl %ebp movl %esp,%ebp subl $8,%esp... 11

12 Beispiel 2: (Fortsetzung).file "hello_world.c".version "01.01" gcc2_compiled.:.section.rodata.lc0:.string "Willkommen zur Vorlesung!".text.align 16.globl main.type main: pushl %ebp movl %esp,%ebp subl $8,%esp addl $-12,%esp pushl $.LC0 call printf addl $16,%esp xorl %eax,%eax jmp.l2.p2align 4,,7.L2: movl %ebp,%esp popl %ebp ret.lfe1:.size main,.lfe1-main.ident "GCC: (GNU) (release)" 12

13 Beispiel 3: (Übersetzung) groovy.tex (104 bytes) \documentclass{article} \begin{document} \vspace*{7cm} \centerline{\huge\bf It s groovy} \end{document} latex groovy.dvi (207 bytes, binary)... dvips groovy.ps (7136 bytes) %!PS-Adobe-2.0 %%Creator: dvips(k) %%Title: groovy.dvi... 13

14 Beispiel: (Interpretation).class-Datei iload_1 15 iload_2 16 idiv 17 istore_3... Eingabedaten iload_1 15 iload_2 16 idiv 17 istore_3... Java Virtual Machine (JVM) Ausgabedaten 14

15 Beispiel: (Kombinierte Technik) Kombinierte Implementierungstechnik: Java-Implementierung mit JIT-Übersetzer Java-Übersetzungseinheit (JIT=Just in time) javac Analysator Übersetzer.class-Datei Eingabedaten Java Byte Code JIT-Übersetzer JVM Maschinencode reale Maschine/Hardware Ausgabedaten 15

16 1.2 Aspekte von Sprachimplementierungen Architektur/Phasen von Sprachimplementierungen Aspekte des Übersetzerbaus Architektur und Phasen von Sprachimplementierungen Analyse der Eingabe, d.h. z.b. - des Programms - der Spezifikation - des Diagramms In Abhängigkeit von den weiteren Zielen der Sprachimplementierung z.b.: - Transformation (z.b. XSLT, Refactoring) - Formatierung - semantische Analyse (z.b. Programmverstehen) - Optimierung - Übersetzung im engeren Sinne 16

17 1.2.2 Aspekte des Übersetzerbaus Begriffsklärungen: Übersetzungsaufgabe: Quellcode Übersetzer (im weiteren Sinn) Fehlermeldung Zielcode Übersetzer im weiteren Sinn realisiert: Analyse & Optimierung & Übersetzung Quellcode: Eingabe(-Zeichenreihe) für Übersetzer; sollte der Syntax der Quellsprache (QS) genügen Zielcode: Ausgabe(-Zeichenreihe) des Übersetzer; muss der Syntax der Zielsprache (ZS) genügen 17

18 Zur Übersetzungszeit: während der Übersetzer läuft. Alle Informationen und Aspekte, die schon zur Übersetzungszeit bekannt sind, nennt man statisch. Z.B. Typprüfung der Programms, Konstante Ausdrücke auswerten, Relativadressen festlegen,... Zur Laufzeit: während das übersetze Programm ausgeführt wird. Alle Informationen und Aspekte, die statisch noch unbekannt sind, nennt man dynamisch. Z.B. Allokation von Feldern variabler Größe, Bereichsprüfung von Feldern, dynamische Bindung von Methoden, Speicherverwaltung für rekursive Prozeduren. Da der Übersetzer dynamische Aspekte nicht zur Übersetzungszeit behandeln kann, erzeugt er dafür Code. Der Code erledigt die Aspekte dann zur Laufzeit. 18

19 Anforderungen an Übersetzer: Gute Fehlerbehandlung (statisch & dynamisch) Effizienter Zielcode Wahlmöglichkeit: schnelle Übersetzung & weniger effizienter Code versus langsamere Übersetzung & hoch effizienter Code semantisch korrekte Übersetzung: Übersetztes Programm verhält sich gemäß der Sprachdefinition der Quellsprache D.h. mit semqs: QS-Programme x QS-Daten semzs: ZS-Programme x ZS-Daten compile: QS-Programme code: QS-Daten ZS-Daten decode: ZS-Daten QS-Daten ZS-Programme QS-Daten ZS-Daten sollte für alle QS-Programme P, QS-Daten D gelten: semqs(p,d) = decode(semzs(compile(p),code(d))) 19

20 Architektur: Quellcode als Zeichenreihe Scanner Symbolfolge Analyse Parser Syntaxbaum Namensbinden Typisieren Attributieren & Optimieren Attributierter Baum ( QS-nahe Repr.) Übersetzer im engeren Sinn Synthese Attributieren & Optimieren Zwischensprache ( ZS-nahe Repr.) Codegenerator Peephole- Optimierer Zielcode als Zeichenreihe 20

21 Aspekte von Übersetzerarchitekturen: Phasen zunächst einmal konzeptionell gemeint Ausführung der Phasen kann verschränkt sein Unterschied: Phase versus Pass (Pass: ein Durchgang durch das Programm) genaue Festlegung der Phasen ist von Quell-, Zielsprache und Entwurfsentscheidungen abhängig Kombination mit anderen Architekturentscheidungen: QS_1 QS_2... QS_m gemeinsame Zwischensprache ZS_1 ZS_2... ZS_n getrennte Übersetzung: Programmteile können unabhängig von einander übersetzt werden; Schnittstelleninformation benutzter Elemente anderer Programmteile muss verfügbar sein. 21

22 Konstruktionstechniken: A. Schrittweise Konstruktion: Programmierung basiert üblicherweise auf Existenz eines Übersetzers für die Implementierungssprache. Bei Übersetzerkonstruktion kann davon im Allg. nicht ausgegangen werden; stehe QS ZS PS für einen Übersetzer der in Sprache PS geschrieben ist und QS in ZS übersetzt. 1. Konstruktion mit Übersetzer für andere Sprache: Gesucht: QS-Compiler, Ziel, läuft auf Annahme: C-Compiler existiert auf Plattform mit Maschinensprache QS QS zu entwickeln C C durch Übersetzung existiert 22

23 2. Konstruktion mit Übersetzer für anderen Rechner: Gesucht: C-Compiler auf 1 für 1 Annahme: C-Compiler auf 2 für 2 existiert Methode: realisiere zunächst Cross-Compiler 1.Schritt: C 1 C 1 C C Schritt: Cross-Compiler C 1 C 1 C C

24 3. Bootstrapping: Gesucht: QS-Compiler auf für Annahme: kein Compiler verfügbar Methode: 1. Entwerfe Teilsprachen QS i von QS mit QS QS 0 U QS 1 U QS 2 U 2. Implementiere QS -Compiler für in 3. Implementiere QS -Compiler für in QS 4. Erzeuge QS -Compiler für in i+1 0 i+1 i durch Erweiterung QS QS QS 2 QS 2 QS 2 QS 1 QS 1 QS 1 QS 0 QS 0 durch Übersetzung von Hand 24

25 B. Mit Generierungswerkzeugen: Scanner-Generator / reguläre Ausdrücke Parser-Generator / kontextfreie Grammatik Attributauswertungsgenerator / Attributgrammatik Codegenerator-Generator / Maschinenbeschreibung weitere phasenspezifische Werkzeuge Interpretergeneratoren / Sprachsemantik C. Spezielle Programmiermethodiken: allgmeine Technik: syntaxgesteuert speziell: rekursiver Abstieg 25

26 Dimensionen des Übersetzerbaus: Programmiersprachen (-sprachklassen): - sequentielle prozedurale, oo. Sprachen - funktionale, logische Sprachen - parallele Sprachen/Sprachkonzepte Zielsprachen/Maschine: - Code für abstrakte Maschine - Assembler - Maschinensprache (CISC, RISC,Superskalar,...) - Multiprozessorarchitekturen - Speicherhierarchie Übersetzungsaufgaben: Analyse, Optimierung, Synthese Konstruktionsmethoden und Werkzeuge Bootstrapping, Generatoren,... Portabilität, Spezifikation, Korrektheit 26

27 1.3 Inhalt und Lernziele 1. Einführung: Überblick, Motivation, Aufgabenstellung 2. Syntax- und Typanalyse 2.1 Lexikalische Syntaxanalyse 2.2 Kontextfreie Syntaxanalyse 2.3 Kontextabhängige Syntaxanalyse (oft semantische Analyse genannt) 3. Übersetzung in die Zielsprache 3.1 Übersetzung imperativer Sprachkonstrukte 3.2 Übersetzung objektorientierter Sprachkonstrukte 3.3 Übersetzung am Beispiel Java 4. Ausgewählte Aspekte der Übersetzung 4.1 Zwischensprachen 4.2 Optimierung 4.3 Befehlsauswahl 4.4 Registerzuweisung 4.5 Codegenerierung 5. Garbage Collection 6. Zusammenfassung und Ausblick 27

28 Lernziele: Grundlagen der Implementierung von Programmiersprachen, insbesondere des Übersetzerbaus Vertiefung in Programmiersprachen Genauere Kenntnis über die Ausführung von Programmen Erlernen ausgereifter, vielseitig einsetzbarer Methoden und Werkzeuge Kennenlernen des Zusammenwirkens von Theorie, Algorithmen, Ingenieurmethoden am Beispiel eines gereiften Gebiets der Informatik Übertragung in andere Gebiete Lesen Sie zu Kapitel 1: Wilhelm, Maurer: Kap. 1, Einleitung (S. 1-5) Kap. 6, Struktur von Übersetzern (S ) Appel: Chap. 1, Introduction (S. 3 14) 28

Übersetzung von Programmiersprachen

Übersetzung von Programmiersprachen Übersetzung von Programmiersprachen Arnd Poetzsch-Heffter AG Softwaretechnik TU Kaiserslautern Wintersemester 2005/06 1 1.Kapitel: Einführung Aufbauend auf den Techniken zur syntaktischen Analyse formaler

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Outline 1 Übersetzer und Werkzeuge zur Sprachverarbeitung Examples 2 Sprachverarbeitung Terminology

Mehr

Outline. Software Entwicklung 1. Tasks of Language-Processing Tools I. Examples. Annette Bieniusa / Arnd Poetzsch-Heffter

Outline. Software Entwicklung 1. Tasks of Language-Processing Tools I. Examples. Annette Bieniusa / Arnd Poetzsch-Heffter Outline Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern 1 Übersetzer und Werkzeuge zur Sprachverarbeitung Examples 2 Sprachverarbeitung Terminology

Mehr

Definition Compiler. Bekannte Compiler

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

Mehr

Compilerbau für die Common Language Run-Time

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,

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Übersetzer I. Vorlesung WS 1999/2000 Uwe Kastens

Übersetzer I. Vorlesung WS 1999/2000 Uwe Kastens U-0 Übersetzer I Vorlesung WS 1999/2000 Uwe Kastens grundlegende Verfahren der Sprachimplementierung erlernen, den Einsatz von generierenden Werkzeugen und von Standardverfahren kennen und schätzen lernen,

Mehr

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einleitung Gliederung Einführung in die Programmierung Wintersemester 08/09 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering

Mehr

Einführung. (Compiler) Prof. Dr. Oliver Braun. Letzte Änderung: :49. Einführung 1/26

Einführung. (Compiler) Prof. Dr. Oliver Braun. Letzte Änderung: :49. Einführung 1/26 Einführung (Compiler) Prof. Dr. Oliver Braun Letzte Änderung: 10.05.2017 15:49 Einführung 1/26 Ein Compiler ist ein Computerprogramm das ein Programm geschrieben in einer Sprache in ein Programm übersetzt

Mehr

Es gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.

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

Mehr

den Einsatz von generierenden Werkzeugen und Theorien und von Software-Engineering-Methoden

den Einsatz von generierenden Werkzeugen und Theorien und von Software-Engineering-Methoden U- Übersetzer Vorlesung WS /8 Uwe Kastens Ziele: grundlegende Verfahren der Sprachimplementierung erlernen den Einsatz von generierenden Werkzeugen und von Standardverfahren kennen und schätzen lernen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einleitung Gliederung Einführung in die Programmierung Wintersemester 2017/18 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering

Mehr

Compiler. Einführung. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung:

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...................................

Mehr

Compiler: Einführung

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...................................

Mehr

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 - n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information

Mehr

Einführung in die Programmierung Wintersemester 2016/17

Einführung in die Programmierung Wintersemester 2016/17 Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Einleitung Gliederung Zum Begriff Informatik Zum

Mehr

Java I Vorlesung 1 Einführung in Java

Java I Vorlesung 1 Einführung in Java Java I Vorlesung 1 Einführung in Java Alexander Koller koller@coli.uni-sb.de 26.4.2004 Problem Algorithmus Programm Programmiersprachen Warum Java? Unser erstes Java-Programm Organisatorisches Was heißt

Mehr

6. Grundlagen der Programmierung

6. Grundlagen der Programmierung Computeranwendung in der Chemie Informatik für Chemiker(innen) 6. Grundlagen der Programmierung Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL6 Folie 1 Dr. Jens Döbler Grundlagen

Mehr

30. Parser-Generatoren

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,

Mehr

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

Mehr

EIGENSCHAFTEN VON SPRACHEN

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

Mehr

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder Java: Kapitel 1 Überblick Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Was ist Java? Die Java-Technologie umfasst die Programmiersprache Java sowie die Java-Plattform

Mehr

Inhalte des Moduls Programmieren 1

Inhalte des Moduls Programmieren 1 Inhalte des Moduls Programmieren 1 Einführung: Algorithmus und Programm, Programmiersprache Erste Schritte in Java Grundlagen der Sprache: Datentypen, Ausdrücke und Anweisungen, imperative Programmierung

Mehr

C-Grundlagen. Einführung von Tronje Krabbe 1/21

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

Mehr

7. Syntax: Grammatiken, EBNF

7. Syntax: Grammatiken, EBNF 7. Syntax: Grammatiken, EBNF Teil 1 Sehr schönes Beispiel für Notwendigkeit der Theoretischen Informatik für Belange der Praktischen Informatik Vertiefung in: Einführung in die Theoretische Informatik

Mehr

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217 EIDI 1 Einführung in die Informatik 1 PGdP Praktikum Grundlagen der Programmierung Harald Räcke 2/217 Wie löst man Probleme mithilfe von Computern? 0 Harald Räcke 3/217 Inhalte: EIDI 1 1. Was ist das Problem?

Mehr

Seite 1. ProSeminar Compilerbau

Seite 1. ProSeminar Compilerbau Seite 1 ProSeminar Compilerbau Seite 2 Was passiert, wenn ihr javac aufruft? In diesem Seminar lernt ihr, wie ein Werkzeug, das ihr jeden Tag verwendet, eigentlich funktioniert. Seite 3 Aufbau des ProSeminars

Mehr

Programmiersprache. Emily & rica

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

Mehr

Programmierung 2. Übersetzer: Das Frontend. Sebastian Hack. Klaas Boesche. Sommersemester

Programmierung 2. Übersetzer: Das Frontend. Sebastian Hack. Klaas Boesche. Sommersemester 1 Programmierung 2 Übersetzer: Das Frontend Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 Vom Programm zur Maschine Was passiert eigentlich mit unseren

Mehr

Info B VL 1: Einführung p.1

Info B VL 1: Einführung p.1 Info B VL 1: Einführung Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 1: Einführung p.1 Programmier-Paradigmen

Mehr

Software Engineering. 5. Architektur

Software Engineering. 5. Architektur Software Engineering 5. Architektur Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung Konfigurationsmanagement

Mehr

Stratego/XT und ASF+SDF Meta-Environment. Paul Weder Seminar Transformationen Datum:

Stratego/XT und ASF+SDF Meta-Environment. Paul Weder Seminar Transformationen Datum: Stratego/XT und ASF+SDF Meta-Environment Paul Weder Seminar Transformationen Datum: 20.01.2006 Gliederung Allgemeines ASF+SDF Meta-Environment Stratego/XT Zusammenfassung/Vergleich SDF (Syntax Definition

Mehr

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

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

Mehr

Springer-Verlag Berlin Heidelberg GmbH

Springer-Verlag Berlin Heidelberg GmbH Springer-Lehrbuch Springer-Verlag Berlin Heidelberg GmbH Ralf Hartmut Güting Martin Erwig Ü bersetzerba u Techniken, Werkzeuge, Anwendungen Mit 103 Abbildungen Springer Prof. Dr. Ralf HartmutGüting Dr.

Mehr

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

Definitionen/Vorarbeit zum Thema Java

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

Mehr

III.1 Prinzipien der funktionalen Programmierung - 1 -

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

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Klaus Knopper 09.11.2004 Inhaltsverzeichnis Programmiersprachen Eine Programmiersprache ist eine formale Sprache zur Darstellung (Notation) von Computerprogrammen. Sie vermittelt

Mehr

Compilerbau. Wintersemester 2010 / Dr. Heiko Falk

Compilerbau. Wintersemester 2010 / Dr. Heiko Falk Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung für Eingebettete Systeme Organisatorisches (1) Vorlesung (2V) Montags,

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

Inhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.

Inhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms. Inhalt Algorithmus Euklidscher Algorithmus Sortieren Programmiersprachen Entwicklungsschritte eines Programms Algorithmen 1 Algorithmus Eindeutige Beschreibung eines allgemeinen Verfahrens unter Verwendung

Mehr

Algorithmen und Datenstrukturen Laufzeitabschätzung

Algorithmen und Datenstrukturen Laufzeitabschätzung Algorithmen und Datenstrukturen Laufzeitabschätzung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren, Suchen,

Mehr

Übung 1 - Betriebssysteme I

Übung 1 - Betriebssysteme I Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits

Mehr

JAVA als erste Programmiersprache Semesterkurs

JAVA als erste Programmiersprache Semesterkurs JAVA als erste Programmiersprache Semesterkurs 0 - Einstieg WS 2012 / 2013 Prof. Dr. Bodo Kraft Prof. Dr. Bodo Kraft FH Aachen University of Applied Sciences Fachbereich Medizintechnik und Technomathematik

Mehr

Einführung in die Informatik Jumping into Java

Einführung in die Informatik Jumping into Java Einführung in die Informatik Jumping into Java Programme, Modelle, Objekte, Klassen, Methoden Wolfram Burgard Cyrill Stachniss 2.1 Java, eine moderne, objektorientierte Sprache Beispielprogramm: import

Mehr

Programmieren in Java

Programmieren in Java Einführung in die (imperative) Programmierung 2 Programmierung Ziel: Zielsystem soll eine bestimmte Aktion ausführen Zielsystem: Eine Plattform wie Windows oder MacOS oder ein bestimmter Prozessor Aktion:

Mehr

Programmierung unter GNU/Linux für Einsteiger

Programmierung unter GNU/Linux für Einsteiger unter GNU/Linux für Einsteiger Edgar Fast Edi Hoffmann Community FreieSoftwareOG kontakt@freiesoftwareog.org 7. September 2016 Begriffserklärung 2 / 35 Begriffserklärung Programmierung (von griechisch

Mehr

II.1.1. Erste Schritte - 1 -

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.

Mehr

EINFÜHRUNG. Maschinenmodell. konkrete Maschine. Interpreter. universelle programmierbare Rechenmaschine:

EINFÜHRUNG. Maschinenmodell. konkrete Maschine. Interpreter. universelle programmierbare Rechenmaschine: EINFÜHRUNG (ontag, den 28 April 2003) Implementierung von Programmiersprachen aschinenmodell 7 konkrete aschine 8 Interpreter 9 Übersetzer 10 Implementierungssprache 11 Implementierung von Übersetzern

Mehr

1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Ein Zitat zu Beginn Vor der Wahl, ein theoretischer Physiker oder ein Programmierer

Mehr

Übersetzergenerierung mit lex und yacc

Ü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

Mehr

Einführung in die Informatik. Jumping into Java

Einführung in die Informatik. Jumping into Java Einführung in die Informatik Jumping into Java Programme, Modelle, Objekte, Klassen, Methoden Wolfram Burgard 1 Java, eine moderne, objektorientierte Sprache Beispielprogramm: import java.io.*; class Program1

Mehr

Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker

Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Was sind Programme? In dieser Vorlesung: Python,

Mehr

Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker

Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Was sind Programme? In dieser Vorlesung: Python,

Mehr

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen Organisation und Einführung Studiengang Informatik Universität Bremen Sommersemester 2010 (Vorlesung am Montag, der 12. April 2010) (Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung

Mehr

1. Erläutern Sie die Aufgaben von Datentypen in der imperativen Programmierung.

1. Erläutern Sie die Aufgaben von Datentypen in der imperativen Programmierung. 1. Erläutern Sie die Aufgaben von Datentypen in der imperativen Programmierung. Beschreiben Sie ferner je einen frei gewählten Datentyp aus der Gruppe der skalaren und einen aus der Gruppe der strukturierten

Mehr

Compiler für f r Eingebettete Systeme (CfES)

Compiler für f r Eingebettete Systeme (CfES) Compiler für f r Eingebettete Systeme (CfES) Sommersemester 2009 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung für Eingebettete Systeme Kapitel 9 Ausblick

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

Grundlagen der Programmierung 2 (Comp-A)

Grundlagen der Programmierung 2 (Comp-A) Grundlagen der Programmierung 2 (Comp-A) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 23. Mai 2007 Compiler; Übersetzungprogramme Ein Übersetzer (Compiler) ist ein Programm,

Mehr

Objektorientierte und Funktionale Programmierung SS 2014

Objektorientierte und Funktionale Programmierung SS 2014 Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten

Mehr

Impact of economics on compiler optimization

Impact of economics on compiler optimization Impact of economics on compiler optimization Seminar Zwischen Sprachen und Codegenerierung SS 2005 Dimitar Dimitrov Betreuer: Rubino Geiß Kurzbeschreibung Arch D. Robinson, einer der Entwickler der KAI

Mehr

Grundlagen der Programmierung 3 A

Grundlagen der Programmierung 3 A Grundlagen der Programmierung 3 A Compiler A: Phasen Lexikalische Analyse; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2018 Compiler; Übersetzungsprogramme Ein Übersetzer (Compiler) ist ein

Mehr

Semantik von Programmiersprachen

Semantik von Programmiersprachen Semantik von Programmiersprachen 1. Einführung Werner Struckmann Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Sommersemester 2017 1. Einführung 1.1 Sprachen und

Mehr

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

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

Mehr

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

Ü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

Mehr

Guile Die Erweiterungssprache des GNU-Projekts

Guile Die Erweiterungssprache des GNU-Projekts Guile Die Erweiterungssprache des GNU-Projekts Matthias Köppe Otto-von-Guericke-Universität Magdeburg Magdeburger Linux User Group e. V. 19. Mai 2001 Überblick Guile als Erweiterungssprache Guile als Scheme-Implementierung

Mehr

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe

Mehr

2. Programmierung in C

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)

Mehr

Semantik von Programmiersprachen

Semantik von Programmiersprachen Semantik von Programmiersprachen Prof. Dr. Manfred Schmidt-Schauß SS 2013 Stand der Folien: 15. April 2013 Semantik von Programmen verschiedene Semantiken: operationale Semantik (Spezifikation eines Interpreters)

Mehr

Struktur und Implementierung von Programmiersprachen II. (Compilerbau) WS 2006/2007

Struktur und Implementierung von Programmiersprachen II. (Compilerbau) WS 2006/2007 Struktur und Implementierung von Programmiersprachen II (Compilerbau) WS 2006/2007 Vorlesung und Übung: Dr. Christoph Herrmann http://infosun.fmi.uni passau.de /cl/lehre/sips2 ws0607/index.html 1/1 Einordnung

Mehr

Impact of Economics on Compiler Optimization

Impact of Economics on Compiler Optimization Impact of Economics on Compiler Optimization Arch D. Robinson Kai Software Seminar Zwischensprachen & Codegenerierung IPD Goos Dimitar Dimitrov Betreuer Rubino Geiß 0 Überblick Überblick Problem Übersetzer

Mehr

2. Programmierung in C

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)

Mehr

Struktur und Implementierung von Programmiersprachen I. (Compilerbau) SS 2006

Struktur und Implementierung von Programmiersprachen I. (Compilerbau) SS 2006 Struktur und Implementierung von Programmiersprachen I (Compilerbau) SS 2006 http://infosun.fmi.uni-passau.de /cl/passau/sips2006/index.html Vorlesung und Übung: Dr. Christoph Herrmann 1/1 Einordnung im

Mehr

Grundlagen der Programmierung 3 A

Grundlagen der Programmierung 3 A Grundlagen der Programmierung 3 A Compiler A: Phasen; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Compiler; Übersetzungsprogramme Ein Übersetzer (Compiler) ist ein Programm, das ein Wort

Mehr

Fach: Softwareentwicklung für technische Systeme (SOFT) Berufsbezogener Lernbereich Schwerpunkt: Informations- und Automatisierungstechnik

Fach: Softwareentwicklung für technische Systeme (SOFT) Berufsbezogener Lernbereich Schwerpunkt: Informations- und Automatisierungstechnik Fach: Softwareentwicklung für technische Systeme (SOFT) Berufsbezogener Lernbereich Schwerpunkt: Informations- und Automatisierungstechnik Aufgaben und Ziele des Faches: Für den zukünftigen Techniker ist

Mehr

II.1.1. Erste Schritte - 1 -

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.

Mehr

Generierung von Steuerungsprogrammcode für SPS und μc aus Petri-Netz-Modellen

Generierung von Steuerungsprogrammcode für SPS und μc aus Petri-Netz-Modellen Fachhochschule Köln Cologne University of Applied Sciences Fakultät für Informations-, Medien- und Elektrotechnik Institut für Automatisierungstechnik Labor für Informations- und Automatisierungstechnik

Mehr

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen

Mehr

10. Programmierungs-Phase: Objektorientierung Software Engineering

10. Programmierungs-Phase: Objektorientierung Software Engineering 10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005 Einordnung in den Kontext

Mehr

Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage

Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman it informatik Compiler Prinzipien, Techniken und Werkzeuge 2., aktualisierte Auflage Inhaltsverzeichnis Vorwort... XXIX Zur deutschen Ausgabe...XXXIII

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

Grammatiken und ANTLR

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

Mehr

Diplomarbeit Antrittsvortrag

Diplomarbeit Antrittsvortrag Diplomarbeit Antrittsvortrag Christian Müller Run-time byte code compilation, interpretation and optimization for Alice Betreuer: Guido Tack Verantwortlicher Prof.: Gert Smolka Die nächsten 15 Minuten...

Mehr

1.3 Geschichte der Programmiersprachen

1.3 Geschichte der Programmiersprachen 50er Jahre erste Definition höherer Programmiersprachen Effizienz maßgebliches Designziel FORTRAN (Backus) als Sprache für wissenschaftliches Rechnen (komplexe Berechnungen, einfachen Daten), Arrays, Schleifen,

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2009 5. April 2009 Vorteile bei der Verwendung höherer Programmiersprachen Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation

Mehr

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

Praktische Informatik I

Praktische Informatik I Praktische Informatik I WS 2005/2005 Prof. Dr. Wolfgang Effelsberg Lehrstuhl für Praktische Informatik IV Universität Mannheim 1. Einführung 1-1 Inhaltsverzeichnis (1) 1. Einführung 1.1 Was ist Informatik?

Mehr

Objekt-Orientierte Programmiersprachen

Objekt-Orientierte Programmiersprachen Objekt-Orientierte Programmiersprachen Martin Gasbichler Holger Gast 18. Oktober 2005 Wir sind... Martin Gasbichler 1974 1994 2000 2004 Aktuell: Diese Vorlesung Diss

Mehr

Vorsemesterkurs Informatik

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

Mehr

Computergrundlagen Turingmaschinen und Programmierung

Computergrundlagen Turingmaschinen und Programmierung Computergrundlagen Turingmaschinen und Programmierung Jens Smiatek und Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2016/17 Was ist ein Computer? Ein Computer (Rechner oder

Mehr

Grundlagen des Software Engineering

Grundlagen des Software Engineering Gustav Pomberger und Günther Blaschek Grundlagen des Software Engineering Prototyping und objektorientierte Software-Entwicklung Mit 101 Abbildungen Technische Universität Darmstadt FACHBEREICH INFORMATIK

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Programmierparadigmen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Programmiersprachen-Paradigmen Eine Programmiersprache

Mehr