Я ради интереса решил написать компилятор из MidletPascal в
WebAssembly. Это позволит запускать программы на нём прямо в браузере. Проект называется
midpas, буду о нём здесь рассказывать.
Уже реализовал арифметику, условные операторы, циклы, функции и процедуры. Код интерпретируется, простой пример:
program test;
function fib(n: integer): integer;
begin
if n < 2 then fib := n;
else fib := fib(n - 1) + fib(n - 2);
end;
begin
assert_eq(fib(40), 102334155);
writeln('Correct!');
end.
finished in 516.88 secs.