global_variable4.golden 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. ********** source program **********
  2. var Int : zero = 1
  3. fn main () -> Int {
  4. zero = 0;
  5. return zero;
  6. }
  7. ********** type checking **********
  8. --- step exp Int --->
  9. --- step exp Int --->
  10. --- step exp Int --->
  11. --- step exp Int --->
  12. ********** type checking complete **********
  13. var Int : zero = 1
  14. fn main () -> Int {
  15. zero = 0;
  16. return zero;
  17. }
  18. ********** starting execution **********
  19. ********** initializing globals **********
  20. --- step exp 1 --->
  21. --- step exp () --->
  22. ********** calling main function **********
  23. {
  24. stack: top{main()<-1>}
  25. heap: 1, fun<main>,
  26. env: main: fun<main>, zero: 1,
  27. }
  28. --- step exp main() --->
  29. {
  30. stack: top{main<-1> :: main()<0>}
  31. heap: 1, fun<main>,
  32. env: main: fun<main>, zero: 1,
  33. }
  34. --- step exp main --->
  35. {
  36. stack: top{fun<main><-1> :: main()<0>}
  37. heap: 1, fun<main>,
  38. env: main: fun<main>, zero: 1,
  39. }
  40. --- handle value fun<main> with main()<1>(fun<main>,) --->
  41. {
  42. stack: top{()<-1> :: main()<1>(fun<main>,)}
  43. heap: 1, fun<main>,
  44. env: main: fun<main>, zero: 1,
  45. }
  46. --- step exp () --->
  47. {
  48. stack: top{()<-1> :: main()<1>(fun<main>,)}
  49. heap: 1, fun<main>,
  50. env: main: fun<main>, zero: 1,
  51. }
  52. --- handle value () with main()<2>(fun<main>,(),) --->
  53. pattern_match((), ())
  54. {
  55. stack: main{zero = 0; ... <-1>} :: top{}
  56. heap: 1, fun<main>,
  57. env: main: fun<main>, zero: 1,
  58. }
  59. --- step stmt zero = 0; ... --->
  60. {
  61. stack: main{zero = 0;<-1> :: return zero;<-1>} :: top{}
  62. heap: 1, fun<main>,
  63. env: main: fun<main>, zero: 1,
  64. }
  65. --- step stmt zero = 0; --->
  66. {
  67. stack: main{zero<-1> :: zero = 0;<0> :: return zero;<-1>} :: top{}
  68. heap: 1, fun<main>,
  69. env: main: fun<main>, zero: 1,
  70. }
  71. --- step lvalue zero --->
  72. {
  73. stack: main{ptr<0><-1> :: zero = 0;<0> :: return zero;<-1>} :: top{}
  74. heap: 1, fun<main>,
  75. env: main: fun<main>, zero: 1,
  76. }
  77. --- handle value ptr<0> with zero = 0;<1>(ptr<0>,) --->
  78. {
  79. stack: main{0<-1> :: zero = 0;<1>(ptr<0>,) :: return zero;<-1>} :: top{}
  80. heap: 1, fun<main>,
  81. env: main: fun<main>, zero: 1,
  82. }
  83. --- step exp 0 --->
  84. {
  85. stack: main{0<-1> :: zero = 0;<1>(ptr<0>,) :: return zero;<-1>} :: top{}
  86. heap: 1, fun<main>,
  87. env: main: fun<main>, zero: 1,
  88. }
  89. --- handle value 0 with zero = 0;<2>(ptr<0>,0,) --->
  90. {
  91. stack: main{return zero;<-1>} :: top{}
  92. heap: 0, fun<main>,
  93. env: main: fun<main>, zero: 0,
  94. }
  95. --- step stmt return zero; --->
  96. {
  97. stack: main{zero<-1> :: return zero;<0>} :: top{}
  98. heap: 0, fun<main>,
  99. env: main: fun<main>, zero: 0,
  100. }
  101. --- step exp zero --->
  102. {
  103. stack: main{0<-1> :: return zero;<0>} :: top{}
  104. heap: 0, fun<main>,
  105. env: main: fun<main>, zero: 0,
  106. }
  107. --- handle value 0 with return zero;<1>(0,) --->
  108. {
  109. stack: top{0<-1>}
  110. heap: 0, fun<main>,
  111. env: main: fun<main>, zero: 0,
  112. }
  113. result: 0