Beuth Hochschule Einführende Gentle-Programme WS12/13, S. 1

Größe: px
Ab Seite anzeigen:

Download "Beuth Hochschule Einführende Gentle-Programme WS12/13, S. 1"

Transkript

1 Beuth Hochschule Einführende Gentle-Programme WS12/13, S. 1 Einführende Gentle-Programme Dieses Papier soll die Syntax und Semantik (die Schreibweise und Bedeutung) von einfachen Gentle Programmen anhand von Beispielen erläutern. Beispiel-01: Das Hallo-Welt-Programm in Gentle 1 root 2 "Hallo Welt!\n" Das root-prädikat eines Gentle-Programms ist nah verwandt mit der main-funktion eines C/C++-Programms und der main-methode eines Java- oder C#-Programms. Beispiel-02: Ein Parser für die GreetingLanguage (Datei prog1a.g) 1 phrase Greeting 2 rule Greeting: "Good" TimeOfDay "!" 3 rule Greeting: "Hello" Name "!" 4 5 phrase TimeOfDay 6 rule TimeOfDay: "morning" 7 rule TimeOfDay: "evening" 8 rule TimeOfDay: "night" 9 10 token Name 11 <<<[A-Z][a-z]+>>> root 14 Greeting 15 "No parse error found!\n" Die phrase-prädikate (Greeting und TimeOfDay) entsprechen den Zwischensymbolen einer Grammatik G und Greeting ist das Startsymbol von G. Die string-literale "Good", "!", "Hello" etc. entsprechen Endsymbolen von G. Das Token-Prädikat Name ist ebenfalls ein Endsymbol von G. Es repräsentiert eine beliebige Zeichenkette, die aus einem Großbuchstaben gefolgt von einem oder mehreren Kleinbuchstaben besteht, z.b. John oder Xy. Im root-prädikat wird das phrase-prädikat Greeting aufgerufen. Dieser Aufruf befiehlt dem Ausführer etwa Folgendes: "Versuche, einen aus der Grammatik G ableitbaren Satz einzulesen. Beende das Programm sofort, wenn du in der Eingabe einen syntaktischen Fehler entdeckst". Die Meldung "No parse error found\n" wird also nur dann ausgegeben, wenn der Ausführer in der Eingabe keine syntaktischen Fehler entdeckt. Mit dem Programm prog1a.g kann man somit prüfen, ob ein bestimmter Satz zur GreetingLanguage gehört (wie z.b. "Good night!" und "Hello Xy!") oder nicht (wie z.b. "Good Morning" und "Hello Karl-Heinz!"). Regel-01: Ein string-literal (z.b. "ABC") in einem phrase-prädikat beschreibt eine erwartete Eingabe (ein Lexem in einem Quellprogramm). Ein string-literal in einem anderen Prädikat (z.b. im root-prädikat) wird ausgegeben.

