Metody realizacji języków programowania/MRJP Ćwiczenia 5: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
| Linia 20: | Linia 20: | ||
Zakładając, że poniższy fragment programu jest napisany w języku ze strukturą blokową, przetłumacz treść procedury r: | Zakładając, że poniższy fragment programu jest napisany w języku ze strukturą blokową, przetłumacz treść procedury r: | ||
procedure p(a:integer); | '''procedure''' p(a:integer); | ||
procedure q(var b:integer); | '''procedure''' q('''var''' b:integer); | ||
var c:integer; | '''var''' c:integer; | ||
procedure s(d:integer); | '''procedure''' s(d:integer); | ||
begin | '''begin''' | ||
... | ... | ||
end; | '''end'''; | ||
procedure r; | '''procedure''' r; | ||
var e:integer; | '''var''' e:integer; | ||
begin | '''begin''' | ||
e:=a+b; | e:=a+b; | ||
b:=c; | b:=c; | ||
s(b); | s(b); | ||
q(e) | q(e) | ||
end; | '''end'''; | ||
begin | '''begin''' | ||
... | ... | ||
end; | '''end'''; | ||
begin | '''begin''' | ||
... | ... | ||
end; | '''end'''; | ||
== Zadanie == | == Zadanie == | ||
Wersja z 18:59, 26 wrz 2006
Zadanie - tłumaczenie funkcji
Przy założeniu, że mamy do czynienia z językiem bez struktury blokowej (w rekordzie aktywacji nie ma SL) przetłumacz na kod NMW treść funkcji g z poniższego przykładu:
function f(w:integer; var x:integer):integer; begin ... end; function g(y:integer; var z:integer):integer; var a:integer; begin g:=y; a:=z; z:=f(a,a) end;
Zadanie - struktura blokowa
Zakładając, że poniższy fragment programu jest napisany w języku ze strukturą blokową, przetłumacz treść procedury r:
procedure p(a:integer);
procedure q(var b:integer);
var c:integer;
procedure s(d:integer);
begin
...
end;
procedure r;
var e:integer;
begin
e:=a+b;
b:=c;
s(b);
q(e)
end;
begin
...
end;
begin
...
end;