В общем, всегда можно скомпилировать с одного языка 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 вещи, которые делают проект полезным в первую очередь ,
В отсутствие транспилятора вы можете запрограммировать свои функции на скомпилированном языке по вашему выбору и построить DLL, с которой вы можете получить доступ из VBA. – Bob