LINUX.ORG.RU

Вышел новый релиз реализации языка Common Lisp - Clozure CL 1.5

 ,


0

0

Вышел новый релиз реализации языка Common Lisp - Clozure CL 1.5. Этот релиз включает много исправлений и улучшений:

  • Изменена версия FASL файла и образа памяти по сравнению с 1.4. Для перехода на версию 1.5 необходимо пересобрать все старые FASL файлы.
  • [Mac OS X] Ядро лисп системы собрано с SDK 10.5 поэтому небходима версия Mac OS X Leopard или выше.
  • Улучшена стандартная функция CL:RANDOM. Используется MRG321k3p генератор с периодом 2^185.
  • опция PURIFY теперь поддерживается на х86 архитектурах. PURIFY'ed объекты копируются в область памяти, которая не сканируется сборщиком мусора. Pезультатом может быть увеличенная скорость сборки мусора, a также улучшено совместное использование виртуальной памяти, если одновременно запущенно несколько процессов.
  • REBUILD-CCL теперь подавляет предупреждения при измении констант.
  • Переменные ввода/вывода связанные WITH-STANDARD-IO-SYNTAX (*PRINT-BASE*, *PRINT-ARRAY*, etc.) теперь локальны для каждого треда.
  • Добавлены бивалентные векторы. Они похожи на строковые потоки, только используются векторы размером (UNSIGNED-BYTE 8).
  • Ядро системы загружает только образ памяти, имя файла которого состоит из «kernel_name» + ".image" суффикс.
  • Улучшены утилиты анализа памяти: CCL:HEAP-UTILIZATION, CCL:HEAP-IVECTOR-UTILIZATION.

Поддерживаемые платформы:

  • Mac OS X 10.5 и позже(x86, x86-64, ppc32, ppc64)
  • Linux (x86, x86-64, ppc32, ppc64)
  • FreeBSD 6.x и позже (x86, x86-64)
  • Solaris (x86, x86-64)
  • Microsoft Windows XP и позже (x86, x86-64)

>>> Подробности



Проверено: isden ()

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

> Задача 3 - определить синтаксическую конструкцию, которая анализировала бы весь код внутри себя, и инжектила бы в него код для логгирования определений переменных.

инжекция кода — в нулевом приближении зло, т.к. две инжекции будут не коммутативны; в первом приближении — она должна быть, но не для этого

данная задача должна решаться локальным расширением типа Object (Any, ...) и последующей перекомпиляцией кода, где нужно логгировать

открытым, однако, остается вопрос о коммутативности расширения типа (в скале уже немного с этим столкнулись)

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

> О, сферический DSL в вакууме всё ближе, вакуума уже в достатке, а вот сферичности не хватает )))

хороший, качественный вакуум тоже не дешев :-)

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

UPDATE: в скале уже немного с этим столкнулись и определили линеаризацию класса.

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

Представь себе, да



Microsoft сама себе роет могилу? «НЕ ВЕРЮ!»

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

> Microsoft сама себе роет могилу? «НЕ ВЕРЮ!»

Зато они уже сейчас могут козырять тем, что .net, якобы, переносим.

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

Ну ясно, сливаешь. «Не нужно» не отмазка.

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

> Какое отношение лямбда к LINQ имеет?

Лямбды - это часть проекта LINQ. Если вы об этом не знали - это ваши сложности.

В общем, ты или студентота, или просто ламер, и не вижу смысла такого никчемного и примитивного в чем-то убеждать.

Анонимус самоутверждается. Есть ли более скучное и банальное зрелище?..

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

> С чего это вдруг «неудобно»?

С того, что фактически язык приходится изобретать заново.

Лисп, тикль и прочие «сильно-мета»-языки - слишком аморфны. Твёрдой базы, за которую можно ухватиться, нет. Все конструкции делаются из одного теста и равноправны - трудно сделать наиболее используемые из них более удобными или читабельными. Всех новых сотрудников приходится обучать своим инхаусным фишкам.

Короче, для ресёрча или выпендривающихся пионеров - хорошая штука. А для работы - не очень.

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

> Чую когда новая Win3000 Zver Edition будет запускаться поверх .net (то есть всё, включая ядро, будет зиждиться на этой платформе), все эти линуксы и макоси смачно соснут,

Phantom OS всё обещают, обещают...

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

> Лисп, тикль и прочие «сильно-мета»-языки - слишком аморфны

Это не так, все эти супер-макросы и eDSL на практике используются достаточно редко. Основное применение макросов - уменьшение дублирование кода. Просто некоторые увлекаются «супер-идеями», но таких среди реально практикующих программистов на Common Lisp меньшинство (хотя встречаются).

А для работы - не очень.


Как раз для работы Common Lisp очень хорошо.

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

в нулевом приближении зло, т.к. две инжекции будут не коммутативны;



«Поммедленнннееее, я запписссываюююю..»©

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

> С того, что фактически язык приходится изобретать заново.

Идиот неграмотный. С чего вдруг?

Лисп, тикль и прочие «сильно-мета»-языки - слишком аморфны.

Бред неграмотной свиньи.

Твёрдой базы, за которую можно ухватиться, нет.

Куда уж тверже? Можно пользоваться любой фичей языка, любым подмножеством. Уж сам то базовый язык очень четко определен, стандарт есть.

Все конструкции делаются из одного теста и равноправны - трудно сделать наиболее используемые из них более удобными или читабельными.

Ну разве не идиот? Идиот, причем клинический. Такой бред человек с мозгом писать не стал бы.

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

> Лямбды - это часть проекта LINQ. Если вы об этом не знали - это ваши сложности.

Сопляк ты убогий. Еще вякни тут, что лямбда-исчисление они для LINQ придумали, ничтожество безмозглое.

LINQ это очень четко определенное API и синтаксис. Все остальное, что в язык было внесено для облегчения реализации LINQ, к самому LINQ не относится.

Ты дебил и быдло.

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

> инжекция кода — в нулевом приближении зло, т.к. две инжекции будут не коммутативны; в первом приближении — она должна быть, но не для этого

Ясно. Слил по всем пунктам. Сопляк.

Даже не способен придумать, как заквотить инжектированный код, чтобы другая инжекция его не затронула. Ламер, короче.

ЛОР, в общем, еще торт. Толпы лохов и идиотов, и ни одного хоть немного вменяемого специалиста. Как всегда.

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

> Сопляк.

твое навязчивое стремление самоутвердится выдает в тебе отчисленного студента 1-2 курса, о Непризнанный Гений!

как заквотить инжектированный код, чтобы другая инжекция его не затронула

ну допустим заквотили;

пусть одна инжекция инжектирует return-ы, а другая инжектирует код для логгирования return-ов; юзер (макромагии) запускает программу — и видит неожиданный незалогированный return

www_linux_org_ru ★★★★★ ()

Дальше, о Непризнанный Гений, тебе придется либо сильно ограничить инжекции, чтобы они все же коммутировали (например, ограничить их только выводом в лог или иным не-мутирующим-основную-программу действием, и тогда все это будет эквивалентно или хуже локального расширения классов), либо придумать алгоритм для введения частичного порядка на инжекциях и потом их топологически сортировать (с возможностью получить «этот набор инжекций несовместим», гы-гы).

Если ты научишься самостоятельно находить хотя бы часть подводных камней в своих идеях и разработаешь подходы, как их обходить — welcome. Я обязательно прочту и покритикую.

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

> Я обязательно прочту и покритикую.
предлагаю встроить в scala что нибудь типа forward reasoning engine (или сразу prolog :), мы ведь о универсальном языке говорим не так ли ? к C# тоже относится. Встроить так чтоб конструции языка были доступны в правилах и привила в самом языке.
Внешние библиотеки + xml-ки или что то с правилами не предлогать - не неудобно совсем, задача кстати весьма практическая и доказать типа ненужность не получится -есть не одна реализация в подобной формулировке

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

