![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
Для начала задам простой вопрос:
На сколько сложно создать скриптовый язык на Java? И чего в результате возможно достичь? Понятно что создавая свой скриптовый язык (конечно тщательно его описать) возможно давать другим возможность писать код для своей же программы. Мне не понятна ещё одна вещь: каким образом тот самый "другой" программист прогоняет цвой код не компилируя? или я просто ничего в этом не понимаю... короче, давайте поговорим о создании скриптовых языков на Джаве... |
|||
|
||||
| nornad |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Ответ на простой вопрос - зависит от того, как ты его себе представляешь. ;)
Я как-то делал скриптовый язык на основе XPath. Занятная штука. Есть свои ограничения, но и плюсов масса. Если же писать свой движок с нуля, то сложнее, конечно. Но вполне реально.
Легко. Думаешь проще написать компилятор? ;) Не-а. Интерпретатор куда проще. Определяешь основные конструкции скрипта. Идёшь по шагам и выполняешь то, что требует скрипт. Вот и вся недолга. Чтобы было проще понять, попробуй представить себе, как бы ты реализовал обработку такого скрипта:
-------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||
|
|||||
| nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
|
||||
|
|||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
если я правильно понимаю, интерпретатор парсит текст и его вуполняет, тоже не так уж просто... Какие ещё варианты есть, если не базироваться на XML? |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Интерпретатор только интерпретирует. В принципе, выполнять он не обязан. Для того, чтобы скомпилировать исходный код сначала требуется его интерпретировать. То бишь, компиляторы тоже имеют интерпретатор. На основе информации, полученной при интерпретировании, можно делать различные вещи - выполнять, компилировать, производить перевод на другой язык... (кстати, не только программирования Никто и не говорил, что обязательно надо на чём-то базироваться, тем более на хмле. Это я вспоминал довольно интересный период в своей практике. Делать можно вообще с нуля. Для этого надо для начала описать свой скриптовый язык и его основные конструкции. Затем написать свой парсер, который будет разбирать код на атомы. А там уже и интерпретатор не за горами - из атомов выбирать необходимые довольно просто. В плане общего знакомства рекомендую почитать Шилдта. Не скажу, что мне у него всё нравится, но в общем познакомиться с областью для начала хватит. Я читал "С++. Архив программ", но, насколько знаю, он этот свой минибейсик часто в книгах приводит. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
На самом делел это не есть моя цель, а цель как раз: просто и быстро добиться имплементирования скриптового языка. По этому и думал воспользоваться уже готовой базой, только вот не знаю какой. Отыскал я следующие вещи: http://java-source.net/open-source/scripting-languages. Какой из этих максимально гибок, так что бы можно было его под себя подкрутить? |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Не работал ни с одним из них, так что ничего не скажу. Кроме того, что всякие Ruby, Tcl и иже с ними дадут синтаксис, а выполнять. вроде бы, будет уже жаба.
В любом случае, использовать один из готовых будет быстрее и менее накладно, чем делать своё. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| RebornCrusader |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 18.1.2007 Где: Владивосток Репутация: 2 Всего: 6 |
Как на счёт BeanShell или Janino? Последний работает почти с настоящей Javой
--------------------
"Fais se que dois, - adviegne que peut. C'est commande au chevalier" |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Jython
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |