Source file while_examples.ml
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
(** Example while programs *)
open While_ast
let examples = [
("skip", [%while_lang skip ]);
("assign", [%while_lang x := 3 ]);
("sequence", [%while_lang x := 3; y := 5 ]);
("variable", [%while_lang y := 1; x := y ]);
("add", [%while_lang x := 2; x := 2 * x + 1; ]);
("if", [%while_lang
x := 11;
if (x <= 10)
then skip
else x := 12 ]);
("chapter3",
[%while_lang
x := 13;
while(x > 3) do
x := x - 2
done]
);
("bis",
[%while_lang
x := 13;
if (x > 3)
then x := x + 1
else x := x - 1;
y := x - 2
]
);
("if_while", [%while_lang
x := 5 + 3;
if x <= 10 then skip else x := x - 1;
while x > 0 do
x := x - 1
done
]);
("chapter1", [%while_lang
x := 5;
x := x + 1;
if x <= 10 then skip else x := x - 1;
]);
("chapter3", [%while_lang
x := 1;
i := 3;
while i > 0 do
x := x + 1;
i := i - 1;
done;
]);
]