• Keine Ergebnisse gefunden

Karlsruher Institut f¨ur Technologie Lehrstuhl f¨ur Programmierparadigmen

N/A
N/A
Protected

Academic year: 2022

Aktie "Karlsruher Institut f¨ur Technologie Lehrstuhl f¨ur Programmierparadigmen"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Karlsruher Institut f¨ ur Technologie

Lehrstuhl f¨ ur Programmierparadigmen

Sprachtechnologie und Compiler, Sommersemester 2014 Dozent: Prof. Dr.-Ing. G. Snelting

Ubungsleiter: Sebastian Buchwald¨ Sebastian.Buchwald@kit.edu Ubungsblatt 1¨ Ausgabe: 24.4.2014 Besprechung: 28.4.2014

Aufgabe 1:Taschenrechner-Lexer

In dieser Aufgabe soll der Lexer f¨ur einen einfachen Taschenrechner entworfen und implementiert werden.

1.1Gleitkommazahlen

F¨ur die Gleitkommazahlen des Taschenrechners soll der regul¨are Ausdruck floatliteral aus der Vorlesung verwendet werden:

digit =0|1|2|3|4|5|6|7|8|9 suffix =ε|f|F|l|L

exponent =ε|((e|E)(+|−|ε) digit+)

floatliteral = ((digit .digit+)|(digit+.)) exponent suffix

Verwenden Sie das Schema der Vorlesung, um aus dem regul¨aren Ausdruck einen minimalen deterministischen endlichen Automaten zu konstruieren. Geben Sie geeignete Zwischenschritte an.

1.2Implementierung

Implementieren Sie einen Lexer in der Programmiersprache Ihrer Wahl. Dabei sollen folgende Tokentypen un- terst¨utzt werden:

• T PLUS: das Zeichen ’+’

• T MINUS: das Zeichen ’−’

• T STAR: das Zeichen ’∗’

• T SLASH: das Zeichen ’/’

• T LPAREN: das Zeichen ’(’

• T RPAREN: das Zeichen ’)’

• T NUMBER: Eine Gleitkommazahl, wie sie in der letzten Teilaufgabe spezifiziert wurde.

Zus¨atzlich soll beiT NUMBER-Tokens der Wert der Gleitkommazahl im Token vermerkt werden.

1

Referenzen

ÄHNLICHE DOKUMENTE

(5) Alle Strings aus a und b mit einer geraden Anzahl von a und einer ungeraden Anzahl von b (Denksport- aufgabe). Aufgabe 4: Regul¨ are

Enth¨ alt die Zahl einen Punkt, so darf der Buchstabe e oder E angeh¨ angt werden, gefolgt von einem optionalen + oder - und weiteren Ziffern.. Zus¨ atzlich soll bei T NUMBER Tokens

Wenn wir versuchen, eine LR- Parsertabelle daf¨ ur zu erstellen, ergeben sich Konflikte zwischen einigen Aktionen.. Welche

Wie kann man dies anhand der Parsertabelle begr¨

Ubersetzen Sie den Ausdruck ¨ this.x = 32 - this.foo()[2] in Java Bytecode, geben Sie auch einen passenden Konstantenpool an?. (foo ist eine

Idee: durchlaufe Programm r¨ uckw¨ arts, ab einer Benutzung ist eine Variable lebendig, ab einer Definition tot?. gen enth¨ alt Variablen die Benutzt werden, kill Variablen

Sprachtechnologie und Compiler, Sommersemester 2014 Dozent: Prof.. Was f¨ allt

Schreiben Sie mehrere kleine Testprogramme und vergleichen Sie den generierten x86-64-Assemblers f¨ ur zwei optimierende Compiler.. K¨ onnen Sie