* * *

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)
шерстяной ленин

July 2017

S M T W T F S
       1
2 3 4 56 7 8
9 1011 12 13 14 15
161718 19 2021 22
23 2425 26 27 2829
3031     

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 29th, 2017 11:52 am
Powered by Dreamwidth Studios