Metody realizacji języków programowania/MRJP Ćwiczenia 5: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Zaroda (dyskusja | edycje)
Zaroda (dyskusja | edycje)
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;
  procedure p(a:integer);
  var a:integer;
   procedure q(var b:integer);
   procedure q;
     var c:integer;
     var b:integer;
    procedure s(d:integer);
    begin
    ...
    end;
     procedure r;
     procedure r;
       var c:integer;
       var e:integer;
     begin
     begin
      e:=a+b;
      b:=c;
      s(b);
      q(e)
     end;
     end;
   begin
   begin
  ...
   end;
   end;
  begin
  begin
...
  end;
  end;


== Zadanie ==
== Zadanie ==

Wersja z 18:58, 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;

Zadanie