void P1 { void P2 { body-ofi-P2 } void P3 { void P4 { body-of-P4 } body-of-P3 } body-of-P1 }Draw the activation record stack region that occurs between the static and dynamic chain pointers when the following sequence of calls, P1, P2, P3,P4,P2 has been made (is it understood that at this time they are all active: none has returned).
int a=1, b=2, c=3, d=4 def A(int b) {int c=5; B(a+b); print a,b,c,d} def B(int c) { def BB(int d) {int a=6; print a,b,c,d} BB(a+c) } A(7) print a,b,c,dSimuloi se myös itse. Riittää esittää tietueiden muuttujat sekä niiden staattiset ja dynaamiset linkit. [Tämä kannattaa osata tehdä!]
Lauseke ::= Yhtlaskettava | Yhtlaskettava + Yhtlaskettava Yhtlaskettava ::= Kerrottava | Kerrottava * Kerrottava Kerrottava ::= 0|1|2|3|4|5|6|7|8|9 | (Lauseke)Tuon kääntäjän semantiikka on siis vain infix-lausekkeen kääntäminen postifix-lausekkeeksi. Muokkaa tämä "ohjelmointikielen toteutus" sellaiseksi, että se laskee ja tulostaa syötetyn infix-lausekkeen arvon. Toteutus kahdella tavalla:
Vihje: Jos et jo osaa Scalaa, opettele se AW:n vanhasta kurssimateriaalista. Scala on kiva kieli! ;-)