Ada_Ru форум

Обсуждение языка Ада

DSL - domain specific language

Оставить новое сообщение

Сообщения

teplouhov
DSL - domain specific language
2005-09-07 06:27:26

Hello.

 

 

(1)

Вот короче по спецязыкам кое-что нашлось...

Есть оказывается даже аббревиатура для этих штук(DSL),

ну и кое-какие обзорные сайты нашлись ;)

 

 

http://compose.labri.fr/documentation/dsl/dsl_resources.php3

- ссылки на различные проекты спецязыков

 

(Кстати, кто что думает насчет использования Devil, Rebol и тп

на практике?)

 

 

 

(2)

По синтаксису вот прикольная штука - можно быстро все

лепить на одной примочке - от лексера до кодогенератора

в одном флаконе...

 

ftp://ftp.stratego-language.org/pub/stratego/docs/sdfintro.pdf 18K

- краткое введение

http://www.cwi.nl/projects/MetaEnv/meta/doc/manual.pdf 367K

- документация

 

Кстати, кто что думает насчет возможности использования

этой самой "ASF+SDF" практически? (Она опенсорсная,

хоть и не на Аде, но это не так важно - лишбы работало ;)

Ну и если что не понравится, то на ней-же ее-же

и переписать можно быстро ;) (меня там привязка к юниксовым

сборникам хлама не прикалывает :/ ) Хотя и на этот счет

написан вроде аккуратно... )

 

 

 

 

В общем по-быстрому слепить любой спецязык и конвертор и/или

компилятор с него похоже не проблема. Хоть с русского матерного :)

Теперь надо подумать какой должен быть язык и чем он будет

более удобен для описания GUI и тп. (особенно интересно тем,

что можно со временем подменить библиотеки реализации на другие,

все то что есть похоже или глючное, или навороченное так что никто

разобраться не может как правильно настроить :) В любом случае если

такие глюки как в большинстве программ - это никуда не годиться...)

Так-же были бы интересны конверторы со всякой срани вроде перла/PHP

в что-то более другое ;) Ну и обратные преобразования - т.е.

с таким "кодогенератором" на выходе, чтобы давал на выходе код PHP/перла

из чего-то более нормального(нужно для хостингов - хостинг с PHP

найти легче чем сервер и дешевле)... Ну или Ц на выходе - в качестве

платформо-независимого ассемблера :)

 

 

Vladimir

PS Кстати, для Ады есть какие-нить библиотеки вроде лиспа/пролога?

Впринципе реализация не большая, а иногда подобные списочные типы

данных удобнее(особенно когда касается eval() для запуска находу

автоматически сочиненного куска программы :) Ну и списком легко

реализуются типы данных с непостоянным размером, вроде алгебраических

полиномов и тп)...

 

-- Using Opera's revolutionary e-mail client: http://www.opera.com/m2/

hi,

 

хм... Чет-та у меня такое впечатление складывается,

что проблема/задача создания кросплатформенного GUI

для Ады начинает уверенно вырождаться в проблему/задачу

создания какого-то компилирующего/интерпретирующего

спец. языка. Причем, _уже_ создается впечатление, что

важность сооружения этого самого спец. языка

значительно превышает важность изначальной задачи

создания кросплатформенного GUI для Ады :-/

 

...или это только у меня такое впечатление складывается?

 

Alex

hi,

 

teplouhov@... wrote:

 

On Wed, 07 Sep 2005 08:55:52 +0300, Oleksandr Havva <alex@...> wrote:

 

hi,

 

хм... Чет-та у меня такое впечатление складывается,

что проблема/задача создания кросплатформенного GUI

для Ады начинает уверенно вырождаться в проблему/задачу

создания какого-то компилирующего/интерпретирующего

спец. языка.

 

А разве оно не возникло с самого начала? ;)

 

Возможно, да, и, возможно, что я что-то упустил в начале дисскуссии.

 

imho, просто, на данный момент прослеживается смещение акцента

с задачи создания GUI на задачу создания спец.языка.

То есть, внешне получается, что нужно создать спец.язык

(причем, обязательно!), а потом как-нить прикрутить к нему GUI.

 

