Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

ΜOpal: Unterschied zwischen den Versionen

K
Zeile 1: Zeile 1:
 
Eine simple Programmiersprache zu der in der Lehrveranstaltung [[PSS]] ein Compiler geschrieben wird.
 
Eine simple Programmiersprache zu der in der Lehrveranstaltung [[PSS]] ein Compiler geschrieben wird.
 +
MOpal steht für "Mikro-Opal", was wiederum "kleines Opal" bedeuten soll.
  
 
Beispielprogramm:
 
Beispielprogramm:

Version vom 21. Februar 2006, 02:56 Uhr

Eine simple Programmiersprache zu der in der Lehrveranstaltung PSS ein Compiler geschrieben wird. MOpal steht für "Mikro-Opal", was wiederum "kleines Opal" bedeuten soll.

Beispielprogramm:

DEF fac(X:nat):nat ==
  IF eq(X,0) THEN
    1
  ELSE
    mul(X, fac(sub(X, 1)))
  FI

DEF MAIN:nat ==
  fac(8)

EBNF:

Prog -> Def Def* "#"
Def  -> "DEF" Lhs "==" Expr
Lhs  -> "MAIN" ":" Type
      | "id" "(" [ "id" ":" Type ( "," "id" ":" Type )* ] ")" ":" Type
Type -> "nat"
      | "bool"
Expr -> "number"
      | "true"
      | "false"
      | "id" [ "(" [ Expr ( "," Expr )* ] ")" ]
      | "IF" Expr "THEN" Expr [ "ELSE" Expr ] "FI"