2 S. 2, WS12/13 Einführende Gentle-Programme Beuth-Hochschule Beispiel-03: Ein Parser, der konkrete Syntax in abstrakte Syntax übersetzt (Datei prog1b.g) 1 type Greeting_AS 2 grt(part1:string, Part2:string) 3 4 phrase Greeting_CS(-> Greeting_AS) 5 rule Greeting_CS(-> grt("go", S)): "Good" TimeOfDay_CS(-> S) "!" 6 rule Greeting_CS(-> grt("he", S)): "Hello" Name_CS(-> S) "!" 7 8 phrase TimeOfDay_CS(-> string) 9 rule TimeOfDay_CS(-> "mo"): "morning" 10 rule TimeOfDay_CS(-> "ev"): "evening" 11 rule TimeOfDay_CS(-> "ni"): "night" token Name_CS(-> string) 14 <<<[A-Z][a-z]+>>> root 17 Greeting_CS(-> G) 18 print G Dieses Beispiel enthält eine Kopie des vorigen Beispiels. An die Namen der Prädikate Greeting, TimeOfDay und Name wurde hier allerdings jeweils ein _CS angehängt um zu betonen, dass sie zusammen die konkrete Syntax (Conrete Syntax) der Quellsprache beschreiben. Außerdem wurden die umbenannten Prädikate mit je einem out-parameter (rechts vom Pfeil ->) versehen. Diese Parameter bewirken zusammen Folgendes: Während der Ausführer versucht, einen Satz (formuliert in der konkreten Syntax der GreetingLanguage) stückchenweise einzulesen, wird aus diesem Satz stückchenweise eine entsprechende Darstellung in abstrakter Syntax (ein Wert des Typs Greeting_AS) erzeugt. Zum Typ Greeting_AS gehören alle Werte der Form grt(s1, S2), wobei S1 und S2 für beliebige string-werte stehen. Die folgende Tabelle zeigt Beispiele dafür, welche konkrete Syntax (welcher Satz der GreetingLanguage) welcher abstrakten Syntax (welchem Wert des Typs Greeting_AS) entspricht: Sätze der GreetingLanguage (konkrete Syntax) Good morning! Good evening! Good night! Hello John! Hello Xy! Werte des Typs Greeting_AS (abstrakte Syntax) grt("go", "mo") grt("go", "ev") grt("go", "ni") grt("he", "John") grt("he", "Xy") Regel-02: Ein token-prädikat hat automatisch (0 in-parameter und) genau einen out-parameter vom Typ string und liefert die im Quellprogramm gefundene Zeichenkette (das Lexem) als Wert. Regel-03: Ein phrase-prädikat darf höchstens mit (0 in-parametern und) einem out-parameter vereinbart werden. Dieser out-parameter darf aber zu einem beliebigen Typ gehören. In obigem Programm ist der out-parameter des phrase-prädikats TimeOfDay_CS vom Typ string, und der von Greeting_CS ist vom Typ Greeting_AS. Mit dem Gentle-Befehl print kann man Werte aller Typen ausgeben. Der print-befehl ist aber nur für Testausgaben gedacht (und sein Parameter darf/muss nicht in Klammern eingefasst werden). Anmerkung: Die meisten Werte des Typs Greeting_CS werden im obigen Programm nie benutzt, z.b. die Werte grt("pickelhering", "Fensterglas") und grt("", "") etc.

3 Beuth Hochschule Einführende Gentle-Programme WS12/13, S. 3 Beispiel-04: Ein Compiler, der die englischen Sätze der GreetingLanguage ins Spanische übersetzt (Datei prog1c): Alles wie im vorigen Beispiel (mit Ausnahme des root-prädikats) proc outes(greeting_as) 6 rule outes(grt("go", "mo")): "Buenas dias!\n" 7 rule outes(grt("go", "ev")): "Buenas noches!\n" 8 rule outes(grt("go", "ni")): "Buenas noches!\n" 9 rule outes(grt("he", NAME)): "Hola " $NAME "!\n" root 12 Greeting_CS(-> G) 13 outes(g) Schon für das vorige Beispiel galt: Die phrase- und token-prädikate lesen einen Satz in der konkreten Syntax der GreetingLanguage ein und erzeugen dabei einen entsprechenden Wert der abstrakten Syntax (einen Wert des Typs Greeting_AS). Das neue proc-prädikat outes übersetzt einen Wert der abstrakten Syntax ins Spanische und gibt das Ergebnis (z.b. "Buenas noches!" oder "Hola Xy!") aus. Jede der ersten drei Regeln übersetzt nur einen bestimmten Wert. Die vierte und letzte Regel übersetzt viele Werte (z.b. grt("he", "John"), grt("he", "Xy"),... etc.) Der Befehl $NAME (in Zeile 9) bewirkt, dass der Wert der string-variablen NAME ausgegeben wird. Den $-Befehl darf man nur auf Ausdrücke der Typen int und string anwenden. Regel-04: proc-prädikate dürfen mit beliebig vielen in-parametern und beliebieg vielen out-parametern vereinbart werden. Regel-05: proc-prädikate sollten so programmiert werden, dass jeder Aufruf (egal mit welchen Parametern) gelingt. Sollte ein Aufruf nicht gelingen, dann gilt das als schwerwiegender Fehler des Gentle- Programmierers und die betreffende Programmausführung wird sofort abgebrochen. Hinweis: Aufrufe von condition-prädikaten dürfen dagegen gelingen oder misslingen. Regel-06: Bei allen Prädikaten mit out-parametern muss vor den out-parametern ein Pfeil -> notiert werden. Im Beispiel-04 hat das Prädikat outes einen in-parameter und 0 out-parameter. Der in-parameter ist vom Typ Greeting_AS.

