Teorija Programskih Jezikov (IŠRM)/Stari kolokviji in izpiti/Kolokvij-2005-12-15/2. naloga

Iz MaFiRaWiki

Programskemu jeziku MinML dodamo novi operaciji:

Izraz e ::= ... | e1 and e2 | e1 andalso e2.

Obe operaciji naj bi izračunali logično konjunkcijo Boolovih izrazov e1 in e2, razlika je le v tem, da and evaluira e2 samo po potrebi, če iz e1 ni razviden rezultat, medtem ko andalso vedno evaluira oba e1 in e2.

  1. Zapiši pravila za preverjane tipov in za evaluacijo and in andalso.
  2. Podaj primer programov e1 in e1 tipa bool, iz katerih je opazna razlika med e1 and e2 in e1 andalso e2.

/Rešitev

Osebna orodja