All posts by Albert Zündorf

Fujaba Developer Days

Aktuelles direkt von der Autobahn auf dem Weg zurück:

Krasse Sache, wie geekig ist das denn. Ingo geht per Wlan im fahrenden Auto über den Mac-AcessPoint von Christoph ins Netz. Der hat nämlich seine Bluetooth-> UMTS Handyflat mal eben fürs Sharing klar gemacht. Wow!

Software Engineering II

Hallo an alle, auch wenn wir heute nicht da sind, wollten wir euch eure Aufgaben für die nächsten Wochen nicht vorenthalten. In der letzten Vorlesung wurde das Erstellen eines grafischen Benutzerinterfaces mit Hilfe des Eugenia Eclipse Plugins und Annotationen am Meta-Modell gezeigt. Nun sollt ihr in eurem Modell ein grafisches Benutzerinterface mit diesesn Methoden bauen.

Die benötigten Links und weitere Informationen findet ihr hier: SE2_Uebung4

Software Engineering I, WS0910

Der Server ist aus dem Internet unter der IP 141.51.169.113 Port 1138 zu erreichen. Die Server für die KI Clients können per SSH unter den folgenden IP Addressen erreicht werden:

Gruppe IP Benutzername
A 141.51.169.117 se1ws0910a
B 141.51.169.118 se1ws0910b
C 141.51.169.119 se1ws0910c
D 141.51.169.120 se1ws0910d
E 141.51.169.121 se1ws0910e
F 141.51.169.122 se1ws0910f

Die Passwörter entsprechen dem KI Client Login. Fragt den Deployment Experten eurer Gruppe wie ihr auf einem Linux Server euren KI Client aufsetzt und ggf. auch zu remote Debugging und Testing.

Compiler Construction, WS0910

Homework #4 (due Nov. 27th, see last entry!) requires you to implement the following:

  • extend the parser to handle if, else, and while statements. The new grammar rules are:
    ifStat ::= 'if' condExpr '{' block '}' ('else' '{' block '}')?
    whileStat ::= 'while' condExpr '{' block '}'
    condExpr ::= expr (bop expr)?
    bop ::= '<' | '>' | '==' | ...

    A conditional expression (condExpr) is true if its value is > 0, and false otherwise.

  • parse function declarations:
    funcDecl ::= name '(' paramDeclList ')' '{' block '}'
    paramDeclList ::= name*

    Extend your symbol table to be able to store a function declaration.

  • interpret function calls:
    factor ::= number | name | name '(' expr* ')'

    Make sure to handle parameter symbols correctly when calling functions. It should be possible to access globals from a function, but you may choose to make function execution free of side effects. Please make a comment or two about how your implementation works in the code!

Please remember to write simple test cases first (if without else, functions without parameters…). Develop iteratively, adding features as you go. Do not attempt to get everything right on first attempt…