Здравствуйте, Ведмедь, Вы писали:
В>НИ разу не занимался написанием компиляторов. Интересно было бы попробовать или просто рядом постоять, за плечо позаглядывать
Ну, я тоже пока ни одного не сделал. Но теоритически вроде как разобрался.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, sugarde, Вы писали:
S>Через 6-7 месяцев у меня вот диплом. В принципе интересуюсь всякими интересными авантюрами. C# может не стоит? Может кого-то из экзотов под .NET портировать? Prolog?
Не. Это без меня. Мне интересен язык на котором я смогу потом сам что-то сделать.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, VladD2, Вы писали:
В>>А овчинка будет стоит выделки?
VD>Ну, один из бонусов собственная выделка. Т.е. интересных процесс.
VD>Для меня лично это не дело всей жизни, а просто интересный эксперемент. Если загнется, ну и фиг с ним. А выживет, так вообще замечательно.
Ты бы лучше объяснил нам, ламерам, как ты все это себе представляешь.. И на чем писать? На С++ или что по-круче?
Здравствуйте, VladD2, Вы писали:
VD>В качестве прообраза взять Шарп и добавить в него те фичи что посчитаем нужными.
VD>Для начала просто воспоизвести Шарп 2.0. А потом зняться наворотами.
А почему не Java platform за основу?
Т.е. компиляторы c поддержкрй templates и function pointers есть (http://pizzacompiler.sourceforge.net/)
Среды разаработки — есть и много.
Виртуальных машин — есть и много.
Написать свою компактную VM, легко встраиваимаю и расширяемую за счет C++ (динамически)...
Мой реальный эксперимент: JavaVM — 70-100k. Т.е. её можно просто цеплять к каждому application и забыть вообще про JRE и Framework.
Концептуально ни Java ни C# не являются языками на которых можно писать OC и другие серьезные вещи.
Т.е. в реальной проекте 50% кода требуется делать макс. эффективно. Остальные 50% — это бизнес логика и UI код не связанный с отрисовкой.
Нет идеального языка вообще. Есть языки максимально подходящие для доменов применения.
Использование например Java как языка и средства управления и контроля объектами (периметра) представляется очень удобным (GC, etc.).
Проблема связки Java и С++ (native рабочие модули) в настоящее время в статической природе JNI и его громоздкости.
Т.е. если бы возможно было бы переделать JNI с упором 50% на 50% и с нормальным интерфейсом с C++ — цены бы не было.
Это было бы нечто качественно и принципиально другое и полезное. А так...
Андрей.
Re[5]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, mikа, Вы писали:
M>>Дык, а может тогда что-нить реально полезное создадите? Я бы спасибо сказал
VD>Мне это будет реально полезно.
Влад, я думаю к тому моменту тебя будет беспокоить геморрой на заднице и ревматизм в ногах
Re[6]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, mikа, Вы писали:
VD>>Мне это будет реально полезно.
M>Влад, я думаю к тому моменту тебя будет беспокоить геморрой на заднице и ревматизм в ногах
А что такое "геморрой" _на_ заднице? Объясните плиз..
... << RSDN@Home 1.1.2 beta 1 >>
Re[4]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Здравствуйте, VladD2, Вы писали:
ВВ>Ты бы лучше объяснил нам, ламерам, как ты все это себе представляешь.. И на чем писать? На С++ или что по-круче?
А почему бы не выбрать и сам C#? По скорости компиляции вряд ли это особо будет отставать(парсинг + преобразование в IL-code). Вот только интересно, а расширение с IDE будет? А то как-то не интересно из под Фара кодить.
Re[5]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, mikа, Вы писали:
M>Здравствуйте, Воронков Василий, Вы писали:
ВВ>>Здравствуйте, VladD2, Вы писали:
ВВ>>Ты бы лучше объяснил нам, ламерам, как ты все это себе представляешь.. И на чем писать? На С++ или что по-круче?
M>А почему бы не выбрать и сам C#? По скорости компиляции вряд ли это особо будет отставать(парсинг + преобразование в IL-code). Вот только интересно, а расширение с IDE будет? А то как-то не интересно из под Фара кодить.
Есть же VSIH или как его там.. Ну в общем СДК для встраивания в студию. Причем бесплатный.
... << RSDN@Home 1.1.2 beta 1 >>
Re[6]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, mikа, Вы писали:
M>Здравствуйте, Воронков Василий, Вы писали:
ВВ>>Есть же VSIH или как его там.. Ну в общем СДК для встраивания в студию. Причем бесплатный.
M>SDK и полноценный IDE — это разные вещи.
А чем VS .NET не полноценный ИДЕ?
... << RSDN@Home 1.1.2 beta 1 >>
Re[5]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, beretta, Вы писали:
B>>Тема в том, чтоб добавить к членам класса такой член как предикат. Обдумать его сопряжение с обычным императивным программированием и отработать вопросы работы его тела и работы с переменными.
VD>Т.е. функциональное программирование?
Исчиление предикатов помоему логическое.
B>>Одна из простых аналогий это RegExp, но она работает только со строками, тут же открывается более широкая возможность.
VD>Ну, RegExp — это ДКА или на худой конец НКА. Их лучше в качестве библиотек реализовывать. Хотя во многих областях упрощение создания ДКА (вроде Lex-а) было бы очень полезно.
Бизнеслогика. Особенно такая, в которой вычисления зависят от множества условий. А тем паче, когда время разработки небольшое, типичный пример: постоянно меняются правила.
VD> Вот только у меня никаких идей по этому поводу, кроме компайл-тайм-мета-программирования.
B>>Для пробы я делал некоторую простенькую реализацию, но получалось ОЧень медленно по скорости. Вот бы заделать на уровне языка, я б тогда с радостью позабывал половину констркций типа if, for, while, switch. Потом, там несколько упрощаются вопросы с исключениями и есть кое что по вопросу событий.
VD>А ты не смотрел порты функциональных языков вроде SML на дотнет?
Я посмотрел F#, но честно сказать мало что понял, вроде и словами написано, а внутренне прочувствать не могу. Но как мне кажеться полномасштабного переноса и не требуеться, реализация исчисления предикатов даст уже многое, трудно представить даже насколько.
VD>В любом случае эти идеи нужно описать более четко и дать видиние того как это совместить с ОО и процедурным подходами принятыми в Шарпе.
Что касаемо идей.
Идея заключаеться в том, что до сих пор улучшения в языке касались группирования потока команд, сначала в процедуры, потом в классы, не затрагивая самого потока. Это дало многое и грех этим не воспользоваться. Исчисление предикатов позволит автоматизировать управление потоком команд. Это первый шаг в сторону декларативного программирования (ДП), ну развития языка c#
Есть один простой вопрос "Почему ДП-шники хвастаются тем, что на их языке так легко создаются и решаются разные головоломки?". Лично у меня есть простой ответ, потому что ДП позволяеть не думать о потоке команд, а сосредоточиться на самой задаче (правилах игры), высвобождая себе мозговой ресурс.
Лирическое отступление.
Имеет место жадное стремление к "чистому ДП". Я спрашиваю "Но ведь в результате у вас слабенькое развитие, худые библиотеки и страшные GUI, единицы последователей", а мне говорят "Сиди и наслаждайся своей исключительностью". Искать взаимопонимание уже не было сил. Кстати говоря, создать чистый ДП вроде как никому так и не удалось, еще и за счет того, что программы в этом случае неэффективны и медленны. Так что даже в продвинутых делают некоторые допущения. А еще и потому, что мало людей, и статистически мала вероятность новых открытий.
Вот и выход я вижу в том, чтоб не переносить все сразу на дотнет, а переносить осмысленно, потихоньку, смакуя каждую составляющую (типа как дженерики) Причем не рождать язык из деклараций, делая допущения, а из языка подниматься (снизу вверх) к ДП. "снизу вверх" — это и есть ключевая идея подхода.
Как я себе все представляю.
Насчет сопряжения пока есть пара вопросов, потому что не знаю как лучше это можно сделать в языке. Идеально было бы если predicate внешне выглядел бы как простой метод, может быть вида:
<modificators> bool MyPredicate( <parameters>)
Тогда возвращаемое значение означало найдено решение или нет, а параметры возвращали само решение. Само тело представляло матрицу вызовов, где по горизонтали были предикаты связанные отношением И, а по вретикали ИЛИ. Синтаксически это выглядело может так:
public predicate MyPredicate( string A, MyClass1 B, MyClass2 C)
{
{ predicate11(A, B, C), predicate12(A, B), predicate13(A, C)}
{ predicate21(A, C), predicate22(B)}
}
Что касаемо нижнего сопряжения, то тут думаю "создатель — бог" Т.е. можно просто сказать что в теле нельзя использовать обычные методы, а можно придумать "соглашение", чтоб заюзать нынешние наработки. Скажем если простой метод (пусть в коде выше это будет predicate12) выбросил исключение, то считается что первая строка решения не имеет, predicate13 уже не рассматривается и решение ищется во второй строке.
От простого метода в теле предиката нам тут главное по оговоренному признаку определить истина или ложь. Например, если использован метод типа bool MyMethod(), то для такого метода возвращаемое значение и будет признаком. А если метод void, то считается, что он всегда возвращает истину.
Вот вкраце об автоматическом управлении потоком, пока тут не затрагивались еще переменные.
... << RSDN@Home 1.1.0 stable, слушаю — звезды >>
Re[6]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, beretta, Вы писали:
B>Здравствуйте, Воронков Василий, Вы писали:
ВВ>>Есть же VSIH или как его там.. Ну в общем СДК для встраивания в студию. Причем бесплатный.
B>Оба на, последний раз когда я о нем сышал он стоил что то около 10K пиастров
Ты забыл вспомнить до конца — в ГОД!
Re[4]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Ты бы лучше объяснил нам, ламерам, как ты все это себе представляешь.. И на чем писать? На С++ или что по-круче?
Конечно по-курче! Ладно. Ща создам новую ветку и набросаю свое видение.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, beretta, Вы писали:
VD>>Ну, RegExp — это ДКА или на худой конец НКА. Их лучше в качестве библиотек реализовывать. Хотя во многих областях упрощение создания ДКА (вроде Lex-а) было бы очень полезно.
Я тут вспомнил один примерчик. Скажем у нас есть пользовательский интерфейс, логика предикатов хорошо подходит для решения головоломок. Вот и дать ему головоломку оптимального расположения контролов на форме, так что бы нужное было под рукой и нужного размера, а не нужное где-то в сторонке.
... << RSDN@Home 1.1.0 stable, слушаю — звезды >>
Re[5]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, mikа, Вы писали:
M>А почему бы не выбрать и сам C#? По скорости компиляции вряд ли это особо будет отставать(парсинг + преобразование в IL-code). Вот только интересно, а расширение с IDE будет? А то как-то не интересно из под Фара кодить.
А это будет просто csc.exe но с расширенными возможностями.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: А не залудить ли нам свой язык для дотнета?
Здравствуйте, c-smile, Вы писали:
CS>А почему не Java platform за основу?
Ну, не верю я в Яву.
В Шарпе уже есть 95% нужных возможностей. Так же есть МС++ для низкоуровневого доступа и System.Reflection.Emit для герерации кода.
CS>Среды разаработки — есть и много.
Я предпочитаю VS. Особенно Видби.
CS>Написать свою компактную VM,
У... Это уже не реальная программа действий. И главное не нужная.
CS>Мой реальный эксперимент: JavaVM — 70-100k. Т.е. её можно просто цеплять к каждому application и забыть вообще про JRE и Framework.
В Framework 90% — это библиотеки. Что толку с одного рантайма?
CS>Концептуально ни Java ни C# не являются языками на которых можно писать OC и другие серьезные вещи.
Ты это МС раскажи. Они как раз Лонгхорн на дотнете частично пишут.
CS>Т.е. в реальной проекте 50% кода требуется делать макс. эффективно. Остальные 50% — это бизнес логика и UI код не связанный с отрисовкой.
Эффективность Шарпа с дженириками максимум в 2 раза ниже чем лучшего С++-компилятора. Эффективность МС++ с шаблонами почти равна анменеджед-VC++. Зачем мне еще что-то?
CS>Нет идеального языка вообще. Есть языки максимально подходящие для доменов применения.
А я веду речь о языке максимально подходящем мне, для моих применений. Думаю, что подобные применения у 80% народа, что собрались на этом форуме.
CS>Проблема связки Java и С++ (native рабочие модули) в настоящее время в статической природе JNI и его громоздкости.
Ну, и зачем мне все эти проблемы? В дотнете их нет.
CS>Это было бы нечто качественно и принципиально другое и полезное. А так...
Приципиально другого ничего не получилось бы. Переделывать низкоуровневые вещи я нехочу. Это неразумно. Главное в дотнете — это мощьнейший оптимизатор и огромные библиотеки. Мне не нравится только язык. МС++ слишком громозкий и опасный, а Шарп не имее некотороых фич. К тому же некоторые фичи которые я хочу получить вообще отсутствуют в популярных языках.
Единственное, что может в данном аспекте прильщать в Яве — это переносимость кода. Но она то мне лично ненужна. А стало быть не нужна и Ява.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.