Wirth's PL/0
Реализация языка программирования PL/0Эталонный компилятор PL/0, впервые представленный Никлаусом Виртом в 1975-76 годах в книгах “Algorithms + Data Structures = Programs” и “Compilerbau”. Написан на Pascal.
Компилятор проверяет корректность программы, транслирует ее в ассемблероподобный код и исполняет ее. Особенностью реализации является то, что и исходная программы, и странслированный код, и результаты работы программы (т.е. все значения изменяемых переменных) выводятся на печать.
Ссылки:
Примеры:
Факториал:
Пример для версий Wirth's PL/0 (1976)В языке нет возможности выводить символы, поэтому программа выводит пары число-его факториал, без разделителей. Результат запуска этой программы имеет следующий вид:
0 var n, f;
1 begin
2 n := 0;
4 f := 1;
6 while n # 16 do
10 begin
10 n := n + 1;
14 f := f * n;
18 end;
19 end.
0 jmp 1 1
1 int 1 5
2 lit 1 0
3 sto 1 3
4 lit 1 1
5 sto 1 4
6 lod 1 3
7 lit 1 16
8 opr 1 9
9 jpc 1 19
10 lod 1 3
11 lit 1 1
12 opr 1 2
13 sto 1 3
14 lod 1 4
15 lod 1 3
16 opr 1 4
17 sto 1 4
18 jmp 1 6
19 opr 1 0
start pl/0
0
1
1
1
2
2
3
6
4
24
5
120
6
720
7
5040
8
40320
9
362880
10
3628800
11
39916800
12
479001600
13
1932053504
14
1278945280
15
2004310016
16
2004189184
end pl/0
var n, f;
begin
n := 0;
f := 1;
while n # 16 do
begin
n := n + 1;
f := f * n;
end;
end.
Комментарии
]]>blog comments powered by Disqus
]]>