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
(Historisch markiert)
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 1: Zeile 1:
 +
{{ historisch }}
 +
 
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:

Aktuelle Version vom 29. Februar 2024, 17:16 Uhr

History Lesson!
Dieser Artikel spiegelt sehr wahrscheinlich nicht mehr den aktuellen Stand wider, könnte aber trotzdem von Interesse sein.

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"