Как выполнить код C ++ без его компиляции? - PullRequest
8 голосов
/ 28 июля 2010

Чтобы передать некоторый код приложению, созданному на C ++, я использовал открытый код C ++, который выполнял роль интерпретатора TCL.Таким образом, я мог создать файл, поместить туда некоторые данные XML, а в некоторых тегах - некоторый код TCL.Наконец, можно прочитать файл, настроить некоторую структуру и выполнить фрагменты сценария TCL из файла XML в соответствующих местах.Чтобы не использовать C ++ и TCL одновременно, я спрашиваю следующее:

Существует ли открытый код C ++, который может выполнять код C ++ без компиляции?Другими словами, есть ли интерпретатор C ++.

Ответы [ 3 ]

16 голосов
/ 28 июля 2010

CINT

Что такое CINT?

CINT является интерпретатором кода C и C ++.Это полезно, например, в ситуациях, когда быстрая разработка важнее времени выполнения.Использование интерпретатора значительно сокращает цикл компиляции и компоновки, что способствует быстрой разработке.CINT делает программирование на C / C ++ приятным даже для программистов, занятых неполный рабочий день.

CINT написан на самом C ++ и содержит чуть менее 400 000 строк кода.Он используется в производстве несколькими компаниями в банковской сфере, интегрированных устройствах и даже игровой среде, и, конечно, ROOT, что делает его интерпретатором по умолчанию для большого числа физиков высоких энергий во всем мире.

9 голосов
/ 28 июля 2010

Должен признать, что не ожидал, что он будет, но поиск показал следующее:

Ch

Однако:

Ch (произносится / ˌsiːˈeɪtʃ /) - кроссплатформенный интерпретатор C и C ++.Он предоставляется SoftIntegration, Inc для пользователей C / C ++.Ch полезен для сценариев, программирования оболочки, построения 2D / 3D, численных вычислений и может быть встроен в другие приложения для добавления возможностей сценариев.Ch может использоваться как для серверной, так и для клиентской веб-разработки.Он работает под Windows, Linux, Mac OS X и некоторыми версиями Unix.Ch поддерживает C90 и основные функции C99, но не поддерживает полные функции C ++.

Источник

Поэтому убедитесь, что он охватывает все необходимые функции.

7 голосов
/ 28 июля 2010

Да.Проверьте это: http://root.cern.ch/drupal/content/cint (это тоже бесплатное программное обеспечение).

Кроме того: вы, безусловно, можете найти лучшее решение, чем встраивание интерпретатора C ++, особенно с гораздо более легким,легко встраиваемые языки, такие как Lua , Python и т. д.

...