LINUX.ORG.RU

MetaPlatform 0.0.1


0

0

Цитаты автора (Виталия Луговского) из анонса:

"В общем, что это такое: пока - всего лишь лиспообразный ленивый чистый функциональный язык с возможностями метапрограммирования. Работает пока только на JVM. Чем оно будет в будущем - см. в сырцах."

"Цель - сделать язык для быстрого прототипирования (да и реализации) произвольных языков, как DSL, так и общего назначения. Реализация Language-Oriented Programming - идеологии, согласно которой, самый быстрый и правильный способ решения задачи - это сначала создать заточенный под задачу язык, а потом уже сфомулировать на нём решение, в простых и понятных естественных терминах."

Скачать: http://prdownloads.sourceforge.net/ds...
Статья автора по теме: http://arxiv.org/abs/cs.PL/0409016

>>> а н о н с

anonymous

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

Блин, вот теперь ради того, чтоб поглядеть на это творение прийдется качать JVM :( И вообще, насколько я помню Виталий Светославович был ярым антижабофилом. Что же случилось?

nsav-ng
()
Ответ на: комментарий от nsav-ng

Да нет, неправ я. Жабофоб не то же самое, что антижабофил. Прошу прощения.

anonymous
()

Суууупер!

"Ищу компонент TProgrammer..."

(C) Начинающий программист Delphi...

;-)))

atrus ★★★★★
()

Серёжа Дмитриев перевернётся в гробу! :) со своим MPS'ом. Ждём ответа от нашего JebBrains

--седайко стюмчик

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

Я знаю, что разные. Я просто посетовал, что прийдется качать JVM и удивился, что Виталий Светославович, будучи жабофобом, выбрал яву для реализации своего проекта.

nsav-ng
()
Ответ на: комментарий от nsav-ng

Ты хоть бы по ссылкам почитал, не жабу а её виртуальную машину, и я так понял только временно, чтобы гемора поменьше для начала.

CrazyPit ★★★
()

Посмотрел исходники. Велосипедный спорт процветает ? Даже профессор в него ударился. Чем "это" лучше других лиспов которых хоть пруд пруди ?

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

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

anonymous
()

>Цель - сделать язык для быстрого прототипирования (да и реализации) произвольных языков

Моя плакиль, Л. принялся за язык для жабобыдлокодеров. Т.е. язык не требующий знаний программтрования.

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

Сначала оно вообще на Common Lisp было сделано, если судить по CVS из предыдущего проекта.

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

Не надо делать символьную таблицу. Она вообще должна быть даже ещё более простой, чем таблица слов в Форте. Чем примитивней, тем правильнее.

А вообще Форт - это наше всё. Лисп - overkill.

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

> Т.е. язык не требующий знаний программтрования.

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

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

Ну почему ни о чём? Вот сейчас пофлеймим, пофлеймим, и народ побежит Форт изучать. Полезно, однако. Вот ты - знаешь Форт?

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

> Вот сейчас пофлеймим, пофлеймим, и народ побежит Форт изучать. Полезно, однако.

Клму нужно - давно ТЛЯ изучили. Кому не нужно - энтузазизьм за пару дней изучения ТПЯ испарится. Так в чем польза?

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

А всем нужно, кто вообще хоть что-то программирует.

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

кстати да, еслиб Виталик написал прожку, которая в реалтайме массы частиц по трекам в ускорителях распознает - это былоб дело (хотя может и есть такие, что в реалтайме работают - не знаю). Ну, ченнить менее теоретическое и более практическое чтоли, чтож я буду писать свой язык для написания функции LineTo в XSUB?

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

> массы частиц по трекам в ускорителях

Тебе лет 60 наверное, не меньше. Какие треки в наше время? Пузырьковых камер и камер Вильсона давно нет. Есть всякоразные сцинтилляционные счётчики, RICH, полупроводниковые детекторы, калориметры. И я никогда не слышал, чтоб хоть кого-то волновали массы частиц в триггерах первого уровня (кстати, программировать их никто не собирается - они всё равно всегда аппаратные), да и второго - тоже. В оффлайне массы посчитать потом можно, если это вообще будет иметь смысл в контексте эксперимента.

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

> менее теоретическое и более практическое чтоли,

Форт, да? В нём все эти идеи от рождения реализованы, все ими активно пользуются.

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

> И вообще, насколько я помню Виталий Светославович был ярым антижабофилом. Что же случилось?

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

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

> Так это ни фига не лисп. Это Хаскелль без типов.

Гм, а почему не ленивый лисп с currying и pattern matching? В хаскелле таких макр близко не было...

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

Template Haskell - хоть и сплайсы, но, по большому счёту, близко к лисповому defmacro. И он как раз наглядно показывает, что любой язык с серьёзным метапрограммированием должен быть основан на списках. Генерить *нерасширяемый* Хаскеллевый AST - задолбёшься.

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

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

Можно поподробней? Что не так с метапрограммированием, в, скажем, Nemerle, несмотря на его сишный синтаксис?

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

А то, что ты либо генеришь AST, и это - лишние и неудобные конструкции, либо генеришь текстовое представление AST, и не получаешь при этом даже гарантии, что скобочки совпадут.

Накушался я этого уже в Template Haskell и в MetaOCaml, так что ну на фиг, буду Форт гонять, ну и в крайнем случае Common Lisp. Scheme с ейной гигиеной тоже идёт в анал.

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

> А то, что ты либо генеришь AST, и это - лишние и неудобные конструкции

