Как написать скриптовый язык на C? Есть идеи? Links?
Вы можете ознакомиться с книгой "Среда программирования UNIX"
(источник: bell-labs.com)
В В конце книги и почти в последней главе авторы написали небольшой интерпретатор на C с достаточной и подробной информацией шаг за шагом. Очень интересно и очень легко следовать.
Исходный код этого интерпретатора находится здесь
Вы имеете в виду, как написать язык, который интерпретируется на C?
Если да, вам следует проверить Википедию и другие источники по следующим темам:
Это намного больше работы, чем вы думаете... Приятного чтения!
Почему бы не взглянуть на C-код для (простого) языка сценариев? Может Луа? (ссылка )
Возможно, вам также следует прочитать что-нибудь о генераторах парсеров, которые являются первым строительным блоком, который ваша программа может интерпретировать на языке. Второй блок - это фактически делать то, что анализировалось (иногда вы можете интегрировать это в анализатор, он может выполнять функции обратного вызова для каждого токена/каждой анализируемой структуры). Могут помочь простые примеры, такие как разбор и выполнение математических формул.
Есть хорошая, хоть и старая, книга под названием "Создание языковых процессоров для маленьких языков", с которой можно начать. Это очень прагматично и объясняет различные варианты, которые у вас есть, поскольку ваши потребности становятся более сложными.
Кроме того, вы, по сути, захотите изучить пару книг о компиляторах и интерпретаторах. Если вам нужен путь с меньшим сопротивлением, и вы делаете это, чтобы понять концепции, а не то, что вам нужно для занятий или рабочих проектов, рассмотрите альтернативу C, такую как Lisp или Scheme, которая облегчит сборку. на небольших экспериментах. Или узнайте о создании DSL на языках, упрощающих это (Boo, Groovy).
Я бы посоветовал начать с парсера рекурсивного спуска.
Если вам это нравится, то вам определенно следует приобрести копию Dragonbook.
Это действительно общий вопрос, и, скорее всего, он будет закрыт, но эй, я мог бы опубликовать этот ответ: Lua ( http://www.lua.org ) — очень популярный язык сценариев, написанный на C. Вы можете использовать его для вдохновения.