-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconcurent20.txt
68 lines (68 loc) · 3.55 KB
/
concurent20.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
ExecStack
CompStmt{first=CompStmt{first=AssignStmt{expr=ConstantExpression{value=10}, var='v'}, second=NewStmt{variable='a', address=16, expression=ConstantExpression{value=22}}}, second=CompStmt{first=ForkStmt{statement=CompStmt{first=WriteHeapStmt{varName='a', expression=ConstantExpression{value=30}}, second=CompStmt{first=AssignStmt{expr=ConstantExpression{value=32}, var='v'}, second=CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}}}}, second=CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}}}
SymbolTable
Output
Heap
ExecStack
CompStmt{first=ForkStmt{statement=CompStmt{first=WriteHeapStmt{varName='a', expression=ConstantExpression{value=30}}, second=CompStmt{first=AssignStmt{expr=ConstantExpression{value=32}, var='v'}, second=CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}}}}, second=CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}}
CompStmt{first=AssignStmt{expr=ConstantExpression{value=10}, var='v'}, second=NewStmt{variable='a', address=16, expression=ConstantExpression{value=22}}}
SymbolTable
Output
Heap
ExecStack
CompStmt{first=ForkStmt{statement=CompStmt{first=WriteHeapStmt{varName='a', expression=ConstantExpression{value=30}}, second=CompStmt{first=AssignStmt{expr=ConstantExpression{value=32}, var='v'}, second=CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}}}}, second=CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}}
NewStmt{variable='a', address=16, expression=ConstantExpression{value=22}}
AssignStmt{expr=ConstantExpression{value=10}, var='v'}
SymbolTable
Output
Heap
ExecStack
CompStmt{first=ForkStmt{statement=CompStmt{first=WriteHeapStmt{varName='a', expression=ConstantExpression{value=30}}, second=CompStmt{first=AssignStmt{expr=ConstantExpression{value=32}, var='v'}, second=CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}}}}, second=CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}}
NewStmt{variable='a', address=16, expression=ConstantExpression{value=22}}
SymbolTable
v-->10
Output
Heap
ExecStack
CompStmt{first=ForkStmt{statement=CompStmt{first=WriteHeapStmt{varName='a', expression=ConstantExpression{value=30}}, second=CompStmt{first=AssignStmt{expr=ConstantExpression{value=32}, var='v'}, second=CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}}}}, second=CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}}
SymbolTable
a-->16
v-->10
Output
Heap
16-->22
ExecStack
CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}
ForkStmt{statement=CompStmt{first=WriteHeapStmt{varName='a', expression=ConstantExpression{value=30}}, second=CompStmt{first=AssignStmt{expr=ConstantExpression{value=32}, var='v'}, second=CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}}}}
SymbolTable
a-->16
v-->10
Output
Heap
16-->22
ExecStack
CompStmt{first=print( VarExpression{name='v'} ), second=print( ReadHeapExpression{variable='a'} )}
SymbolTable
a-->16
v-->10
Output
Heap
16-->22
ExecStack
print( ReadHeapExpression{variable='a'} )
print( VarExpression{name='v'} )
SymbolTable
a-->16
v-->10
Output
Heap
16-->22
ExecStack
print( ReadHeapExpression{variable='a'} )
SymbolTable
a-->16
v-->10
Output
10
Heap
16-->30