imho, Задачу создания GUI для Ады следовало бы прежде всего

рассматривать с точки зрения необходимой/желательной функциональности,

ресурсоемкости и т.д.

 

А вот какой-либо дополнительный спец.язык - это уже элемент реализации

желаемо/задуманного, но не наоборот.

 

Vladimir

PS Кстати, покапался тут в исходниках линукса - что-то

не представляю как это бы можно

переписать 1:1 на Аде - там во всю используется препроцессор,

условная компиляция и тп, которые не очень-то клеяться к Аде...

(не знаю, может если бы писать сразу и по-другому то вышло

бы может и лучше, но тупо заменить один-в-один думаю

будет проблематично)

 

А зачем, собс-но, переписывать строго 1:1 ???

 

...а может "больной" вопрос звучит несколько иначе,

например, как: "можно ли на Аде написать ядро ОС?"? ;-)

 

 

Alex

On Wed, 07 Sep 2005 08:55:52 +0300, Oleksandr Havva <alex@...> wrote:

 

hi,

 

хм... Чет-та у меня такое впечатление складывается,

что проблема/задача создания кросплатформенного GUI

для Ады начинает уверенно вырождаться в проблему/задачу

создания какого-то компилирующего/интерпретирующего

спец. языка.

 

А разве оно не возникло с самого начала? ;)

 

 

Причем, _уже_ создается впечатление, что

важность сооружения этого самого спец. языка

значительно превышает важность изначальной задачи

создания кросплатформенного GUI для Ады :-/

 

на самом деле проблема боле принципиальная.

(Ну, может это и не проблема совсем - велосипеды уже

давно изобретены ;) )

 

Ада всего лишь алгоритмический язык, и от других

подобных отличается всего лишь мелкими фичами,

хоть и довольно полезными и важными. Но сути это

не меняет - надо четко описывать алгоритм и тп...

 

Есть другие, не совсем алгоритмические :) подходы - это

хорошо известно из проектов вроде лиспа, пролога и всяких

систем на них...

Попытки оставить какой-то один подход, выразив одно

через другое(хотя это и возможно) были, но ни к чему

хорошему не привели - если на языке что-то одно описывается

хорошо, то все остальное получается мягко говоря через

зад (ну как на прологе алгоритмическая программа или

работа с правилами на алгоритмических языках ;) ).

 

Ну, в общем, спорить на тему что первее, круче или

нужнее - куры или яйца ;) - я не вижу смысла...

Правильный подход - нужны и куры, и яйца, IMHO ;)

 

 

 

....или это только у меня такое впечатление складывается?

 

У меня оно с самого начала ;) ;(

 

Vladimir

PS Кстати, покапался тут в исходниках линукса - что-то

не представляю как это бы можно

переписать 1:1 на Аде - там во всю используется препроцессор,

условная компиляция и тп, которые не очень-то клеяться к Аде...

(не знаю, может если бы писать сразу и по-другому то вышло

бы может и лучше, но тупо заменить один-в-один думаю

будет проблематично)

В общем полная замена премитивного Ц-шного макропроцессора

похоже потребует целой кучи наворотов - помимо generic и тп

фич похоже рано или поздно придется изобретать какой-то

механизм для управления проектами, патчей, какой-то

защищенной условной компиляции и тд и тп...

Хотя все логично - чем проще и меньше ограничений в языке,

тем меньше реализация и как бы больше возможностей(самый

крутой в этом смысле - ассемблер - Ц от него

не далеко ушел ;) ), но и меньше возможностей для контроля.

Далее наращивая контроль усложняется реализация, требуется

предоставление больше информации компилятору и тд и тп...

В общем в результате вместо одного примитивного механизма

получается что требуется замена его несколькими

специализированными механизмами для каждого случая

применения и тп (generic понадобился сразу и был

включен в стандарт с самого начала, и судя по наличию

препроцессора в поставке все остальное тоже иногда бывает

нужно, но еще не доделано до контролируемого уровня :) )...

 

-- Using Opera's revolutionary e-mail client: http://www.opera.com/m2/

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти