Сахарница
От: Tuo_Bellas Россия  
Дата: 25.07.06 19:08
Оценка:
Всем привет!

Есть сторонний скриптовый язык с небольшой и четко определенной грамматикой (EBNF). Стоит задача добавить в этот язык определенное количество жизненно необходимого "синтаксического сахара". Думаю идти путем трансляции "подслащенных" исходников в нативный код, и скармливания полученного кода нативному интерпретатору.

Похоже, что нужно уметь распарсить "сладкий" исходник, построить абстрактное синтаксическое дерево, и сохранить это дерево уже в нативном формате.

Задача совпала с желанием освоить какой-нибудь новый язык . Подскажите пожалуйста "идеальное" на ваш взгляд средство/набор средств решения задачи. (Пока смотрю на Cactus под Haskell, но шведский не понимаю совершенно... )

Спасибо,
Tuo_Bellas.
Re: Сахарница
От: Lloyd Россия  
Дата: 25.07.06 19:14
Оценка: :))) :))) :)
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Всем привет!


T_B>Есть сторонний скриптовый язык с небольшой и четко определенной грамматикой (EBNF). Стоит задача добавить в этот язык определенное количество жизненно необходимого "синтаксического сахара". Думаю идти путем трансляции "подслащенных" исходников в нативный код, и скармливания полученного кода нативному интерпретатору.


T_B>Похоже, что нужно уметь распарсить "сладкий" исходник, построить абстрактное синтаксическое дерево, и сохранить это дерево уже в нативном формате.


T_B>Задача совпала с желанием освоить какой-нибудь новый язык . Подскажите пожалуйста "идеальное" на ваш взгляд средство/набор средств решения задачи. (Пока смотрю на Cactus под Haskell, но шведский не понимаю совершенно... )


Чую, Влад на подходе.
Re: Сахарница
От: McSeem2 США http://www.antigrain.com
Дата: 25.07.06 19:19
Оценка: -2 :))) :)))
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Задача совпала с желанием освоить какой-нибудь новый язык . Подскажите пожалуйста "идеальное" на ваш взгляд средство/набор средств решения задачи. (Пока смотрю на Cactus под Haskell, но шведский не понимаю совершенно... )


Ну конечно же, Nemerle! Это такой Всемогутор Абсолютный, который позволяет решать Принципиально Нерешаемые Задачи. Правда при этом получается Принципиально Непостижимый Результат, но тут уж выбирать не приходится — таков закон природы.

McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: Сахарница
От: Mikl Kurkov Россия  
Дата: 25.07.06 20:14
Оценка: 4 (1)
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Всем привет!


T_B>Есть сторонний скриптовый язык с небольшой и четко определенной грамматикой (EBNF). Стоит задача добавить в этот язык определенное количество жизненно необходимого "синтаксического сахара". Думаю идти путем трансляции "подслащенных" исходников в нативный код, и скармливания полученного кода нативному интерпретатору.


T_B>Похоже, что нужно уметь распарсить "сладкий" исходник, построить абстрактное синтаксическое дерево, и сохранить это дерево уже в нативном формате.


T_B>Задача совпала с желанием освоить какой-нибудь новый язык . Подскажите пожалуйста "идеальное" на ваш взгляд средство/набор средств решения задачи. (Пока смотрю на Cactus под Haskell, но шведский не понимаю совершенно... )


T_B>Спасибо,

T_B>Tuo_Bellas.

Да Haskell хороший выбор, особенно с учетом совпавшего желания.

Ну вот еще интересный на мой взгляд вариант — TXL. Как раз для таких задач разрабатывался.
Здесь
Автор: Mikl Kurkov
Дата: 15.07.05
и здесь
Автор: Mikl Kurkov
Дата: 20.07.05
маленько обсуждали.

Если задачи не очень сложные то можно попытаться какой-нибудь макропроцессор приспособить, M4 например. Я как-то использовал его для подслащивания SQL. Но этот сахарок на любителя, с привкусом.

--
Mikl
Re: Сахарница
От: граммофон  
Дата: 25.07.06 20:53
Оценка: 19 (2)
Здравствуйте, Tuo_Bellas, Вы писали:


T_B>Задача совпала с желанием освоить какой-нибудь новый язык . Подскажите пожалуйста "идеальное" на ваш взгляд средство/набор средств решения задачи. (Пока смотрю на Cactus под Haskell, но шведский не понимаю совершенно... )



Если чем мощнее, тем лучше, то ASF+SDF или Stratego

TXL тут уже посоветовали, но он, конечно, заметно послабее будет.
Да и закрытый.
прежде чем понять рекурсию, необходимо понять рекурсию.
Re[2]: Сахарница
От: Дарней Россия  
Дата: 27.07.06 03:43
Оценка:
Здравствуйте, граммофон, Вы писали:

Г>Если чем мощнее, тем лучше, то ASF+SDF или Stratego


Интереснейшие штуки!
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re: Сахарница
От: _Obelisk_ Россия http://www.ibm.com
Дата: 27.07.06 05:09
Оценка: 4 (1)
Здравствуйте, Tuo_Bellas, Вы писали:


T_B>Задача совпала с желанием освоить какой-нибудь новый язык . Подскажите пожалуйста "идеальное" на ваш взгляд средство/набор средств решения задачи. (Пока смотрю на Cactus под Haskell, но шведский не понимаю совершенно... )



Более полного набора тулов для разработки сканнеров, парсеров, и работы с AST-ами, чем в Cocktail-е (http://www.cocolab.com/en/cocktail.html) я не видел. Только сей тул коммерческий.



Душа обязана трудиться! (с) Н.Заболоцкий.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.