[draft] N2 – языковый фрeймворк
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.12 01:36
Оценка: 49 (3) +2
Представляю на суд общественности первые наброски описания Н2
Автор(ы): Чистяков Владислав Юрьевич
Дата: 17.05.2012
В данной статье рассказывается о новом проекте языкового фрэймворка – N2
.

Вопросы и критика очень приветствуются.

Планирую дополнить это дело:
* Гипотетическими примерами кода.
* Подробнее рассказать о принципах реализации тех или иных вещей.
* Рассуждениями о том какие продукты можно делать на базе Н2 и с кем/чем они могут конкурировать.
* О том как из Н2 можно извлечь выгоду (монетизировать).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [draft] N2 – языковый фрeймворк
От: Аноним  
Дата: 22.03.12 08:06
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Представляю на суд общественности первые наброски описания Н2
Автор(ы): Чистяков Владислав Юрьевич
Дата: 17.05.2012
В данной статье рассказывается о новом проекте языкового фрэймворка – N2
.


VD>Вопросы и критика очень приветствуются.


VD>Планирую дополнить это дело:

VD>* Гипотетическими примерами кода.
VD>* Подробнее рассказать о принципах реализации тех или иных вещей.
VD>* Рассуждениями о том какие продукты можно делать на базе Н2 и с кем/чем они могут конкурировать.
VD>* О том как из Н2 можно извлечь выгоду (монетизировать).

Прочитав драфт задумался о бреде сивокобыльном. Если бы это написал не Влад2 то точно разочаровался в языке. ПРИМЕРЫ
Re[2]: [draft] N2 – языковый фрeймворк
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.12 10:23
Оценка: +2 :)
Здравствуйте, Аноним, Вы писали:

А>Прочитав драфт задумался о бреде сивокобыльном. Если бы это написал не Влад2 то точно разочаровался в языке.


Спасибо за конструктивную критику. Такая не может не радовать.

Ни в коем случае не указывай на конкретные места вызывающие непонимание или несогласие. А то испортишь впечатление от своего первого ответа.

А>ПРИМЕРЫ


Видимо мои слова:

Планирую дополнить это дело:
* Гипотетическими примерами кода.

написаны сложно и непонятны. Буду признателен за конструктивную критику предлагающую пути увеличения доходчивости моих слов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [draft] N2 – языковый фрeймворк
От: Tom Россия http://www.RSDN.ru
Дата: 22.03.12 10:29
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Представляю на суд общественности первые наброски описания Н2
Автор(ы): Чистяков Владислав Юрьевич
Дата: 17.05.2012
В данной статье рассказывается о новом проекте языкового фрэймворка – N2
.


VD>Вопросы и критика очень приветствуются.

Да особо не покритикуешь.
Пока всё супер кратко, человеку не в теме понять о чём идёт речь будет практически нереально.
Народная мудрось
всем все никому ничего(с).
Re[3]: [draft] N2 – языковый фрeймворк
От: Аноним  
Дата: 22.03.12 10:57
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>написаны сложно и непонятны. Буду признателен за конструктивную критику предлагающую пути увеличения доходчивости моих слов.

Сейчас есть рыба, пока не будет наполнения конструктивная критика софична
Re[2]: [draft] N2 – языковый фрeймворк
От: Tom Россия http://www.RSDN.ru
Дата: 22.03.12 11:04
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>Здравствуйте, VladD2, Вы писали:


VD>>Представляю на суд общественности первые наброски описания Н2
Автор(ы): Чистяков Владислав Юрьевич
Дата: 17.05.2012
В данной статье рассказывается о новом проекте языкового фрэймворка – N2
.


VD>>Вопросы и критика очень приветствуются.

Tom>Да особо не покритикуешь.
Tom>Пока всё супер кратко, человеку не в теме понять о чём идёт речь будет практически нереально.

А вообще оно конечно выглядит оч. многообещающим.
Интересно можно ли будет на основе фреймворка построить парсер скажем С++-а? Или тогоже RAZOR-а?
Народная мудрось
всем все никому ничего(с).
Re: [draft] N2 – языковый фрeймворк
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.12 11:22
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Представляю на суд общественности первые наброски описания Н2
Автор(ы): Чистяков Владислав Юрьевич
Дата: 17.05.2012
В данной статье рассказывается о новом проекте языкового фрэймворка – N2
.


VD>Вопросы и критика очень приветствуются.


Попробую еще раз.

Приветствуются вопросы по существу и критика конкретных слов. То что это пока никуда не годится я знаю и так.

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

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

