Мне было интересно, есть ли что-то вроде интерпретатора для C. То есть в терминале Linux я могу ввести «python», а затем написать код в этом интерпретаторе. (Я не уверен, что переводчик правильное слово). Это действительно полезно для тестирования разных вещей, и мне любопытно, существует ли что-то подобное для C. Хотя я сомневаюсь в этом. Единственное, что я могу придумать, это оболочка C ...
Есть ли интерпретатор для C?
Ответы (13)
Их много. Если вы сузите объем своего вопроса, мы сможем чтобы предложить что-то конкретное для ваших нужд.
Известный интерпретатор - Ch: Интерпретатор C / C ++ для скриптовых вычислений, подробно описанный у доктора Доббса:
Ch - это полный интерпретатор C, который поддерживает все языковые функции и стандартные библиотеки стандарта ISO C90, но расширяет C многими высокоуровневыми функциями, такими как строковый тип и вычислительные массивы, как объекты первого класса.
Стандарт Ch является бесплатным ПО, но не с открытым исходным кодом. Только Ch professional имеет возможности построения графиков и другие функции, которые могут понадобиться.
Я никогда раньше не смотрел на это, но наличие интерпретатора c под рукой звучит очень полезно, и я, вероятно, добавлю кое-что в свой набор инструментов. Спасибо за вопрос!
Редактировать:
Только что выяснил, что один из моих любимых компиляторов, TCC, будет выполнять сценарии C:
Он также обрабатывает файлы сценария C (просто добавьте строку shebang #! / Usr / local / bin / tcc -run в первую строку файла исходного кода C в Linux, чтобы он выполнялся напрямую.
TCC может читать исходный код C из стандартного ввода, если вместо infile используется "-". Пример:
echo 'main(){puts("hello");}' | tcc -run -
tcc
по умолчанию завершает работу со статусом 10
. Похоже, вам нужно явно добавить return 0
, дающий echo 'main(){puts("hello"); return 0;}' | tcc -run -
- person Gregory Nisbet; 24.12.2016
picoc - очень маленький интерпретатор языка Си.
PicoC - очень маленький интерпретатор C для написания сценариев. Первоначально он был написан как язык сценария для бортовой системы полета БПЛА. Он также очень подходит для других роботизированных, встроенных и невстроенных приложений.
проект ROOT предоставляет очень функциональный интерпретатор C и C ++ под названием Cint. Мне это очень нравится. Однако нужно немного привыкнуть к интерпретации.
TCC - тоже очень хороший выбор, но я не могу поручиться за его REPL.
Наверное. Для c ++ их несколько. См. Использовали ли вы какой-либо из C ++ интерпретаторы (не компиляторы)? для примеров. Безусловно, cint съест почти любой код c с хорошими результатами и tcc настолько быстр, что вы можете использовать его как интерпретатор.
Взгляните на Ch Interpreter.
Ch - это встраиваемый интерпретатор C / C ++ для межплатформенного написания сценариев, программирования оболочки, построения 2D / 3D-графиков, численных вычислений и встроенных сценариев.
Я знаю, что мы используем CINT в классе. Выглядело неплохо, возможно, вы захотите попробовать!
cinterp
- это для начала.
Совсем недавно появился Cling (на основе LLVM / Clang)
http://root.cern.ch/drupal/content/cling
Вы можете использовать CompCert. Вот несколько примеров: http://compcert.inria.fr/man/manual004.html а>
ccons, похоже, удовлетворяет вашим ограничениям:
Цель проекта ccons - создать интерактивную консоль для языка программирования C, подобную «python» и «irb» для Python и Ruby соответственно. Проект построен на основе clang и llvm.
Это было сделано, даже несмотря на то, что большая часть работы на C скомпилирована. Одним из примеров является CH.
В CERN есть инструментарий под названием ROOT, который предназначен в основном для научных целей или анализа данных и т. Д., Но в нем есть интерпретатор C / C ++ на основе Clang под названием Cling
.
Они использовали интерпретатор C под названием CINT, прежде чем адаптировали Cling
. CINT легок и, кажется, все еще доступен для загрузки.
Я думаю, вы можете получить что-то другое, внимательно просматривая статьи списка Википедии.