Есть ли интерпретатор для C? [закрыто]


111

Мне было интересно, есть ли что-то вроде интерпретатора для C. То есть в терминале Linux я могу ввести «python», а затем кодировать в этом интерпретаторе. (Я не уверен, что переводчик правильное слово). Это действительно полезно для тестирования разных вещей, и мне любопытно, существует ли что-то подобное для C. Хотя я сомневаюсь в этом. Единственное, что я могу придумать, это оболочка C ...


5
Правильное слово для того, что вы хотите, - это «оболочка», или «приглашение», или «REPL» (Read-Eval-Print-Loop, в отношении 4 команд Лиспа, которые должны быть объединены для создания интерпретатора Лиспа в Лиспе), но переводчик будет работать.
— Крис Лутц,

1
Кроме того, вам нужен термин REPL (Read Evaluate Print Loop).
— tsimon


На самом деле предпочтительным словом является «интерактивная» среда для C. Интерактивная среда открывает оболочку или приглашение, специфичное для языка. REPL тоже хорош.
— jcchuks 02

Полный список интерпретаторов и компиляторов для C / C ++ можно найти здесь: thefreecountry.com/compilers/cpp.shtml
— froggsy

Ответы:


71

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

Известный интерпретатор - « Ch: AC / C ++ Interpreter for Script Computing », подробно описанный в Dr. Dobbs:

Ch - это полный интерпретатор C, который поддерживает все языковые функции и стандартные библиотеки стандарта ISO C90, но расширяет C многими высокоуровневыми функциями, такими как строковый тип и вычислительные массивы, как объекты первого класса.

Стандарт Ch является бесплатным, но не с открытым исходным кодом. Только Ch professional имеет возможности построения графиков и другие функции, которые могут понадобиться.

Я никогда раньше не смотрел на это, но наличие интерпретатора ac под рукой звучит очень полезно, и я, вероятно, добавлю кое-что в свой набор инструментов. Спасибо за вопрос!


Редактировать:

Только что выяснил, что один из моих любимых компиляторов, TCC , будет выполнять сценарии C:

Он также обрабатывает файлы сценария C (просто добавьте строку shebang "#! / Usr / local / bin / tcc -run" в первую строку файла исходного кода C в Linux, чтобы он выполнялся напрямую.

TCC может читать исходный код C из стандартного ввода, если вместо infile используется "-". Пример:

echo 'main(){puts("hello");}' | tcc -run -

2
Я бы хотел, чтобы версия CH была доступна под лицензией, утвержденной OSI, чтобы ее можно было распространять. Вы можете создавать действительно хорошие утилиты, используя их интерпретатор, но, к сожалению, их сложно связать.
— Тим Пост

Это было бы чудесно. Бесплатное программное обеспечение лучше, чем ничего, но пока кто-то его не сделает ...
— Адам Дэвис,

Как ни странно, по умолчанию tccвыходит со статусом 10. Похоже, вы должны явно добавить return 0пожертвованиеecho 'main(){puts("hello"); return 0;}' | tcc -run -
— Грегори Нисбет

18

picoc - очень маленький интерпретатор C

PicoC - очень маленький интерпретатор C для написания сценариев. Первоначально он был написан как язык сценария для бортовой системы полета БПЛА. Он также очень подходит для других роботизированных, встроенных и невстроенных приложений.


9

проект ROOT предоставляет очень функциональный интерпретатор C и C ++ под названием Cint . Мне это очень нравится. Тем не менее, нужно немного привыкнуть к интерпретации.

TCC - тоже очень хороший выбор, но я не могу поручиться за его REPL


1
Разве команда ROOT не отказывается от Cint?
— Z-бозон

@Zboson «CERN имеет переключатель на новый интерпретатор, цепляться CINT не поддерживается ЦЕРН больше.»
— эндолиты

ROOT заменил cint на cling. Так что цепляние можно рассматривать как обновленную рекомендацию. (хотя - см. другие ответы - cling - это C ++, а не C, если это уместно, хотя iirc cint также использовал C ++)
— pseyfert

8

Наверное. Для c ++ их несколько. См. Использовали ли вы какие-либо интерпретаторы C ++ (не компиляторы)? Например. Конечно, cint съест почти любой код c с хорошими результатами, а tcc настолько быстр, что вы можете использовать его как интерпретатор.


7

Посмотрите на Ch Interpreter .

Ch - это встраиваемый интерпретатор C / C ++ для межплатформенного написания сценариев, программирования оболочки, построения 2D / 3D-графиков, численных вычислений и встроенных сценариев.





3

ccons, похоже, удовлетворяет вашим ограничениям:

Цель проекта ccons - создать интерактивную консоль для языка программирования C, подобную «python» и «irb» для Python и Ruby соответственно. Проект построен на основе clang и llvm.




1

Это было сделано, даже несмотря на то, что большая часть работы на C скомпилирована. Один из примеров - CH


0

В CERN есть инструментарий ROOT, который предназначен в основном для научных целей, анализа данных и т. Д., Но у него есть вызываемый интерпретатор C / C ++ на основе Clang Cling.

Они использовали интерпретатор C под названием CINT, прежде чем адаптироваться Cling. CINT легок и, похоже, все еще доступен для загрузки.

Я думаю, вы можете получить что-то другое, внимательно просматривая статьи списка Википедии.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.