По возможности, будьте конструктивны. Критикуя указывайте конкретику, а еще лучше предлагайте свои решения.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: [draft] N2 – языковый фрeймворк
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.12 11:27
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>Пока всё супер кратко, человеку не в теме понять о чём идёт речь будет практически нереально.


ОК. Хочешь сказать, что получилось слишком сложно и туманно?

Буду думать как сделать тему более доходчивой. Над примерами буду работать сегодня.

И все же хотелось бы получить критику/вопросы по конкретным частям. Возможно, если осмысливать все не в целом, а частями, то будет проще.

ЗЫ

Приношу свои извинения всем тем, кто не понял написанного. Тема довольно сложная Много метауровней получается. Как изложить ее просто я пока не понимаю. Но так как это все равно нужно, то давайте работать над понятностью вместе.

Можно попробовать в режиме вопрос-ответ, а я отражу эти вопросы в следующей версии "бумаги".
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: [draft] N2 – языковый фрeймворк
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.12 11:28
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Сейчас есть рыба, пока не будет наполнения конструктивная критика софична


Согласен. Но хоть что-то. Все же общая идея идея должна быть понятна и из этой рыбы.

Давайте пойдем от противного. Попробуйте сформулировать, что больше всего непонятно?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [draft] N2 – языковый фрeймворк
От: fin_81  
Дата: 22.03.12 11:34
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Представляю на суд общественности первые наброски описания Н2
Автор(ы): Чистяков Владислав Юрьевич
Дата: 17.05.2012
В данной статье рассказывается о новом проекте языкового фрэймворка – N2
.


VD>Вопросы и критика очень приветствуются.


Вопросы.
Базовая виртуальная машина, базовые типы?
Парсер? ll, lr?
Как будут разрешаться конфликты расширяемых грамматик? Точки расширения с ограничениями грамматики? Как правильно их описать?
Как будет "джунгли из многоствольных деревьев" проецироваться в однозначное "дерево"?

Более практичный вопрос на закуску: как будут передаваться значения из модуля с своей грамматикой и структурой данных в другой модуль с другой структурой данных? Например: как передать "красное-черное дерево" из питон-модуля в лисп-модуль?
Re[2]: [draft] N2 – языковый фрeймворк
От: Аноним  
Дата: 22.03.12 12:00
Оценка:
Здравствуйте, VladD2, Вы писали:

Каким будут подсистемы, как они взаимосвязаны(рисунок).
Примеры куском для каждой подсистемы. Если с парсером более менее понятно, то с остальными.
Какими ограничениями будет обладать, что будет невозможно сделать и почему.
Оптимизации кода, где они будут сосредоточены/распределены?

Будет ли возможность реализовать С++, Перл, Руби (или их подмножество)и почему нет. Насколько упроститься/усложниться при этом работа.
Re[3]: [draft] N2 – языковый фрeймворк
От: hardcase Пират http://nemerle.org
Дата: 22.03.12 12:02
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>Интересно можно ли будет на основе фреймворка построить парсер скажем С++-а? Или тогоже RAZOR-а?


С++ не знаю. Razor (под C#) сделать уже сейчас на Nemerle.Peg не проблема.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: [draft] N2 – языковый фрeймворк
От: Visor2004  
Дата: 22.03.12 12:18
Оценка:
Здравствуйте, fin_81, Вы писали:

_>Более практичный вопрос на закуску: как будут передаваться значения из модуля с своей грамматикой и структурой данных в другой модуль с другой структурой данных? Например: как передать "красное-черное дерево" из питон-модуля в лисп-модуль?


Эта задача не может иметь общего решения, все грамматики так или иначе будут использовать те структуры данных, которые будут доступны для выбранного backend.
Помните!!! ваш говнокод кому-то предстоит разгребать.
Re[3]: [draft] N2 – языковый фрeймворк
От: WolfHound  
Дата: 22.03.12 12:39
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>Интересно можно ли будет на основе фреймворка построить парсер скажем С++-а?

Можно, но сложно. Я сейчас думаю, как это сделать.
Дело в том что в С++ есть откровенно контекстно-зависимые конструкции.
Например:
a < b > c;
Может быть объявлением переменной или выражением с двумя сравнениями.
Таким образом, чтобы это разобрать нужно, знать, что такое a и b.
А для этого на уровне парсера нужно иметь таблицу символов.

К чему я в конце концов приду пока не ясно.

Tom>Или тогоже RAZOR-а?

Это не проблема.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: [draft] N2 – языковый фрeймворк
От: WolfHound  
Дата: 22.03.12 12:56
Оценка:
Здравствуйте, fin_81, Вы писали:

_>Вопросы.

_>Базовая виртуальная машина, базовые типы?
Это будет универсальный всемогутор который может компилировать что угодно в что попало.
Так что фиксированной ВМ или базовых типов не будет.
Какой бекенд выберешь в такой, и будет транслироваться твой код.
Ессно нужно понимать, что не для любого языка можно будет использовать любой бекенд.

_>Парсер? ll, lr?

Ни то ни другое.
https://github.com/rampelstinskin/ParserGenerator

_>Как будут разрешаться конфликты расширяемых грамматик?

Вот так:
Re[2]: Обновление ParserGenerator'а
Автор: WolfHound
Дата: 29.12.11

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

_>Точки расширения с ограничениями грамматики? Как правильно их описать?

Чего?

_>Как будет "джунгли из многоствольных деревьев" проецироваться в однозначное "дерево"?

А зачем джунгли? Джунгли это комбинаторный взрыв и куча неоднозначностей на ровном месте. Смотри мое сообщение про правило разрешения конфликтов.
И что характерно любой разобранный вариант можно типизировать.

_>Более практичный вопрос на закуску: как будут передаваться значения из модуля с своей грамматикой и структурой данных в другой модуль с другой структурой данных? Например: как передать "красное-черное дерево" из питон-модуля в лисп-модуль?

Языки должны быть совместимы на уровне бекенда.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: [draft] N2 – языковый фрeймворк
От: _Claus_  
Дата: 22.03.12 13:50
Оценка:
VD>ОК. Хочешь сказать, что получилось слишком сложно и туманно?

кому надо, тот поймет. Непонятно, почему за бортом остались динамические и полудинамические языки. игнорите?
типы и их расчет — планируется ли возможность глобальной калькуляция типов, а то боюсь F# надо вычеркнуть, как и многие другие.
перехват и восстановление после ошибок из макроса, когда есть возможность что-то подправить/уточнить — языковой фреймворк должен уметь.

о тех, кому не надо.
вообще непонятна цель этой работы. есть готовые компиляторы с отличной поддержкой и фаршем, на кой кому то делать это снова.
позиционирование работы ,- для кого, никак не ясно. DSL можно писать в десятке других сред. чем лучше? а можно не морочится с DSL-ями
а чуть подправить настройку для N или для K? что мне даст создание своего DSL кроме головной боли?

VD>"Работая над Nemerle нами (группой RSDN) было выявлено несколько архитектурных и множество проектных недостатков Nemerle."

Это несерьезно. Почему за столько лет не устранили? Компилятор написан для заявленного функционала и со своей ролью справляется.
Re[4]: [draft] N2 – языковый фрeймворк
От: Tom Россия http://www.RSDN.ru
Дата: 22.03.12 14:08
Оценка:
Tom>>Или тогоже RAZOR-а?
WH>Это не проблема.
Так у него же тоже как я понимаю очень не тривиальный парсер? Надо как то отделять куски разметки от кода?
Народная мудрось
всем все никому ничего(с).
Re[4]: [draft] N2 – языковый фрeймворк
От: m.e.  
Дата: 22.03.12 14:20
Оценка: :)
Tom>>Интересно можно ли будет на основе фреймворка построить парсер скажем С++-а?
WH>Можно, но сложно. Я сейчас думаю, как это сделать.
WH>Дело в том что в С++ есть откровенно контекстно-зависимые конструкции.
WH>Например:
WH>a < b > c;
WH>Может быть объявлением переменной или выражением с двумя сравнениями.
WH>Таким образом, чтобы это разобрать нужно, знать, что такое a и b.
WH>А для этого на уровне парсера нужно иметь таблицу символов.

WH>К чему я в конце концов приду пока не ясно.


парсер с++ это скорее неподъемная задачка для одного человека

т.к. если хочется парсить с++, то надо брать clang и делать из него выхлоп
Re[3]: [draft] N2 – языковый фрeймворк
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.12 14:21
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>Интересно можно ли будет на основе фреймворка построить парсер скажем С++-а? Или тогоже RAZOR-а?


Конечно, можно. И не только парсер.

Разор вообще задача довольно простая (при наличии парсера встроенного языка (например, шарпа)). С С++ придется повозиться. Все же не самый простой язык.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: [draft] N2 – языковый фрeймворк
От: m.e.  
Дата: 22.03.12 14:22
Оценка:
Tom>>Интересно можно ли будет на основе фреймворка построить парсер скажем С++-а?

и вообще, я не вижу особого смысла делать DSL-довески над *синтаксисом* c++

вот, скажем, сконвертить с++ в какой-то приличный синтаксис и там поднавесить DSL-довески — это реально
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.