Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 04.02.2009, 20:22   #1
aureli0
ПроЭктировщик
 
Регистрация: 19.03.2007
Сообщений: 134
Написано 10 полезных сообщений
(для 20 пользователей)
Печаль ?интропретатор

Подскажите, лучше на пальцах%), как можно реализовать простенький интропретатор скриптов внутри своей программы, хотя бы такого примерно вида

а=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;
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 21:05   #2
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: ?интропретатор

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

на пальцах есть 3 стадии:
1. лексический анализ
вход: текст программы
выход: список лексем (они же токены)
2. грамматический анализ
вход: список лексем
выход: абстрактное синтаксическое дерево (узлы - операции, листья - операнды)
3. кодогенерация
вход: АСТ
выход: либо машинный код, либо байт-код для виртуальной машины, либо список непосредственных вызовов = интерпретация.

читать:
http://ru.wikipedia.org/wiki/Интерпретатор
http://progopedia.ru/
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
aureli0 (14.02.2009), impersonalis (04.02.2009), newman (04.02.2009), Phantom (04.02.2009)
Старый 04.02.2009, 21:48   #3
jimon
 
Сообщений: n/a
Ответ: ?интропретатор

aureli0
можно потратить около 4 дней опытного программирования на полное написание нужной тебе вещи, а можно использовать уже готовые скриптовые движки
в принципе любой язык можно превратить в скриптовый (даже C++)
но самые простые реализации в плане подключения к C++ имеют Angelscript и Lua

если всё же хочется написать свой язык то тебе надо будет написать две разноплановых куска кода : компилятор и виртуальную машину
компилятор будет компилировать входной файл в некий твой байт код (по-сути это некий набор asm подобных команд), а виртуальная машина будет сопоставлять байт коду аналогии из команд на языке выполнения
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо за это полезное сообщение:
aureli0 (14.02.2009), newman (04.02.2009)
Старый 04.02.2009, 22:17   #4
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: ?интропретатор

jimon, человек ясно написал, что ему нужени ?интропретатор. такчто компиляцию в байткод можно убрать. можно обойтись одной виртуальной машиной, которая будет сопостовлять строки аналогам из команд на языке выполнения.
(Offline)
 
Ответить с цитированием
Старый 05.02.2009, 12:03   #5
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: ?интропретатор

На геймдеве есть кое-что интересное этому поводу !!
Написание интерпретатора скриптов на С++: http://www.gamedev.ru/articles/?id=70118
Реализация Скрипт-Движка: http://www.gamedev.ru/articles/?id=70104

Также, если порытся в исходниках на програмистских форумах по С++, почти на каждом можно найти примеры компиляторов и интерпретаторов !! Например, вот: http://sources.codenet.ru/?cid=5
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
aureli0 (14.02.2009)
Старый 14.02.2009, 13:02   #6
aureli0
ПроЭктировщик
 
Регистрация: 19.03.2007
Сообщений: 134
Написано 10 полезных сообщений
(для 20 пользователей)
Re: ?интропретатор

Спасибо большое. Заинтересовал Lua. Темболее что есть в стандартном репозитории
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертирование кодировки utf для отображk Kurdt Основной форум 48 29.03.2010 22:37
Лабиринт с шариком внутри ( проблемка) klopmaks Blitz3D 29 11.12.2008 04:36
Работа нескольких программ в одной anton_obuhov Основной форум 4 10.09.2008 11:15
А вот и ещё тема по текстурированию ландшk CRASHER Создание текстур 4 16.01.2008 18:10
не могу в Physx поворачивать Joint быстро, помогите! CRASHER Физика 18 12.01.2008 17:55


Часовой пояс GMT +4, время: 15:43.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com