?интропретатор
Подскажите, лучше на пальцах%), как можно реализовать простенький интропретатор скриптов внутри своей программы, хотя бы такого примерно вида
а=2; b=random(5); c=random(5); if a>b then d=0; if a<b then d=1; if a=c and b=c then d=2; |
Ответ: ?интропретатор
человек, тебе не кажется что тебе еще рано думать о таком?
для начала - грамотность. интерпретатор потом - обоснование необходимости. потом - теория. на пальцах есть 3 стадии: 1. лексический анализ вход: текст программы выход: список лексем (они же токены) 2. грамматический анализ вход: список лексем выход: абстрактное синтаксическое дерево (узлы - операции, листья - операнды) 3. кодогенерация вход: АСТ выход: либо машинный код, либо байт-код для виртуальной машины, либо список непосредственных вызовов = интерпретация. читать: http://ru.wikipedia.org/wiki/Интерпретатор http://progopedia.ru/ |
Ответ: ?интропретатор
aureli0
можно потратить около 4 дней опытного программирования на полное написание нужной тебе вещи, а можно использовать уже готовые скриптовые движки в принципе любой язык можно превратить в скриптовый (даже C++) но самые простые реализации в плане подключения к C++ имеют Angelscript и Lua если всё же хочется написать свой язык то тебе надо будет написать две разноплановых куска кода : компилятор и виртуальную машину компилятор будет компилировать входной файл в некий твой байт код (по-сути это некий набор asm подобных команд), а виртуальная машина будет сопоставлять байт коду аналогии из команд на языке выполнения |
Ответ: ?интропретатор
jimon, человек ясно написал, что ему нужени ?интропретатор. такчто компиляцию в байткод можно убрать. можно обойтись одной виртуальной машиной, которая будет сопостовлять строки аналогам из команд на языке выполнения.
|
Ответ: ?интропретатор
На геймдеве есть кое-что интересное этому поводу !!
Написание интерпретатора скриптов на С++: http://www.gamedev.ru/articles/?id=70118 Реализация Скрипт-Движка: http://www.gamedev.ru/articles/?id=70104 Также, если порытся в исходниках на програмистских форумах по С++, почти на каждом можно найти примеры компиляторов и интерпретаторов !! Например, вот: http://sources.codenet.ru/?cid=5 |
Re: ?интропретатор
Спасибо большое. Заинтересовал Lua. Темболее что есть в стандартном репозитории
|
Часовой пояс GMT +4, время: 13:19. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot