Есть ли какой-либо интерпретатор языка C, написанный в javascript или java?
Мне не нужен полный интерпретатор, но мне нужно сделать пошаговое выполнение программы и возможность видеть значения переменных, стек... все это в веб-интерфейсе.
Идея состоит в том, чтобы помочь новичкам C, показывая им пошаговое выполнение программы. Мы используем GWT для создания интерфейса, поэтому, если что-то существует в Java, мы сможем его использовать.
Я могу изменить его в соответствии с моими потребностями, но если я смогу избежать написания парсера/абстрактного синтаксического дерева walker/stack manipulation..., это было бы здорово.
Изменить:
Чтобы быть ясным, я не хочу симулировать полный C, потому что некоторые программы могут быть очень сложными.
К шагу я имею в виду базовую операцию, такую как: оценка выражения, аффектация, вызов функции.
C, который я хочу симулировать, содержит: переменные, for, while, функции, массивы, указатели, математические функции. Нет goto, строковые функции, ctypes.h, setjmp.h... (по крайней мере пока).
Вот прототип: http://www.di.ens.fr/~fevrier/war/simu.html
В этом примере мы вручную преобразуем код C в представление javascript, но он ограничен (выражения, такие как a == 2 || a = 1
не обрабатываются) и ограничены программами, преобразованными вручную.
У нас есть компилятор C на удаленном сервере, поэтому мы можем проверить, правильный ли код (и не имеет поведения undefined). Конструкция разбора /AST может также выполняться удаленно (поэтому любой язык), но ходьба AST должна быть в javascript, чтобы работать на стороне клиента.