Есть ли интерпретатор для C?

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

Ответов (13)

Решение

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

Известный интерпретатор - " 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 -

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

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

Проверить iGCC

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

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

Вы можете использовать CompCert. Вот несколько примеров: http://compcert.inria.fr/man/manual004.html

Совсем недавно появился Cling (на основе LLVM / Clang)

http://root.cern.ch/drupal/content/cling

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

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

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

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

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

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

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

cinterp для начала.

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

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

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