LINUX.ORG.RU

Дак Мартин Фаулер, который в свое время на ООП-моде бабла с лохов поднял, тоже уже давно про DSL пишет. Знает куда ветер дует.

anonymous
()

Ссылки на pcweek в приличном обществе ... ну-ну

antares0 ★★★★
()

Всем кто сомневался в эффективности DSL посвящается :)

По прочтению стал сомневаться ещё больше.

archimag ★★★
()
Ответ на: комментарий от archimag

По прочтению стал сомневаться ещё больше.

А я, вообще, не смог дочитать. Застрял на начале второй статьи :(

dave ★★★★★
()

!Ъ:

http://www.vpri.org/vp_wiki/index.php/Main_Page

Tamacola is a Scheme like self-hosting language running on Adobe Flash Player and Tamarin VM based on COLA project.

Text Field Spec for LObjects is an active essay that uses rules to specify word wrap of text and a reasonably complete text editor. Download a Squeak image and changes file from http://tinlizzie.org/lesserphic2/Text Field for LObject.zip To run this you will need a Squeak VM and the file SqueakV3.sources. Almost any Squeak VM will work. The rules are live inside the essay, and you can modify them. The goal is to have a readable essay that is also compact and runable metacode for a complex program.

Jitblt is a modified version of the Pixman library that uses COLA to perform just-in-time compilation for real-time image compositing. It is available at http://github.com/damelang/jitblt.

OMeta/JS is a system for matching and rewriting patterns in JavaScript data structures. It is available at http://github.com/alexwarth/ometa-js. You can also use it directly from your web browser (no installation required) through the OMeta/JS Workspace Wiki.

Mico is an experimental interactive SVG viewer. It is available at http://github.com/damelang/mico.

LYSP is a tiny (maybe even pedagogical) Lisp interpreter. It serves as a test bed for a small, precise garbage collector that may be integrated into the COLA object system. It's also my 'hats off' to John McCarthy to celebrate the 50th anniversary of Lisp. It can be downloaded here.

ABCSX is a byte code assembler / dissembler for the Adobe ActionScript Virtual Machine 2. It is used as a back end of COLA/Flash compiler. It is available at http://github.com/propella/abcsx.

JOHN-COLA is an automated planner and constraint handler program written as a COLA library. Source and links to documentation are here: http://github.com/hesam/JOHN-COLA-Planner-Library.

ESSQ is an experiment in «executable specifications» for Squeak. Source and documentation links are here: http://github.com/hesam/ESSQ. A version for Java is also available.

Gezira is a 2D vector graphics renderer written in the Nile programming language. Source code is available at http://github.com/damelang/gezira

Maru is a symbolic expression evaluator that can compile its own implementation language. Source code is available at Maru Source and Piumarta Temporary Location for Maru and there appears to be a branch with some improvements at Maru Fork and another fork if you want to play with it on OSX Maru OSX port

quasimoto ★★★★
()
Ответ на: комментарий от trex6

Правильный Ъ:

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

anonymous
()

Алан Кей, автор ... графического интерфейса и многих других повседневных айтишных вещей.


???

Dragon59 ★★
()
Ответ на: комментарий от quasimoto

Не знаю что там с DSL но Smalltalk software требует реализации Smalltalk строк так на 100.000, высокоуровневые предметно-ориентированные языки тоже требуют реализаций (и если target язык должен быть эффективным, то немаленьких, при этом host язык, Smalltalk, не очень то шустрый и компактный). Тут есть ещё проблема в том, что эти DSL можно будет выкинуть сразу как только их предметные области потеряют актуальность (бакенд типа flash или javascript, описываемая железячная архитектура или сетевой протокол).

quasimoto ★★★★
()

свободной и открытой, не требующей инсталляции ОС, содержащей в себе все и работающей на множестве платформ.

сферическое число пи в вакууме ))

Bad_ptr ★★★★★
()
Ответ на: комментарий от archimag

От тебя, дурака, другого и не ждали, у тебя и Лисп не алгебра.

anonymous
()
Ответ на: комментарий от quasimoto

Как раз наоборот. С dsl код может пережить множество разных реализаций самого dsl и низлежащих языков и платформ.

anonymous
()
Ответ на: комментарий от anonymous

А где у них код лежит (на vpri.org что-то ничего интересного)? Или это просто концепции и нужно смотреть статьи?

quasimoto ★★★★
()
Ответ на: комментарий от quasimoto

интересное есть в проекте fonc , и COLA : http://piumarta.com/software/cola/

Take a look at some of the documents available at http://www.vpri.org/html/writings.htm like http://www.vpri.org/pdf/steps_TR-2007-008.pdf where they describe a TCP/IP stack implemented in less than 200 lines of code, or a version of Prolog in about 90 lines of code

(17 cтраница)

проект fonc = foundations of new computing, этот TCP/IP стек относится к FONC

http://vpri.org/fonc_wiki/index.php/Idst

anonymous
()
Ответ на: комментарий от anonymous

по мнению Кея, объекты не так важны, как метасистема и метапрограммирование. Метасистема — это то, что делает систему программирования полезной, ну для начала хотя бы такой неполноценной реализацией, как объекты.