> Это не так, все эти супер-макросы и eDSL на практике используются достаточно редко.
я бы сказал асто, смотря как воспринимать :) чем тот же .asd не DSL или cl-pdf ?

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

> я бы сказал асто, смотря как воспринимать :)

Угу, вот это интересно, как воспринимать? Что такое вообще этот eDSL?

чем тот же .asd не DSL


На .asd нельзя программировать, это просто декларативная система с ограниченными возможностями для описания способа загрузки системы.

или cl-pdf


А cl-pdf просто библиотека, api для генерации pdf, почему стоит причислять её к eDSL мне не понятно.

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

> предлагаю встроить в scala что нибудь типа forward reasoning engine (или сразу prolog)

прежде чем прикручивать что-то новое, надо осмотреться, и выяснить, не упущенно ли что-то старое (типа readtable)

если речь идет о логическом выводе во время компиляции — он видимо нужен, вот только пролог не гарантирует терминацию, уж лучше даталог или еще че-то

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

> На .asd нельзя программировать, это просто декларативная система с ограниченными возможностями для описания способа загрузки системы.

Угу, вот это интересно, как воспринимать? Что такое вообще этот eDSL?

что такое вообще это «программирование»?

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

> что такое вообще это «программирование»?

Какой будет твой вариант?

Я много работал с такими DSL как PostScript и XSLT и понимаю, почему это называется domain specific language. Я долго смотрел, например, на PowerLoom - вот там можно смело говорить об eDSL, наверное об eDSL можно говорить и при расмотрении Lisa, но таких проектов мало и о них нельзя сказать, что они широко используются. У меня в /usr/share/common-lisp/source/ более 500 000 строк кода на CL, и я совсем не уверен, что там найдётся какой-либо достойный пример eDSL.

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

> На .asd нельзя программировать, это просто декларативная система с ограниченными возможностями для описания способа загрузки системы.

DSL вроже именно это и есть. Возможно декларативная система с ограниченными возможностями для решения определённой задачи.

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

> DSL вроже именно это и есть. Возможно декларативная система с

ограниченными возможностями для решения определённой задачи.


Не, никто ведь не будет называть HTML DSL-ем, ведь это формат разметки, а не язык программирования. Так же и asdf, это просто формат, которых не содержит в себе гибких возможностей для «программирования способа загрузки системы» (это вообще очень простая и довольно ограниченная система, с множеством недостатков, просто ничего лучше пока нет). А декларативность здесь совершенно не при чём, ибо DSL её не подразумевает. Я исхожу из описания DSL, данного в книге «Искусство программирования для Unix» от Э.Раймонд, где он подробно рассматривает DSL именно как специальный язык программирования.

Кстати, что характерно, широкое использование DSL типично именно для культуры UNIX, но идеалы UNIX никогда не были идеалами Common Lisp, это продукты разных культур.

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

>Я долго смотрел, например, на PowerLoom - вот там можно смело говорить об eDSL,

Наверное, тут имеется в виду язык STELLA, а не сам PowerLoom, который уже на этой самой STELLA написан. Я тут тоже баловался у себя PowerLoom и всякими разными Description Logic решателями. Большинство из них написано на Common Lisp, но в 80-90-х. И коммерческие реализации есть. Например, RacerPro. Она тоже на Common Lisp написана. А потом резко пошли Java и C++, но они в меньшинстве. Объясняю я это тем, что теперь их уже пишет следующее поколение, а не руководители проектов, которые изначально писали на Common Lisp. Сейчас им, видимо, уже не комильфо писать код. :) Мне кажется, что как раз в 90-х произошел провал в CL.

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

> Наверное, тут имеется в виду язык STELLA

Не, STELLA это полноценный язык программирования, хоть и реализованный поверх Common Lisp. Под DSL-ем я здесь понимал способ задания утверждений и выполнения запросов к базе знаний. В Common Lisp, это кстати, выглядит естественно, ибо обмен идёт на базе s-выражений, в отличие от Java и C++ версий, где используется строковое представление.

