Pseudocode: Implement computation of expected type predicates

This commit is contained in:
Alexey Sedunov
2014-06-23 14:02:22 +04:00
parent 50228fa085
commit 5e2c2b4eca
87 changed files with 1154 additions and 803 deletions
@@ -17,34 +17,34 @@ fun lazyBooleans(a : Boolean, b : Boolean) : Unit {
14
}
---------------------
a <v2> NEW()
1 <v3> NEW()
{ 1 } <v3> COPY
2 <v4> NEW()
{ 2 } <v4> COPY
if (a) { 1 } else { 2 } <v5> NEW(<v3>, <v4>)
3 <v6> NEW()
a <v7> NEW()
b <v8> NEW()
a && b <v9> NEW(<v7>, <v8>)
5 <v10> NEW()
6 <v11> NEW()
if (a && b) 5 else 6 <v12> NEW(<v10>, <v11>)
7 <v13> NEW()
a <v14> NEW()
b <v15> NEW()
a || b <v16> NEW(<v14>, <v15>)
8 <v17> NEW()
9 <v18> NEW()
if (a || b) 8 else 9 <v19> NEW(<v17>, <v18>)
10 <v20> NEW()
a <v21> NEW()
11 <v22> NEW()
if (a) 11 <v22> COPY
12 <v23> NEW()
a <v24> NEW()
13 <v25> NEW()
if (a) else 13 <v25> COPY
14 <v26> NEW()
{ if (a) { 1 } else { 2 } 3 if (a && b) 5 else 6 7 if (a || b) 8 else 9 10 if (a) 11 12 if (a) else 13 14 } <v26> COPY
a <v2>: Boolean NEW()
1 <v3>: * NEW()
{ 1 } <v3>: * COPY
2 <v4>: * NEW()
{ 2 } <v4>: * COPY
if (a) { 1 } else { 2 } <v5>: * NEW(<v3>, <v4>)
3 <v6>: * NEW()
a <v7>: Boolean NEW()
b <v8>: Boolean NEW()
a && b <v9>: Boolean NEW(<v7>, <v8>)
5 <v10>: * NEW()
6 <v11>: * NEW()
if (a && b) 5 else 6 <v12>: * NEW(<v10>, <v11>)
7 <v13>: * NEW()
a <v14>: Boolean NEW()
b <v15>: Boolean NEW()
a || b <v16>: Boolean NEW(<v14>, <v15>)
8 <v17>: * NEW()
9 <v18>: * NEW()
if (a || b) 8 else 9 <v19>: * NEW(<v17>, <v18>)
10 <v20>: * NEW()
a <v21>: Boolean NEW()
11 <v22>: * NEW()
if (a) 11 <v22>: * COPY
12 <v23>: * NEW()
a <v24>: Boolean NEW()
13 <v25>: * NEW()
if (a) else 13 <v25>: * COPY
14 <v26>: * NEW()
{ if (a) { 1 } else { 2 } 3 if (a && b) 5 else 6 7 if (a || b) 8 else 9 10 if (a) 11 12 if (a) else 13 14 } <v26>: * COPY
=====================