anonymous
()
Ответ на: комментарий от quasimoto

но Smalltalk software требует реализации Smalltalk строк так на 100.000,

это если брать полноценную реализацию по стандарту Smalltalk-80, хотя бы. Есть более компактные реализации, например от создателя Явы Gilad Bracha NewSpeak http://bracha.org/Site/Newspeak.html или COLA http://piumarta.com/software/cola/

Тут есть ещё проблема в том, что эти DSL можно будет выкинуть сразу как только их предметные области потеряют актуальность (бакенд типа flash или javascript, описываемая железячная архитектура или сетевой протокол).

эээ... протокол TCP/IP потеряет актуальность? http://www.moserware.com/2008/04/towards-moores-law-software-part-3-of-3.html

Let's say we want to build the TCP/IP stack of an operating system. A traditional implementation might take 10,000 lines of code. What if you rethought the design from the ground up? What if you could make the IP packet handling code look almost identical to the RFC 791 diagram which defines IP? That's exactly what the Viewpoints team did. This is real code in their system:

and the TCP stack is similar to the RFC 793 diagram:

That's right; the ASCII art diagram is the code.

anonymous
()
Ответ на: комментарий от buddhist

Но, емнип, первые окошечки таки были в средах Smalltalk.

всё-таки как бы не в лисп машинах. А потом уже на них делали смоллток (потому что больше не на чём было), и Xerox Star, Xerox Palo Alto и т.п. из PARC labs.

первая гуйня же как бы не в Mother of All demos , AUGMENT/NLS (первый реальный гипертекст вместо vapourwave Xanadu Теда Нельсона) от Дуга Энгельбарта (того, который мышку придумал): http://www.youtube.com/watch?v=JfIgzSoTMOs

anonymous
()
Ответ на: комментарий от anonymous

состояние STEPS/fonc за 2011 год: http://ailev.livejournal.com/960827.html

гыгыгы, когда Завалишин со своим фантомом грозится устроить революцию и показывает нам тетрис и куцый либс (хорошо, что хоть образ для виртуалки сделали) — тут ТАКОЕ...

anonymous
()
Ответ на: комментарий от anonymous

эээ... протокол TCP/IP потеряет актуальность? http://www.moserware.com/2008/04/towards-moores-law-software-part-3-of-3.html

думаю, что реализовав IPv4 подкрутить DSL до IPv6 должно быть не слишком сложно. Сохранив при этом генерацию из RFC, наследование порождающих грамматик, и т.п.

anonymous
()
Ответ на: комментарий от buddhist

а! в лисп машинах — тайловый wm, фреймы, емаксы :)

а полноценные перекрывающиеся окошечки — в смоллтоке :))

anonymous
()
Ответ на: комментарий от anonymous

Созвучно:

Joe Armstrong: I think I gave some lectures to QCon. I think it was a big mistake made in something like RFC24 or something. It was the simple mail transfer protocol where the transport protocol was defined in text with an ABNF grammar to define it. Then people sort of tended to reproduce earlier things. They cut and paste and old spec and changed it a bit. If the original RFCs have been defined using s-expressions, then you wouldn’t have something like 4500 different grammars between these components that we use. It is a dreadful mess.

Joe Armstrong: Yes. Because I think that people first of all write a problem, they solve the problem and then they sort of optimize this code, work on it and the code becomes very efficient but unreadable. What I think they should doing is specifying it with a domain specific language or some higher thing and then writing a compiler and then changing the compiler because it’s not efficient. Because then they would have the benefits of a clear specification and a fast implementation. What they do is they don’t keep these things separated and the language doesn’t support them separating it like that.

отсюда. В его тезисах тоже подобные идеи можно встретить.

quasimoto ★★★★
()

Далеко не набегут, как только сдохнет java и си, и появятся языки с гибким синтаксисом где можно будет легко писать dsl то какбы и набигать будет незачем, а пока это никому не нужная фантастика.

belous_k_a
()

ООП закончит свой срок раньше ФП. Я не про Лисп, я про Haskell. Вот что действительно должно быть эффективным, если научиться его использовать.

Deleted
()
Ответ на: комментарий от belous_k_a

Примеры?

ITA Software - гугл заплатил за них 700 млн. американских денег.

Про собственные примеры рассказывать больше не могу, ибо меня недавно настоятельно попросили не распространяться на эту тему :)

archimag ★★★
()
Ответ на: комментарий от april

В Emacs есть все, что может понадобиться.

Пытался найти инструмент рефакторинга C++… Но нету в жизни счастья

ЧИТД, тем более мне надо для java а не совокупляться с настройками.

belous_k_a
()
Ответ на: комментарий от anonymous

Если емакс - война и мир, то это комиксы по мотивам толстого.

и нужны не примеры контор которые использую емакс, а продуктов.

belous_k_a
()
Ответ на: комментарий от belous_k_a

belous_k_a

ЧИТД

Разве что то, что ты не умеешь искать информацию.

belous_k_a

а не совокупляться с настройками.

Тогда Emacs не для тебя.

Но мы отклонились от темы - речь шла о том, что написано на лиспе. Расширения для Emacs есть практически для всего (сбивать спутники пока не умеет, разве что), а они написаны на лиспе.

april
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.