Мне кажется, что как раз в 90-х произошел провал в CL.


Ну т.к. Norvig кажется в 2001-ом писал, что в 92 превосходство CL было очевидным, в 97 значительным, а потом... На то есть свои причины, но современный CL значительно отличается от того, старого, по крайней мере, по используемым подходам. В принципе, можно смело утверждать, что старый Common Lisp умер, а затем родился вновь ;)

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

> Угу, вот это интересно, как воспринимать? Что такое вообще этот eDSL?

DSL это описание/решение задачи в терминах максимально приближенных к предметной области в том числе возможно расширенной синтетическими сущностями

для начала стоит разделить eDSL/embedded DSL/internal DSL и external DSL/просто DSL

первые позволяют не изобретать язык для некой предметной области с нуля - а используют базовый язык и его инфраструктуру, это позволяет сосредоточится на конкретной предметной области, а не изобретать по новой циклы, эксепщены и пр. если они необходимы для нашего языка. Более того несколько eDSL могут спокойно использоватся вместе - можно легко представить код с одновременным использованием iterate cl-pdf и lisa.

Однако нас может ограничивать базовый язык (обычно не в случае lisp) или наоборот давать слишком много возможностей и расширять предметную область - например тогда и нуден внешний DSL

На .asd нельзя программировать, это просто декларативная система с ограниченными возможностями для описания способа загрузки системы.

ну не во всех предметных областях требуется программировать :)

А cl-pdf просто библиотека, api для генерации pdf, почему стоит причислять её к eDSL мне не понятно.

дак это и замечательно что не понадобились сложные макры - хвала лиспу и его dynamic binding

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

> не упущенно ли что-то старое (типа readtable)
readtable в терминах lisp для этой задачи не нужен

если речь идет о логическом выводе во время компиляции

я говорил всего лишь об интегрированной прослойке описательно удобного сахара над run-time библиотекой с возможностью генерить правила в compile-time, хотя если движок будут доступен и в complie-time или будут доступны compile-time оптимизации то еще лучше, в лиспе так и есть.

уж лучше даталог или еще че-то

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

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

> «Искусство программирования для Unix» от Э.Раймонд, где он подробно рассматривает DSL именно как специальный язык программирования.
подозреваю он имел в виду внешние DSL c lex+yacc и пр. типа awk и sh.

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

> DSL это описание/решение задачи в терминах максимально приближенных

к предметной области в том числе возможно расширенной синтетическими

сущностями



Откуда такое описание? Обычно все подразумевают под этим «предметно-ориентированный язык программирования».

ну не во всех предметных областях требуется программировать :)


Ну и нечего тогда подобные системы к DSL причислять, или HTML это тоже DSL?

дак это и замечательно что не понадобились сложные макры -

хвала лиспу и его dynamic binding



Просмотрел ещё раз свой код для работы с cl-pdf - никаких признаков DSL не видно. Сам формат PDF (в отличие от его предка PostScript) к DSL не относится, а cl-pdf предлагает просто API, такое же, как и во многих других языках/графических системах: move-to, line-to, stroke - это что ли DSL?

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

iterate cl-pdf и lisa.



Из названных только lisa, пожалуй дейсвительно предоставляет DSL, но кто её использует? она уже много лет как не развивается.

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

> Откуда такое описание? Обычно все подразумевают под этим «предметно-ориентированный язык программирования».

это как я это понимаю, однако у Мартина схожая точка зрения,и слова " программирования" в его определении тоже нет

http://www.martinfowler.com/bliki/DomainSpecificLanguage.html

Ну и нечего тогда подобные системы к DSL причислять, или HTML это тоже DSL?

и сам HTML впонле себе DSL даже не только по моему определению, и синтаксис например той библиотеки из PCL вполне eDSL для генерации HTML документов

Просмотрел ещё раз свой код для работы с cl-pdf - никаких признаков DSL не видно.

хорошо поставим так вопрос что нужно сделать с синтаксисом cl-pdf чтоб он стал ближе к решаемой задаче ? with-* вполне решают задачу не явной передачи контекста и формируют eDSL. page.move-to или (move-to page ... - было бы куда дальше от предметной области

Из названных только lisa, пожалуй дейсвительно предоставляет DSL, но кто её использует? она уже много лет как не развивается.


чем iterate не eDSL для построения итеративных/агрегирующих конструкций
чем lisa (есть fork на github) по большому счету так отличается от iterate ?

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

> однако у Мартина схожая точка зрения

Нашёл на кого ссылаться ;)

и сам HTML впонле себе DSL


Опомнись, HTML это не DSL.

и синтаксис например той библиотеки из PCL вполне eDSL

для генерации HTML документов



Учитывая её безсполезность, то тем «великой силы» eDSL в очередной раз подвергнута сомнению.

чем iterate не eDSL для построения итеративных/агрегирующих конструкций

Ну что мы будем каждый макрос к eDSL причислять? Потом, это не очень похоже на предметную область.

чем lisa (есть fork на github) по большому счету так

отличается от iterate ?



lisa определяет язык для описания rule-based систем. Во-первых, это тянет на отдельную предметную область. Во-вторых, там действительно можно говорить действительно об языке.

Форк я видел (его не так давно обнаружили), но только всё равно никто не юзает ;)

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

> Нашёл на кого ссылаться ;)
ну да Раймонд в этой теме true, пусть лучше anonymous рассудит

Опомнись, HTML это не DSL.

давай культурно, попробуй обоснуй, если Марин тебе не угодил, давай в рамках этого определения - http://en.wikipedia.org/wiki/Domain-specific_language

Ну что мы будем каждый макрос к eDSL причислять? Потом, это не очень похоже на предметную область.

там в поставке iterate есть pdf-ка где автор сравнивает и разбирает возможные методы итерации - для него это было именно предметной областью

....

что не вижу конкретики, причем совсем

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

> lisa определяет язык для описания rule-based систем.
кстати синтаксис iter богаче defrule, дак кто формирует язык ?)

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

> ну да Раймонд в этой теме true

По крайней мере, более уважаемый специалист.

давай культурно, попробуй обоснуй


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

что не вижу конкретики, причем совсем


Ну какая может быть тут конкретика? Есть утверждение о важности/полезности eDSL, но нет кода этого подтверждающего. Без кода какая может быть конкретика?

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

> По крайней мере, более уважаемый специалист.
да же если не говорить о субьективном уважении,Раймонд как бы специалист из другой ниши

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


там сказано - programming language or >specification language< dedicated to a particular problem domain

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

Без кода какая может быть конкретика?

мы мало lisp библиотек перетерли ? это вопрос чисто восприятия, в лиспе очень не явная грань между api и простым eDSL, хотя может нам чего нибудь на scala или C# покажут ...

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

> Да что тут обосновывать, HTML не является языком программирования, а значит не подходит под определение.

я таки согласен, с товарищем, утверждающим, что слова «программирование» в термине DSL отсутствует. ну и + чем html не программирование отображения браузером веб-страницы? да, примитивно, но все же?

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

> там сказано - programming language or

>specification language< dedicated to a particular problem domain


Хм, а ODT это тоже DSL??

это вопрос чисто восприятия, в лиспе очень не явная грань между api

и простым eDSL



Зачем тогда вообще отдельно упоминать об этом eDSL? Если его не отличишь от обычного api? Ведь тогда можно сказать, что with-open-file образует eDSL для работы с файлами...

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

> Хм, а ODT это тоже DSL??
скорее нет, в зависимости с какого уровня на него смотреть, но это скорее риторический вопрос

Зачем тогда вообще отдельно упоминать об этом eDSL? Если его не отличишь от обычного api?


1) eDSL полезен в голове, затем чтоб делать свои api максимально удобными и приближенными к предметной области, при этом в лиспе полно средств сделать это под любым ракурсом, поэтому вобщем не важно DSL HTML и ODT или нет, а важно чтоб api твоих библиотек небыл java-like, а использовал язык по максимуму в рамкам задачи, но не более этих рамок.

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


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

Кто-то снова пытается придумать свою терминологию :)

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

> Кто-то снова пытается придумать свою терминологию :)
вносите другую терминологию, мне даже интересно

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

>> Хм, а ODT это тоже DSL??

скорее нет


Да точно нет, как ни смотри, ибо это просто формат, как и HTML.

важно чтоб api твоих библиотек небыл java-like


Хм, термин DSL изобрели раньше Java, не думаю, что это важно. Скорей всего суть в другом.

ну в треде не про один лисп говорят, в большинстве других языков

нет никаких api с макрами



Тема важности макросов для eDSL не раскрыта. Например, если затрагивать тему генерации html, то какая из лисп библиотек лучше, чем аналогичные возможности lxml (python)?

eDSL полезен в голове, затем чтоб делать свои api максимально

удобными и приближенными к предметной области



А вот это совершенно не понятно, типа «eDSL позволит вам эффективно разрабатывать промышленные приложения корпоративного уровня» :)

Есть хорошо известные внешние DSL, например PostScript, XSLT или там awk. И между этими примерами достаточно легко можно обнаружить общность, что это именно DSL. Наверное, для eDSL подобная общность тоже должна быть очевидной. Но кроме «макросов» другой общности мне увидеть не удаётся.

И опять таки, если полезность внешних DSL хорошо известна и доказана практикой, то на каких основаниях можно судить о пользе eDSL совершенно не ясно.

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

> носите другую терминологию, мне даже интересно

Ваши рассуждения мне как раз нравятся.

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

> Ваши рассуждения мне как раз нравятся.

Тоже утверждаешь, что HTML это DSL?

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

> Есть хорошо известные внешние DSL, например PostScript, XSLT или там awk. И между этими примерами достаточно легко можно обнаружить общность,

А если добавить сюда же yacc и troff?

Наверное, для eDSL подобная общность тоже должна быть очевидной. Но кроме «макросов» другой общности мне увидеть не удаётся.

Наличие выделенного этапа трансляции eDSL -> host language.

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

> Тоже утверждаешь, что HTML это DSL?

Хуже того, есть eDSL похожий на HTML ;) Например, реализован в коммерческом проекте WebSharper на F#. DSL подразумевает декларативность прежде всего. Если тебе так нравится говорить о программировании, то можно думать о декларативном программировании. В терминах прикладной области. Программирование не обязательно должно быть императивным.

Но ничего хуже нет, чем спорить о терминах. Неужели нет других интересных тем? Например, насколько быстрее стал Clozure CL по сравнению с 1.4? :)

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

> Хуже того, есть eDSL похожий на HTML ;)

И ты говоришь, что я изобретаю свою терминологию???

DSL подразумевает декларативность прежде всего.


О... Это ты так про PostScript???

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

> Наличие выделенного этапа трансляции eDSL -> host language.

Выглядит убедительно, но можно практический пример? cl-who, пожалуй делает нечто подобное, но вряд ли эту библиотеку можно использовать для рекламы eDSL. Директивы format тоже подходят, но мы же будем утверждать, что printf это пример eDLS?

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

> Директивы format тоже подходят, но мы же будем утверждать, что printf это пример eDLS?

это точно не еmbedded DSL, так как форматная строка проверяется по своим правилам, определенным *отдельно*, а не посредством хост-языка (хост-языком тут будет си-без-правил-касающихся-format)

с другой стороны, это точно DSL

HTML & ODF тоже DSL (впрочем, тут похоже на вопрос «а сколько камешков образуют кучу»)

языком называется подмножество цепочек символов, имеющее формальное описание, а с практической точки зрения — язык еще должен и транслироваться во что-то (не обязательно в цепочки, можно в графику)

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