Muutettu viimeksi 21.11.2019. Sivu luotu 20.11.2019.
{ int x = 2; void fie(reference int y) { x = x + y; y = y + 1; } { int x = 5; int y = 5; fie(x); write(x); } write(x); }
{ int x = 2; void fie(name int y) { x = x + y; } { int x = 5; { int x = 7 } fie(x++); write(x); } write(x); }
{ int x = 0; int A(reference int y) { int x =2; y=y+1; return B(y)+x; } int B(reference int y) { int C(reference int y){ int x = 3; return A(y)+x+y; } if (y==1) return C(x)+y; else return x+y; } write (A(x)); }
int X[10]; int i = 1; X[0] = 0; X[1] = 0; X[2] = 0; void foo (reference int Y,J) { X[J] = J+1; write(Y); J++; X[J]=J; write(Y); } foo(X[i],i); write(X[i]);
int X = 2; void foo (valueresult int Y) { Y++; write(X); Y++; } foo(X); write(X);
int X = 2; void foo (name int Y) { X++; write(Y); X++; } foo(X+1); write(X);
{ int y=0; void f(int x) { x = x+1; throw E; x = x+1; } try{ f(y); } catch E {}; write(y); }State what is printed by the program when parameters are passed: (i) by value-result; (ii) by reference.
(Tässä ei tarvitse täsmentää, miten parametrit ilmaistaisiin, koska esimerkissä käsitellään vain parametritonta funktioarvoa.
Kielessä on staattiset näkyvyyssäännöt ja funktioarvoiset funktiot ovat sallittuja. Kielen virtuaalikone ylläpitää aktivaatiotietuepinoaan linkitettynä listana.
Simuloi aktivaatiotietuepinon käyttäytyminen ja sulkeumien toteutus hylättävien aktivaatiotietueiden avulla seuraavan ohjelman suorituksessa:
()->int teeLaskuri() { int lkm=0; return ()->{lkm=lkm+1; return lkm;} } int a = teeLaskuri(); int b = teeLaskuri(); a(); a(); b(); a(); b();