4 S. 4, WS12/13 Einführende Gentle-Programme Beuth-Hochschule Die obige Vereinbarung des Prädikats outes besteht aus 4 Regeln, die viele Zeichen gemeinsam haben (z.b. fangen alle mit rule outes(grt( an). Die Wirkung dieser 4 Regeln kann man auch mit einer einzigen Regel und ein paar Alternativen-Anweisungen (alternatives statements) erreichen, wie das folgende Beispiel zeigt: Beispiel-05: Eine andere Formulierung des Prädikats outes: 1 proc outes(greeting_as) 2 rule outes(grt(p1, P2)): 3 { 4 Equal(P1, "go") // Wenn P1 = "go" ist, dann 5 "Buenas " // "Buenas ". Und dann: 6 { // 7 Equal(P2, "mo") "dias!\n" // Wenn P2 = "mo" dann "dias\n" 8 // sonst 9 Equal(P2, "ev") "noches!\n" // Wenn P2 = "ev" dann "noches\n" 10 // sonst 11 Equal(P2, "ni") "noches!\n" // Wenn P2 = "ev" dann "noches\n" 12 } // 13 // sonst 14 "Hola " $P2 "!\n" // "Hola " und P2 etc. 15 } In Zeile 3 bis 15 (grau, hell- und dunkel) steht eine Alternativen-Anweisung mit 2 Alternativen, die durch den sonst-strich in Zeile 13 voneinander getrennt werden. In Zeile 6 bis 12 (dunkelgrau) steht eine Alternativen-Anweisung mit 3 Alternativen (die durch zwei sonst-striche in Zeile 8 und 10 voneinander getrennt werden). Equal ist ein in Gentle vordefiniertes Prädikat. Wenn der Aufruf Equal(P1, "go") in Zeile 4 gelingt, werden die Zeilen 5 bis 12 ausgeführt, sonst wird die Zeile 14 ausgeführt. In den Zeilen 7, 9 und 11 stehen ähnliche Equal-Aufrufe, jeweils mit einem string-literal (d.h. einem Ausgabebefehl) dahinter. Aufgabe-01: Schreiben Sie ein proc-prädikat namens outde, welches einen Greeting_AS-Wert ins Deutsche übersetzt. Definieren Sie das Prädikat mit 4 Regeln (entsprechend dem Prädikat outes im Beispiel-04). Aufgabe-02: Schreiben Sie ein proc-prädikat namens outde, welches einen Greeting_AS-Wert ins Deutsche übersetzt. Definieren Sie das Prädikat mit einer einzigen Regel und Alternativen-Anweisungen (ensprechend dem Prädikat outes im Beispiel-05). Aufgabe-03: Sei einmal angenommen, dass das token-prädikat NAME (aus irgendwelchen Gründen) nur string-werte bis zu einer Länge von 10 Zeichen liefert. Ungefähr wie viele verschiedene Werte des Typs Greeting_AS werden dann vom Prädikat Greeting_CS (als abstrakte Syntax für einen entsprechenden Eingabe-Satz) benutzt? Ihre Lösung braucht nicht genau zu sein, sollte aber weniger als 10 % von der tatsächlichen Anzahl abweichen.

5 Beuth Hochschule Einführende Gentle-Programme WS12/13, S. 5 Lösung-01: Schreiben Sie ein proc-prädikat namens outde, welches einen Greeting_AS-Wert ins Deutsche übersetzt. Definieren Sie das Prädikat mit 4 Regeln (ensprechend dem Prädikat outes im Beispiel-04). 1 proc outde(greeting_as) 2 rule outde(grt("go", "mo")): "Guten Morgen!\n" 3 rule outde(grt("go", "ev")): "Guten Abend!\n" 4 rule outde(grt("go", "ni")): "Gute Nacht!\n" 5 rule outde(grt("he", NAME)): "Hallo " $NAME "!\n" Lösung-02: Schreiben Sie ein proc-prädikat namens outde, welches einen Greeting_AS-Wert ins Deutsche übersetzt. Definieren Sie das Prädikat mit einer einzigen Regel und Alternativen-Anweisungen (ensprechend dem Prädikat outes im Beispiel-05). 1 proc outde(greeting_as) 2 rule outde(grt(p1, P2)): 3 { 4 Equal(P1, "go") 5 "Guten " 6 { 7 Equal(P2, "mo") "Morgen!\n" 8 9 Equal(P2, "ev") "Abend!\n" Equal(P2, "ni") "Nacht!\n" 12 } "Hallo " $P2 "!\n" 15 } Lösung-03: Sei einmal angenommen, dass das token-prädikat NAME (aus irgendwelchen Gründen) nur string-werte bis zu einer Länge von 10 Zeichen liefert. Ungefähr wie viele verschiedene Werte des Typs Greeting_AS werden dann vom Prädikat Greeting_CS (als abstrakte Syntax für einen entsprechenden Eingabe-Satz) benutzt? Ihre Lösung braucht nicht genau zu sein, sollte aber weniger als 10 % von der tatsächlichen Anzahl abweichen. Von den benutzten Werten des Typs Greeting_AS haben 3 die Form grt("go", T), nämlich die Werte grt("go", "mo"), grt("go", "ev") und grt("go", "ni"). Alle anderen benutzten Werte haben die Form grt("he", N), wobei N eine Name ist, der vom token-prädikat NAME geliefert wurde. Wie viele solche Namen gibt es? Da es für jedes Zeichen eines Namens 26 Möglichkeiten gibt (ob es sich dabei um 26 große oder un 26 kleine Buchstaben handelt spielt hier keine Rolle) gibt es genau 26 n Namen der Länge n. Bezeichne ALn die Anzahl der Namen der Länge n. Wir suchen die Anzahl der Namen, die mindestens 2 und höchstens 10 Zeichen lang sind, also die Anzahl AL2 + AL AL9 + AL10. Man kann sich klarmachen, dass AL9 weniger als 1/25 von AL10 ist (d.h. weniger als 4 % von AL10), und dass die Summe AL2 + AL AL9 weniger als 5 % von AL10 ausmacht. Also können wir alle Summanden ausser AL10 vernachlässigen (und die oben erwähnten 3 Werte erst recht). AL10 = ist etwa gleich oder 140 Billionen. Das ist die ungefähre Anzahl aller Namen mit einer Länge bis zu 10 Zeichen und auch die ungefähre Anzahl der verschiedenen Werte, die G nach einem Aufruf Greeting_CS(-> G) haben kann. Läßt man auch längere Namen zu, z.b. bis zu einer Länge von 100 Zeichen, ist die Anzahl natürlich noch sehr viel, wirklich sehr viel größer.

Beuth Hochschule Terme, Ausdrücke und Muster in Gentle WS13/14, S. 1

Beuth Hochschule Terme, Ausdrücke und Muster in Gentle WS13/14, S. 1 Beuth Hochschule Terme, Ausdrücke und Muster in Gentle WS13/14, S. 1 Terme, Ausdrücke und Muster in Gentle Zwei Typen (als Grundlage für Beispiele) 1 type FARBE c() m() y() 2 type BAUM 3 leer() 4 b(vordergrund:farbe,

Mehr

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode

Mehr

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

Mehr

Inhalt Kapitel 11: Formale Syntax und Semantik

Inhalt Kapitel 11: Formale Syntax und Semantik Inhalt Kapitel 11: Formale Syntax und Semantik 1 Abstrakte und konkrete Syntax 2 Lexikalische Analyse 3 Formale Sprachen, Grammatiken, BNF 4 Syntaxanalyse konkret 266 Abstrakte und konkrete Syntax Abstrakte

Mehr

Von der Programmiersprache WHILE zum ersten Einstieg in Java

Von der Programmiersprache WHILE zum ersten Einstieg in Java Von der Programmiersprache WHILE zum ersten Einstieg in Java Die Programmiersprache WHILE bildet den Kern jeder imperativen Programmiersprache. Man geht davon aus, dass die Ein- Ausgabe primitiv organisiert

Mehr

2.2 Syntax, Semantik und Simulation

2.2 Syntax, Semantik und Simulation 2.2 Syntax, Semantik und Simulation Ein Java Programm ist eine Folge von Buchstaben. Nicht jede Folge von Buchstaben ist ein korrektes Java Programm! Wie kann man alle korrekten Java Programme beschreiben?

Mehr

yacc - eine Einführung

yacc - eine Einführung yacc - eine Einführung Axel Kohnert 18th May 2005 Abstract yacc ist ein Unixprogramm, welches die Erstellung einer Programmiersprache unterstützt. Der Benutzer gibt die definierende Grammatik an, und das

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Java: Eine kurze Einführung an Beispielen

Java: Eine kurze Einführung an Beispielen Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse

Mehr

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

Kapitel 5: Syntaxdiagramme und Grammatikregeln

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

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.

Mehr

lex - Eine Einführung

lex - Eine Einführung lex - Eine Einführung Axel Kohnert 9th May 2005 Abstract lex ist ein Unixprogramm, welches die Erstellung eines C-programms für die lexikalische Analyse unterstützt. Dazu kann man Aktionen definieren,

Mehr

Abstrakte Syntax von Prolog (1)

Abstrakte Syntax von Prolog (1) 3. Prolog Syntax 3-1 Abstrakte Syntax von Prolog (1) Abstrakte und konkrete Syntax: Abstrakte Syntax: Nur Datenstrukturen, die der Parser anlegt (z.b. Operatorbaum). Konkrete Syntax: Zeichenketten, die

Mehr

Einführung in die Programmiertechnik

Einführung in die Programmiertechnik Einführung in die Programmiertechnik Formale Beschreibung von Programmiersprachen Lexikalische Regeln Definition von Wörtern (Lexem, Token) Gruppierung von Zeichen Lexikalische Kategorien: Klassen ähnlicher

Mehr

Lex und Yacc Lt. Worf, scannen Sie das Schiff! 300dpi, Sir?

Lex und Yacc Lt. Worf, scannen Sie das Schiff! 300dpi, Sir? Lex und Yacc Lt. Worf, scannen Sie das Schiff! 300dpi, Sir? Hagen Paul Pfeifer hagen@jauu.net 29. April 2004 Lex und Yacc Überblick Einführung Lex und Yacc 1 Überblick Einführung Beispiele Lex und Yacc

Mehr

Kapitel 1: Informationsverarbeitung durch Programme

Kapitel 1: Informationsverarbeitung durch Programme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Kapitel 1: Informationsverarbeitung

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

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Es können ganze Programmteile aufgenommen werden. Mithilfe von Funktionen kann man denselben

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4 Lutz Oettershagen Jurij Kuzmic Dortmund, den 8. November 2018 Übung zur Vorlesung EidP (WS 2018/19) Blatt 4 Block gelb Es können 4 Punkte erreicht werden. Abgabedatum: 15. November 2018, 2:59 Uhr Hinweise

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Methoden / Funktionen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick 2 Zweck von Methoden 3 Methodendefinition

Mehr

Tag 2 Repetitorium Informatik (Java)

Tag 2 Repetitorium Informatik (Java) Tag 2 Repetitorium Informatik (Java) Dozent: Daniela Novac Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Zeichen und

Mehr

Perl. Unser erstes Programm. Grundaufbau eines Programms

Perl. Unser erstes Programm. Grundaufbau eines Programms Programmierkurs für absolute Anfänger erste Perl-Programme Caren Brinckmann Sommersemester 2005 http://www.coli.uni-saarland.de/~cabr/teaching.php Perl Entwickler: Larry Wall backronyms: Practical Extraction

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe

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

Mehr

Peter Prinz. Das Übungsbuch. CTestfragen und Aufgaben mit Lösungen

Peter Prinz. Das Übungsbuch. CTestfragen und Aufgaben mit Lösungen Peter Prinz Das Übungsbuch CTestfragen und Aufgaben mit Lösungen Grundlagen Dieses Kapitel enthält grundlegende Fragen und Aufgaben zur Erstellung von C-Programmen. Hierzu gehören folgende Themen: Header-Dateien

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 17 Einstieg in die Informatik mit Java String Tokenizer Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick Tokenizer 2 StringTokenizer 3 Verwendung von String.split

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang WS 07/08

Mehr

Übungsblatt 1. Java Vorkurs (WS 2017)

Übungsblatt 1. Java Vorkurs (WS 2017) Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die

Mehr

Ein Fragment von Pascal

Ein Fragment von Pascal Ein Fragment von Pascal Wir beschreiben einen (allerdings sehr kleinen) Ausschnitt von Pascal durch eine kontextfreie Grammatik. Wir benutzen das Alphabet Σ = {a,..., z, ;, :=, begin, end, while, do} und

Mehr

Beuth Hochschule Zahlensysteme WS15/16, S. 1

Beuth Hochschule Zahlensysteme WS15/16, S. 1 Beuth Hochschule Zahlensysteme WS15/16, S. 1 Zahlensysteme Eine natürliche Zahl (wie z.b. drei oder siebzehn etc.) kann man auf verschiedene Weisen darstellen, etwa als römische Zahl (z.b. XVII) oder durch

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

Hallo Haskell. Funktionale Programmierung. Prof. Dr. Oliver Braun Letzte Änderung: :06. Hallo Haskell 1/23

Hallo Haskell. Funktionale Programmierung. Prof. Dr. Oliver Braun Letzte Änderung: :06. Hallo Haskell 1/23 Hallo Haskell Funktionale Programmierung Prof. Dr. Oliver Braun Letzte Änderung: 15.10.2018 07:06 Hallo Haskell 1/23 Glasgow Haskell Compiler (GHC) der Haskell-Compiler ist der GHC Sie installieren ihn

Mehr

TB5-CPB, SS11 Seite 1 Nachklausur, geschrieben am Fr

TB5-CPB, SS11 Seite 1 Nachklausur, geschrieben am Fr TB5-CPB, SS11 Seite 1 Nachklausur, geschrieben am Fr 23.09.2011 Vorname Nachname Matrikel-Nr. Diese Klausur besteht aus 4 Aufgaben. Schreiben Sie jede Lösung auf die Vorderseite eines neuen Blattes (und

Mehr

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Hallo Haskell. (Funktionale Programmierung) Prof. Dr. Oliver Braun. Letzte Änderung: :08. Hallo Haskell 1/23

Hallo Haskell. (Funktionale Programmierung) Prof. Dr. Oliver Braun. Letzte Änderung: :08. Hallo Haskell 1/23 Hallo Haskell (Funktionale Programmierung) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 21:08 Hallo Haskell 1/23 Glasgow Haskell Compiler (GHC) der Haskell-Compiler ist der GHC Sie installieren ihn

Mehr

Aufgabenblatt 3. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Aufgabenblatt 3. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt: Aufgabenblatt 3 Kompetenzstufe 1 Allgemeine Informationen zum Aufgabenblatt: Die Abgabe erfolgt in TUWEL. Bitte laden Sie Ihr IntelliJ-Projekt bis spätestens Freitag, 24.11.2017 13:00 Uhr in TUWEL hoch.

Mehr

Einführung in die Informatik. Programming Languages

Einführung in die Informatik. Programming Languages Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

Kapitel 2. Methoden zur Beschreibung von Syntax

Kapitel 2. Methoden zur Beschreibung von Syntax 1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von

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

Ausdrucksbäume in verschiedenen Darstellungen

Ausdrucksbäume in verschiedenen Darstellungen Ausdrucksbäume in verschiedenen Darstellungen SWE-42 Infix mit notwendigen Klammern: (a + b) / (c - d) Infix vollständig geklammert: (((a) + (b)) / ((c) - (d))) Postfix a b + c d - / Präfix / + a b - c

Mehr

1 EINFÜHRUNG PROGRAMMAUFBAU IN C++

1 EINFÜHRUNG PROGRAMMAUFBAU IN C++ 1 EINFÜHRUNG PROGRAMMAUFBAU IN C++ Leitidee: Genaueres Verständnis der C++-Syntax an Hand von Syntaxdiagrammen Lexikalische Struktur von C++ Vereinbarungen: Definition / Deklaration Beispiele für Variablen-

Mehr

Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte

Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte while-statement erneut ausgeführt. Ist die Bedingung

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

Abschnitt 17: Beispiel: Die Klasse String (Teil 2), das Interface Comparable<T>

Abschnitt 17: Beispiel: Die Klasse String (Teil 2), das Interface Comparable<T> Abschnitt 17: Beispiel: Die Klasse String (Teil 2), das Interface Comparable 17. Beispiel: Die Klasse String (Teil 2), das Interface Comparable 17.1 Vergleich von Zeichenketten 17.2 Das Interface

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf

Mehr

Diana Lange. Generative Gestaltung Grundlagen von Processing

Diana Lange. Generative Gestaltung Grundlagen von Processing Diana Lange Generative Gestaltung Grundlagen von Processing Bereichsaufbau leitet einen Bereich ein Name des Bereichs (z.b. setup, draw, keypressed,...) (genaue Erklärung kommt später) kommt später, momentan

Mehr

Beuth Hochschule Zahlensysteme SS16, S. 1

Beuth Hochschule Zahlensysteme SS16, S. 1 Beuth Hochschule Zahlensysteme SS16, S. 1 Zahlensysteme Eine natürliche Zahl (wie z.b. drei oder siebzehn etc.) kann man auf verschiedene Weisen darstellen, etwa als römische Zahl (z.b. XVII) oder durch

Mehr

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:

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

Prozeduren in Java. streckeimperativ zur Verfügung. Grundlagen der funktionalen und imperativen Programmierung

Prozeduren in Java. streckeimperativ zur Verfügung. Grundlagen der funktionalen und imperativen Programmierung Die Erweiterung des Modulbegriffs um Prozeduren ermöglicht uns nun natürlich auch, diese Prozeduren in anderen Algorithmen zu verwenden Das Modul PhysikImperativ stellt z.b. die Methode (Prozedur streckeimperativ

Mehr

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Was liefert

Mehr

Grundlagen der Programmentwicklung

Grundlagen der Programmentwicklung Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Über C++ Über C++ C++ ist eine in der Industrie

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 17 Einstieg in die Informatik mit Java Methoden und Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick 2 Felder als Parameter bei Methoden 3 Feld

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß aus Molière, Les Femmes Savantes (1672), 2. kt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing Ziele Zwei Standards zur Definition der Syntax

Mehr

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp

Mehr

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2 Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme Stefan Brass: OOP (Java), 3. 1/31 Objektorientierte Programmierung Kapitel 3: Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

Lösungshinweise/-vorschläge zum Übungsblatt 3: Software-Entwicklung 1 (WS 2017/18)

Lösungshinweise/-vorschläge zum Übungsblatt 3: Software-Entwicklung 1 (WS 2017/18) Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 3: Software-Entwicklung 1 (WS 2017/18)

Mehr

Grundlagen der Informatik Vorlesungsskript

Grundlagen der Informatik Vorlesungsskript Grundlagen der Informatik Vorlesungsskript Prof. Dr. T. Gervens, Prof. Dr.-Ing. B. Lang, Prof. Dr. F.M. Thiesing, Prof. Dr.-Ing. C. Westerkamp 16 AUTOMATISCHES ÜBERSETZEN VON PROGRAMMEN MIT MAKE... 2 16.1

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM für Java-Programmierer Der Präprozessor Prof. Dr. Wolfgang Schramm FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Präprozessor Ist dem Compiler vorgeschaltet ( Prä -). Spezielle Anweisungen

Mehr

Einführung in die Computerlinguistik

Einführung in die Computerlinguistik Einführung in die Computerlinguistik Übung 2 Laura Kallmeyer Sommersemester 204, Heinrich-Heine-Universität Düsseldorf Offizielle Python Seite, auf der man jede Menge Dokumentation findet: http://www.python.org/

Mehr

Systemverwaltung mittels Skripts

Systemverwaltung mittels Skripts Systemverwaltung mittels Skripts Sept. 2003 M. Rigling 1 / 1 Version 0.2 Inhaltsverzeichnis: Systemverwaltung mittels Skripts...1 Inhaltsverzeichnis:...2 1. Skriptsprachen...3 2. Zur Erstellung von Skripts...3

Mehr

1 EINFÜHRUNG PROGRAMMIERSPRACHEN

1 EINFÜHRUNG PROGRAMMIERSPRACHEN 1 EINFÜHRUNG PROGRAMMIERSPRACHEN Leitidee: Von der Maschinensprache zur höheren Programmiersprache und zurück Von-Neumann-Maschine als abstraktes Computermodell Maschinensprache des hypothetischen Rechners

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Strings. Daten aus Dateien einlesen und in Dateien speichern.

Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings Ein String ist eine Zeichenkette, welche von MATLAB nicht als Programmcode interpretiert wird. Der Ausdruck 'a' ist ein String bestehend

Mehr

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich

Mehr

Programme erstellen in Java

Programme erstellen in Java Programmieren mit Java Modul 0 Programme erstellen in Java Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Schreiben von Computerprogrammen 3 2.1 Computerprogramme bestehen aus Daten und Instruktionen.......

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

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

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage HSR Rapperswil 2001 Markus Rigling Programmieren: Exceptions 1 1. Auflage Inhaltsverzeichnis: 1. Was sind Exceptions?... 3 2. Struktur des Exception Handling... 3 3. Try-Block... 4 4. Exception Handler

Mehr

Beuth Hochschule Mehrstufige und mehrdimensionale Reihungen WS17/18, S. 1

Beuth Hochschule Mehrstufige und mehrdimensionale Reihungen WS17/18, S. 1 Beuth Hochschule Mehrstufige und mehrdimensionale Reihungen WS17/18, S. 1 Mehrstufige und mehrdimensionale Reihungen In Java gibt es nur mehrstufige Reihungen, die auch als Reihungen von Reihungen bezeichnet

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

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

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Was sind Operatoren Ein Operator ist eine in die Programmiersprache eingebaute Funktion, die

Mehr

Java Übung. Übung Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Werner Gaulke.

Java Übung. Übung Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Werner Gaulke. Java Übung Übung 5 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 9. Mai 2006 (UniDUE) 9. Mai 2006 1 / 20 Beispiel Anforderungen: Klasse Mensch mit Attributen: Name, Alter, Laune, Geschlecht.

Mehr

Einführung in die Informatik. Programming Languages

Einführung in die Informatik. Programming Languages Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Cyrill Stachniss 1/15 Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens

Mehr

Proseminar. C-Programmierung Grundlagen und Konzepte. Der Präprozessor. von: Svenja Neef

Proseminar. C-Programmierung Grundlagen und Konzepte. Der Präprozessor. von: Svenja Neef Proseminar C-Programmierung Grundlagen und Konzepte Der Präprozessor von: Svenja Neef Inhaltsverzeichnis 1Der C-Präprozessor...2 1.1Was ist der C-Präprozessor...2 1.2Präprozessor-Befehle...2 1.2.1Zusammenführen

Mehr

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2016/17 Aufgabenblatt 2 31.10.2016

Mehr

Alphabet, formale Sprache

Alphabet, formale Sprache n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l

Mehr

Projekt 3 Variablen und Operatoren

Projekt 3 Variablen und Operatoren Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.

Mehr

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben PK-Einstufungstest 34 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 4 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig

Mehr

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Aufgabe 1.1. Alle Aufgaben beziehen sich auf Java.

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Aufgabe 1.1. Alle Aufgaben beziehen sich auf Java. PK-Einstufungstest 59 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 14 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig

Mehr

Einführung in die Programmierung II. 5. Zeiger

Einführung in die Programmierung II. 5. Zeiger Einführung in die Programmierung II 5. Zeiger Thomas Huckle, Stefan Zimmer 16. 5. 2007-1- Bezüge als Objekte Bisher kennen wir als Bezüge (Lvalues) nur Variablennamen Jetzt kommt eine neue Sorte dazu,

Mehr

Interpreter - Gliederung

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

Mehr

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr