Интерпретаторы бывают очень полезны когда надо быстро проверить какую-то идею, для отладки или во время обучения новому языку. Когда я решил вспомнить C, я понял, что мне их не хватает. Оказалось, что существует несколько интерпретаторов C/C++. Предлагаю здесь их краткий обзор.
iGCC
лицензия: GNU GPL v.2 или выше
версия для Windows: нет
разрабатывается с 2009 года, последняя версия — 19.03.2012
iGCC — тонкая обёртка над GCC, написанная на Python. Самый легковесный из интерпретаторов (184Кб в распакованном виде). Поддерживает многострочный ввод. Весь код пишется внутри функции main() со всеми вытекающими последствиями.
PicoC
лицензия: New BSD license
версия для Windows: нет
разрабатывается с 2009 года, последняя версия — 20.02.2011
PicoC — создавался как скриптовый язык для бортовых систем БПЛА. Авторы заявляют, что он хорошо подходит для робототехники и приложений для встраиваемых устройств. Не является полной реализацией ISO C. Весит 1,9 Мб. Поддерживает многострочный ввод и объявление функций.
UnderC
лицензия: GNU LGPL
версия для Windows: есть
разрабатывался с 2001 года, последняя версия — 29.11.2003
UnderC — создавался как быстрый небольшой интерпретатор, реализующий большую часть стандарта ISO C. В нём есть встроенные классы стандартной библиотеки, например string, vector, map. Легко загружает функции из динамических библиотек.
К сожалению, мне так и не удалось скомпилировать UnderC. Но, судя по размеру (распакованые исходники — 1,6Мб), он похож на предыдущие интерпретаторы по возможностям.
Ch
лицензия: проприетарная
версия для Windows: есть
Ch — проприетарный интерпретатор C/C++. Версия Standard бесплатна для коммерческого использования. Есть сборки не только для Linux и Windows, но и Mac OS, Solaris, FreeBSD и пр. Поддерживает стандарт C90 полностью. Позиционируется как самый функциональный интерпретатор С. Версия для Windows поддерживает команды консоли и также включает некоторые команды UNIX, например vi, ls, awk, sed, vim с подсветкой синтаксиса. Ch может работать как командная оболочка… Полный список фич здесь. Выглядит весьма серьёзно, поддерживает многострочный ввод, объявление функций.
CINT
лицензия: GNU LGPL
версия для Windows: нет
ROOT — фреймворк CERN для анализа данных (судя по всему очень мощный) и CINT его часть. Поддерживает примерно 95% ANSI C и 85% C++. Есть подсветка синтаксиса. Расхождения со стандартом описаны здесь. Поддерживает многострочный ввод и объявление функций (они загружаются из сторонних файлов как кусочки кода, в самом интерпретаторе их объявлять нельзя).
К сожалению, интерпретаторов уровня, например, встроенного в python для C на данный момент нет. CINT и Ch — самые функциональные, но не отличаются удобством использования, iGCC и PicoC подойдут только для обучения, разработка UnderC прекращена.
iGCC
лицензия: GNU GPL v.2 или выше
версия для Windows: нет
разрабатывается с 2009 года, последняя версия — 19.03.2012
iGCC — тонкая обёртка над GCC, написанная на Python. Самый легковесный из интерпретаторов (184Кб в распакованном виде). Поддерживает многострочный ввод. Весь код пишется внутри функции main() со всеми вытекающими последствиями.
PicoC
лицензия: New BSD license
версия для Windows: нет
разрабатывается с 2009 года, последняя версия — 20.02.2011
PicoC — создавался как скриптовый язык для бортовых систем БПЛА. Авторы заявляют, что он хорошо подходит для робототехники и приложений для встраиваемых устройств. Не является полной реализацией ISO C. Весит 1,9 Мб. Поддерживает многострочный ввод и объявление функций.
UnderC
лицензия: GNU LGPL
версия для Windows: есть
разрабатывался с 2001 года, последняя версия — 29.11.2003
UnderC — создавался как быстрый небольшой интерпретатор, реализующий большую часть стандарта ISO C. В нём есть встроенные классы стандартной библиотеки, например string, vector, map. Легко загружает функции из динамических библиотек.
К сожалению, мне так и не удалось скомпилировать UnderC. Но, судя по размеру (распакованые исходники — 1,6Мб), он похож на предыдущие интерпретаторы по возможностям.
Ch
лицензия: проприетарная
версия для Windows: есть
Ch — проприетарный интерпретатор C/C++. Версия Standard бесплатна для коммерческого использования. Есть сборки не только для Linux и Windows, но и Mac OS, Solaris, FreeBSD и пр. Поддерживает стандарт C90 полностью. Позиционируется как самый функциональный интерпретатор С. Версия для Windows поддерживает команды консоли и также включает некоторые команды UNIX, например vi, ls, awk, sed, vim с подсветкой синтаксиса. Ch может работать как командная оболочка… Полный список фич здесь. Выглядит весьма серьёзно, поддерживает многострочный ввод, объявление функций.
CINT
лицензия: GNU LGPL
версия для Windows: нет
ROOT — фреймворк CERN для анализа данных (судя по всему очень мощный) и CINT его часть. Поддерживает примерно 95% ANSI C и 85% C++. Есть подсветка синтаксиса. Расхождения со стандартом описаны здесь. Поддерживает многострочный ввод и объявление функций (они загружаются из сторонних файлов как кусочки кода, в самом интерпретаторе их объявлять нельзя).
К сожалению, интерпретаторов уровня, например, встроенного в python для C на данный момент нет. CINT и Ch — самые функциональные, но не отличаются удобством использования, iGCC и PicoC подойдут только для обучения, разработка UnderC прекращена.