Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание скриптового языка 
:(
    Опции темы
gambit
  Дата 20.1.2007, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?




Подскажите ссылки на статьи посвященные созданию скриптового языка в своей проге.
FastScript смотрел, это не совсем то потому что код заранее есть, а я хочу синтаксис написать сам т.к. этот язык будет управлять объектами в игре.
PM MAIL ICQ Skype   Вверх
Тутанхамец
Дата 20.1.2007, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!




В поставку VB6 входит MS Script Control. Он понимает VBScript. Я так думаю, что раз это ActiveX, то его можно использовать и в Delphi.
PM MAIL   Вверх
drkot
Дата 20.1.2007, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006




Pascal Script поиск в гугле.
либо книги по созданию компиляторов.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
nerezus
Дата 20.1.2007, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005




gambit, используй lua или python
Это будет умным решением.

Насчет неумных(ибо круче питона или быстрее lua ты не осилишь):
1) Интрпретировать построчно - глупо. Ибо сложнее и медленнее. Поэтому делим интерпретатор на компилер и VM.
2) Компилер. Преобразует код в байткод. Собственно тут надо думать. Это будет самая сложная часть.
3) VM: выполняет байткод. Делаешь набор байтов - это память. И изображаешь из себя интерпретатор асмоподобного кода. Это легко.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Romikgy
Дата 20.1.2007, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa




http://jansfreeware.com/jfdelphi.htm
Цитата

TjanScript

30-July-2000 size:296kb
TjanScript is Delphi native, Forth style, script component that supports include files, variants, variables, nested: procedures, if/else and repeat..until; external variables and system calls through events; XML DOM support including pattern based selection for server side page generation. The script is precompiled before it is run. Suitable for use as: general and server side scripting, expression evaluator, TDataSet onFilterRecord evaluator etc. Extensive help file and EXE demo included.

http://www.citforum.ru/programming/delphi/msdelphi/


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
gambit
Дата 20.1.2007, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?




Спасибо всем, особенно Romikgy, как наберу 100 постов обязательно поставлю +.
А еще меня интерисует как сделанно в языках: строчки выполняются разное кол-во времени и пока текущая строчка не выполнена новая не читается
PM MAIL ICQ Skype   Вверх
Romikgy
Дата 20.1.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa




Цитата(gambit @  20.1.2007,  16:42 Найти цитируемый пост)
строчки выполняются разное кол-во времени и пока текущая строчка не выполнена новая не читается 

выполняй не кучей а построчно, но не уверен


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
gambit
Дата 20.1.2007, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?




Romikgy, 
Цитата

выполняй не кучей а построчно, но не уверен

Так в этом и проблема, как выполнять построчно

Добавлено @ 21:23 
Знак ? в конце забыл.
PM MAIL ICQ Skype   Вверх
Romikgy
Дата 20.1.2007, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa




смотря в чем, и (если честно ) я этими скриптами не пользовался smile не было надобности....
А вообще если объект интерпретатора скрипта, содержит в се память переменных и структур , то в полне можно имхо и построчно юзать его


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
gambit
Дата 20.1.2007, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?




Romikgy, я имею ввиду то что если я создаю свой язык, то
как прочитать строчку файла, выполнить, а потом прочитать другую.
Т.е. затормозить чтение файла на неопределенное время.
PM MAIL ICQ Skype   Вверх
Romikgy
Дата 20.1.2007, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa




Цитата(gambit @  20.1.2007,  20:41 Найти цитируемый пост)
чтение файла 

Код

readln(идентификатор файла, переменная строки);

вот этой ф_цией читаешь файл построчно


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
gambit
Дата 20.1.2007, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?




Romikgy,  
Цитата

readln(идентификатор файла, переменная строки);
smile

Добавлено @ 22:25 
Ты самто как думаеш если я решаю вопрос скриптового языка, я могу прочитать из файла??? smile  smile  smile 
PM MAIL ICQ Skype   Вверх
Romikgy
Дата 22.1.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa




Цитата(gambit @  20.1.2007,  21:22 Найти цитируемый пост)
Ты самто как думаеш если я решаю вопрос скриптового языка, я могу прочитать из файла???

эта фраза к тому что слишком просто для тебя или что?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
gambit
Дата 22.1.2007, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?




Romikgy, ну просто это самое простое.
Проблема:
предположим есть конструкция языка которая должна очень долго выполнятся.
Предположим огромная рекурсивная процедура.
Так вот надо сделать так чтобы новая строчка невыполнялась пока не выполнится та процедура.
PM MAIL ICQ Skype   Вверх
Romikgy
Дата 22.1.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa




Цитата(gambit @  22.1.2007,  16:07 Найти цитируемый пост)
Так вот надо сделать так чтобы новая строчка невыполнялась пока не выполнится та процедура. 

а как у тя реализовано выполнение строчки? в отдельном потоке или в основном?
имхо флаги можно устанавливать, в самом ядре скрипт-энжайна


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:


Глас Философии:


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Флейм | Следующая тема »


 




[ Время генерации скрипта: 0.0636 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.