2013-08-13 2 views
1

Я хотел бы знать, есть ли какой-либо язык, который компилируется в VBA, например, у нас есть coffeescript для js, меньше для css ...Есть ли язык высокого уровня, который компилируется в VBA?

Если этого не произошло, есть ли что-то, что мешает нам достичь этого? Было бы плохой идеей?

Я думаю, это помогло бы людям, которые привыкли работать с более современными языками, стать БОЛЬШИМ более продуктивным.

Что нужно для этого? Можем ли мы повторно использовать грамматику и парсер coffeescript, но взламываем шаги, которые генерируют Javascript и генерируют VBA? Подмножество VBA было бы прекрасно.

+0

В отсутствие транспилятора вы можете запрограммировать свои функции на скомпилированном языке по вашему выбору и построить DLL, с которой вы можете получить доступ из VBA. – Bob

ответ

2

В общем, всегда можно скомпилировать с одного языка Turing на любой другой. Результат может быть не быстрым, но, как правило, он довольно прост.

Итак, почему был создан Coffeescript ex nihilo, вместо того, чтобы использовать существующий язык? Интеграция.

Предположим, например, что мы хотели написать JS в Haskell. Вы можете легко реализовать компилятор Haskell для JavaScript. Теперь предположим, что в Haskell вы хотели бы открыть диалоговое окно на веб-странице. В JS вы должны написать alert("hello"), но если ваш компилятор H2JS верен, функции alert не будет, потому что функции Haskell не имеют побочных эффектов (возможно, вся причина, по которой вы хотели написать в Haskell, была такой что у вас могут быть хорошие гарантии, такие, что вызывающие функции не будут отображаться в диалоговых окнах).

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

С другой стороны, Coffeescript достаточно похож на JS, что довольно очевидно, как всплывать предупреждения, редактировать DOM и т. Д., Только зная, как это делается в JS.

Таким образом, это не сложно сделать способом slapdash, но если исходный язык сильно отличается от VBA, вероятно, будет сложно сделать специфичные для VBA вещи, которые делают проект полезным в первую очередь ,

+0

Мне трудно понять, как язык, который вы используете для перевода одного источника в другой, ограничивает целевой язык. Наверное, есть недоразумение. Я говорю о языке, единственной целью которого является переписывание VBA, например, CoffeeScript нацеливается на Javascript. В концепции у меня есть источник для преобразования источника, вы просматриваете разбор первого языка в АСТ и испускаете соответствующий код на другом языке. Я ошибаюсь/неполный? – zrz

+0

Я не понимаю ваш вопрос. Я не говорю, что что-то технически невозможно, просто создание новых языков, похожих на CoffeeScript, имеет смысл, поскольку уважение существующих функций интеграции VBA будет проще и понятнее. –

Смежные вопросы