Лишние они или нет - это мы как раз разбираемся. Насчет неудобства - спорно, ибо компенсируется повышенной читабельностью имхо.

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

Увы. Читабельности не добавляется. Аццкий совершенно микс выходит, из конструкторов AST и строк нормального синтаксиса. Всё же гораздо лучше и проще, когда AST и синтаксис вообще совпадают, и есть типа backquoting.

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

> Увы. Читабельности не добавляется.

Я думаю, мы сойдемся на том, что это все же субъективный критерий. Может, это просто дело привычки, но Haskell и Nemerle я нахожу куда более читабельными, чем Scheme и тем более CL.

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

А ты посмотри в этом самом MetaPlatform одну смешную идейку, как комбинировать S-выражения с дополнительными синтаксическими конструкциями, файл Backends/JVM/etc/transf.l

Ясно, что значков в S-выражениях мало, напрягает, да и скобки достают нипадеццки, ну так это не проблема, на самом деле.

Аналогично, см. на замечательную макру loop в Common Lisp, тоже, синтаксис не то чтоб очень уж лиспнутый.

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

> А ты посмотри в этом самом MetaPlatform одну смешную идейку, как комбинировать S-выражения с дополнительными синтаксическими конструкциями, файл Backends/JVM/etc/transf.l. Аналогично, см. на замечательную макру loop в Common Lisp, тоже, синтаксис не то чтоб очень уж лиспнутый.

Да я в курсе. Только вот что-то лисперы тот самый LOOP не сильно любят, как я понял.

Все же никогда не понимал, почему бы не задействовать скобки разных типов. Хотя бы для того же (бэк)квотинга. Имхо уже бы глазу намного легче было цепляться за них и выделять в исходнике разные элементы.

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

А всё та же причина - много синтаксических элементов - сложнее их генерить. Один толко бэкквотинг - уже головная боль, особенно учитывая, что детали его реализации в стандарте не прописаны. А loop мы любим, и даже очень. Не надо инсинуаций.

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

Гм... что, собственно, изменится от того, что ты заменишь '(...) на {...}, скажем? Если учесть, что ' - это уже sugar для QUOTE, не вижу разницы ни для чего, кроме моих бедных глаз...

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

А то, что когда пишешь обходчик для кода, то кроме проверки null/pair/atom придётся ещё на каждую такую конструкцию добавлять. В каждом месте, где ты про AST бродишь. Оно тебе надо?

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

>Я хочу шарить в языках так же как vsl. Что мне почитать?
Necronomicon

NonHuman ★★★
()

И после таких рассуждений "читабельность - нечитальность" они будут говорить, что perl нечитабельный!

Друг анонимусов.

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

Любая попытка синтаксического усложнения/специализации лиспа тут же опошляет всю идею этого языка: из строго математизированного языка на котором можно "напесать фсе" он превращается жалкое подобие питона, пролога, эскуэля и т.д.

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

> Ты хоть бы по ссылкам почитал, не жабу а её виртуальную машину, и я так понял только временно, чтобы гемора поменьше для начала.

Ты хоть понял что сказал? Нахрена JVM? Чтобы выполнять java. А иначе зачем она нужна? Человек программирует на java.

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

> Любая попытка синтаксического усложнения/специализации лиспа тут же опошляет всю идею этого языка: из строго математизированного языка на котором можно "напесать фсе" он превращается жалкое подобие питона, пролога, эскуэля и т.д.

Причём здесь пролог? Он ещё проще!

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

И почему я тогда JVM без всякой Java использую (Jython)?

Так что это ты явно не понимаешь, что говоришь.

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

И когда это Лисп был "строго математизированным"?!?

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

> Любая попытка синтаксического усложнения/специализации лиспа тут же опошляет всю идею этого языка: из строго математизированного языка на котором можно "напесать фсе" он превращается жалкое подобие питона, пролога, эскуэля и т.д.

Если ты заметил, речь шла не об усложнении на уровне добавления новых конструкций (это там явно не к месту), а просто о безобидном таком syntactic sugar, облегчающем визуальное восприятие кода. Ты же не предлагаешь, например, вместо '(foo) везде писать полностью (quote foo)? Вот здесь речь по сути о том же идет.

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

> Если ты заметил, речь шла не об усложнении на уровне добавления новых конструкций (это там явно не к месту), а просто о безобидном таком syntactic sugar, облегчающем визуальное восприятие кода. Ты же не предлагаешь, например, вместо '(foo) везде писать полностью (quote foo)? Вот здесь речь по сути о том же идет.

Где стоит остановиться при разработке синтаксического сахара ? Мне, например, еще и скобки не нравятся, хочу чтобы при структурировании кода были не скобки а табуляции - как в питоне, хочу чтобы бинарные арифм. операции можно было записывать по человечески, а не через жопу с костылями и т.д. В итоге - убиваем лексику и синтаксис лиспа, оставляем только семантику и имеем полупитон, полупролог, полу... в зависимости от того сахара которым мы сластили

Основная фишка лиспа - его синтаксис, ибо не будь у него такого дурацкого синтаксиса все остальные плюсы "сошли на нет".

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

> Где стоит остановиться при разработке синтаксического сахара ?

Там, где удобней, наверное. Причем еще желательно не получить ничего "полу-".

> хочу чтобы бинарные арифм. операции можно было записывать по человечески, а не через жопу с костылями

Хм, а что не так с префиксной формой? Мне наоборот нравится...

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

> Хм, а что не так с префиксной формой? Мне наоборот нравится...

На вкус и цвет. Не даром они expr сделали

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