C интерпретатор написан на JavaScript

Это это приятное видео от дяди Боба, где он кратко объясняет MVC & amp; MVP в конце.

IMO, MVP - это улучшенная версия MVC, в которой вы в основном отделяете внимание от того, что вы собираетесь показать (данные) из того, как вы собираетесь показывать (представление). Презентатор включает в себя любопытную бизнес-логику вашего пользовательского интерфейса, неявно налагает, какие данные должны быть представлены, и дает вам список немого вида. И когда придет время показать данные, вы просто подключите свое представление (возможно, включает в себя те же идентификаторы) в свой адаптер и установите соответствующие поля просмотра, используя эти модели просмотра с минимальным количеством вводимого кода (просто используя сеттеры). Главное преимущество заключается в том, что вы можете протестировать свою бизнес-логику пользовательского интерфейса против множества / разных видов, например, показывать элементы в горизонтальном списке или вертикальном списке.

В MVC мы говорим через интерфейсы (границы), чтобы склеить разные слои. Контроллер является плагином для нашей архитектуры, но у него нет такого ограничения, чтобы навязывать, что показывать. В этом смысле MVP является своего рода MVC с концепцией представлений, которые могут быть подключены к контроллеру через адаптеры.

Надеюсь, это поможет лучше.

30
задан MD XF 19 December 2016 в 09:41
поделиться

3 ответа

Существует грамматика C , доступная для antlr , которую можно использовать для генерации синтаксического анализатора C в Java и, возможно, также в JavaScript.

5
ответ дан ataylor 19 December 2016 в 09:41
поделиться

Я не знаю ни одного интерпретатора C, написанного на JavaScript, но здесь обсуждаются доступные интерпретаторы C:

Есть ли интерпретатор для C?

[114 Возможно, вам лучше поискать виртуальную машину любого типа, которая работает поверх JavaScript, а затем посмотреть, сможете ли вы найти компилятор C, который выдает правильный машинный код для виртуальной машины. Скорее всего, это будет LLVM; если вы сможете найти виртуальную машину JavaScript, которая может запускать LLVM, то вы будете в отличной форме.

Я сделал несколько поисков в Google и нашел Emscripten, который напрямую переводит код C в JavaScript! Возможно, вы можете сделать что-то с этим:

https://github.com/kripken/emscripten/wiki

Возможно, вы можете изменить Emscripten для создания «точки последовательности «после каждой скомпилированной строки C, и затем вы можете сделать свое моделируемое окружение пошаговым от точки последовательности до точки последовательности.

Я полагаю, что Emscripten внедряет LLVM, поэтому у него могут быть виртуальные регистры; если так, то это может быть идеальным для ваших целей.

1
ответ дан Community 19 December 2016 в 09:41
поделиться

Проект Феликса предоставляет интерпретатор C ++ в Javascript, хотя и с некоторыми ограничениями.

https://github.com/felixhao28/JSCPP

Таким образом, пример программы может выглядеть следующим образом:

var JSCPP = require('JSCPP');
var launcher = JSCPP.launcher;
var code = 'int main(){int a;cin>>a;cout<<a;return 0;}';
var input = '4321';
var exitcode = launcher.run(code, input);
console.info('program exited with code ' + exitcode);

По состоянию на март 2015 года это в процессе активной разработки, поэтому, пока он пригоден для использования, все еще существуют области, в которых он может продолжать расширяться. Проверьте документацию на наличие ограничений. Похоже, вы можете использовать его как прямой интерпретатор C с ограниченной библиотечной поддержкой, без каких-либо проблем.

1
ответ дан Community 19 December 2016 в 09:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: