* * *

Jul. 1st, 2017 04:57 pm
bamalip: (Default)
[personal profile] bamalip
где-то проскакивали новости по языку XL XL_(programming_language)
(поскольку у меня осталась открытая вкладка, но я не помню, откуда)

создатель известен, как разработчик реализации исключений в С++, которому С++ надоел, и он пилит свой язык уже третье десятилетие. из того, что я прочитал, выходит, что это аналог С++, только с синтаксисом Ады, отличающийся от них развитыми возможностями метапрограммирования, что должно делать его похожим на язык D. однако слов "метапрограммирование" и "макросы" автор языка не любит, поэтому он говорит о своем детище как о "концептном программировании". с другой стороны, больше никто так не говорит, из-за чего данный язык автоматически оказывается якобы единственным в своем роде, хотя мы-то понимаем, что все дело в макросах.

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

Date: 2017-07-02 01:19 pm (UTC)
thedeemon: (Default)
From: [personal profile] thedeemon
XL больше пахнет лиспом или каким-нибудь Немерле.
В D по сути нет такого свободно расширяемого синтаксиса. Там основной метапрограмминг через шаблоны а-ля С++ только с более активным использованием интроспекции и static if, т.е. результат подстановки шаблона может очень сильно отличаться в зависимости от свойств переданных в него типов и данных. Другой заход в МП в Ди - описываешь свой DSL с какой хошь грамматикой, передаешь строчку с ним в свой парсер, который работает в компайл-тайм, тот генерит код на Ди, который уже отдается компилятору. При желании этот трюк можно провести многократно в рамках одной компиляции. Но в любом случае не получается простого добавления нового синтаксиса к существующей грамматике Ди.

Date: 2017-07-02 03:56 pm (UTC)
thedeemon: (Default)
From: [personal profile] thedeemon
В Дишных шаблонах даже не просто аргументы-АСТ, а вполне законченные сущности из основного языка - типы, значения, ф-ии, другие шаблоны...

С расширениями компилятора есть же такие штуки и в Окамле (фэйсбуковский Reason так сделан), и в Скале, и в Расте, и Template Haskell тоже близко.

Profile

bamalip: (Default)
шерстяной ленин

September 2017

S M T W T F S
      1 2
3 4 5 6 7 8 9
1011 12 13 14 1516
1718 19 20212223
24252627282930

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 21st, 2017 05:37 pm
Powered by Dreamwidth Studios