|
|
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Кто использует? Поделитесь впечатлениями пожалуйста... Или эта тема еще не развита? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 08:01:25 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
IchBinКто использует? Поделитесь впечатлениями пожалуйста... Или эта тема еще не развита? Что это значит "языково-ориентированное"? Программирование в терминах решаемой задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 08:39:01 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Может задача ставится таким образом - все делаем на SQL запросах! ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 08:59:04 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 08:59:59 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
У нас ужа есть варианты написания программ на COS и VBasic... Правда все это компилятор сводик к одинаковому объектному коду... На бейсике пишут пиндосы, а мы все на коксе. ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 09:16:38 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
krvsaУ нас ужа есть варианты написания программ на COS и VBasic... Правда все это компилятор сводик к одинаковому объектному коду... На бейсике пишут пиндосы, а мы все на коксе. ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT Ниочем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 09:40:22 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
IchBinКто использует? Поделитесь впечатлениями пожалуйста... Или эта тема еще не развита? Эта тема развита и очень давно, ещё Макконелл про неё рассуждал в своей книге "Совершенный код". Почитай, поймёшь все минусы и плюсы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 09:45:27 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
IchWeissNichtЧто это значит "языково-ориентированное"? Программирование в терминах решаемой задачи? Нет, это значит программирования с "заточкой" под конкретный язык. Т.е полное использование его специфики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 09:48:18 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
qwerty666 IchWeissNichtЧто это значит "языково-ориентированное"? Программирование в терминах решаемой задачи? Нет, это значит программирования с "заточкой" под конкретный язык. Т.е полное использование его специфики. Это не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 09:55:23 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Цитата из вышеуказанного тынца ......Языково-ориентированное программирование – это не просто написание программ, это создание языков для их написания. Программы должны быть ближе к предметной области, чем к компьютерным наборам инструкций, и писать их должно быть намного проще. ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 09:56:12 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Подход "сделай языки и решай на них задачу" абсолютно правильный и далеко не новый - собсно любой профи так и работает. Хорошие средства саморасширения были еще в клиппере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 09:59:26 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Получается Domain-Oriented-Programming ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 10:01:39 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
IchBinНиочем IchBinЭто не так. Тогда не понятно желание создать тему и ее обсуждать... Если хочеш выступать в роли некоего арбитра - тогда рассказывай сам, что там и как эт оу тебя получается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 10:04:44 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
krvsa IchBinНиочем IchBinЭто не так. Тогда не понятно желание создать тему и ее обсуждать... Если хочеш выступать в роли некоего арбитра - тогда рассказывай сам, что там и как эт оу тебя получается... длбб... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 10:06:47 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
no comment... ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 10:16:39 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Я прочитал Вашу статью. Чуствуется молодость и напор. :-) Но позвольте немного покритиковать. Вот например: авторТаким образом, использование нового языка для написания программы будет представлять собой создание экземпляров концепций языка, задание значений свойств экземпляров, и связывание узлов программы в соответствии с отношениями, определенными концепциями. Замените в этом предложении "концепции" на "классы". Что получится? Правильно! ООП. То есть, максимум, на что похожа Ваша идея - это сделать обертку над классами, только назвать их подругому, и решить проблему связывания библиотек, написанных на разных языках. Выходит, что Вы пытаетесь соревноваться с Микрософтом, который тоже пытается решать подобные задачи, навешивая новые обертки и скрипты над исполняемым кодом, что ведет к понижению производительности. Я не согласен с вами.... (и Вами, и Микрософтом) :-) И вот почему: krvsaПравда все это компилятор сводик к одинаковому объектному коду... так как современный компьютер - одноленточная машина Тьюринга, и пока это так, значительного скачка в развитии языков программирования не будет - технические ограничения. А вот когда будут новые компьютеры, тогда и пригодятся Ваши идеи (самая безумная из них - отказ от древовидной структуры кода - я вообще не понял, но возможно, что в этом что-то есть) :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 10:47:32 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Автор статьи на форуме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 11:37:29 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Наверное пока Meta Programming System не попробую до конца не осознаю в чем революция. А может и после тоже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 11:39:56 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
D129Замените в этом предложении "концепции" на "классы". Что получится? Правильно! ООП. Стандартный трюк, который можно применить почти к любой области. Поскольку трюк очень общий, то он может говорить о самом разном, но чаще всего наивность, глупость или злой умысел. D129То есть, максимум, на что похожа Ваша идея - это сделать обертку над классами, только назвать их подругому, и решить проблему связывания библиотек, написанных на разных языках. Идея в том, что для решения задачи нужно создавать язык. Если раньше для создавались новые процедуры, классы, функции, аспекты или еще что-то, то тут предлагается создавать языки, которые отражают специфику области и задачи. D129так как современный компьютер - одноленточная машина Тьюринга, и пока это так, значительного скачка в развитии языков программирования не будет - технические ограничения. Опять слишком общее высказывание, которое ни о чем не говорит и выводы можно делать какие угодно. Кроме того, все зависит от того, что понимается под "значительным" скачком. С таким же успехом можно сказать, что все состоит из квантов, и соответствнно не надо никакой другой науки кроме квантовой механики. И пока на квантовом уровне что-то не изменится, то и делать ничего не надо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 11:54:32 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
чал Идея в том, что для решения задачи нужно создавать язык. Если раньше для создавались новые процедуры, классы, функции, аспекты или еще что-то, то тут предлагается создавать языки, которые отражают специфику области и задачи. А чем отличается создание языка от создания нового класса и его методов? Ну, так, по большому счету? Ведь, сейчас, все языки (кроме некоторых, совсем особенных) похожи друг на друга? Точнее - есть "стандартные" языковые конструкции (арифметические операци, логика, циклы)и "расширенные" (SQL, 4GL). Причем "расширенные" обычно включают в себя и все стандартные конструкции. А с переопределением (или как оно правильно называется?) мы можем применять любой синтаксис к любым объектам? Это не то, что нам нужно? ЗЫ. Всю статью ниасилил, многа букаф. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 12:51:25 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
D129Я прочитал Вашу статью. Чуствуется молодость и напор. :-) Автор статьи - один из основателей JetBrains :-) "молодость и напор" :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 13:11:19 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
прочитал статью-по впечатлениям, сильно похоже на рекламный бред, потому что слишком много эмоций и маловато конкретики. 1. Лично мне толком не понятно, каким образом будут строиться преобразователи из сгенерированного языка в ту же джаву(имхо там как то очень расплывчато описано) Мы получаем сильную зависимость от самого интерпритатора-какие-нибудь неодносначности или багофичи, и мы получаем длительный секс с колупанием и поиском ошибок. 2. Получение еще одного дополнительного звена-вряд ли это уменьшит количество кода, который программист должен написать вручную(не забываем, что нам необходимо описать предметную область). На данный момент общепринятая практика-отделять бизнес-модель от интерфейса. что нового принесет использование этой технологии не совсем понятно(какие-то новые структуры? новые виды методов? взаимодействие между ними? удобный инструмент работы с самими бизнес-объектами?) Хотя идея в целом интересная, однако для меня слишком много вопросов по ее реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 13:53:19 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Самоловских Виталий aka Kefir D129Я прочитал Вашу статью. Чуствуется молодость и напор. :-) Автор статьи - один из основателей JetBrains :-) "молодость и напор" :D Это хорошо, когда и в преклонном возрасте человек не теряет юношеского максимализма и задора P.S. Опыт приходит только с возрастом P.P.S. Но гораздо чаще возраст приходит один ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 14:06:22 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Ну оно естественно, что очередной Next-Gen от программирования когда-нибудь наступит. Другое дело, что совсем не факт, что ЯОП станет этим самым Next-Gen. "Фактическая" часть статьи действительно лишена конкретики, а "вводная" так и вообще стремится в область НФ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 15:30:35 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
чал D129Правильно! ООП. Стандартный трюк, который можно применить почти к любой области. Поскольку трюк очень общий, то он может говорить о самом разном, но чаще всего наивность, глупость или злой умысел. Это как? Я получается - наивный глупый злодей, а может быть и нет. Вы выражаетесь как опытный политик! А это вовсе не трюк, если дать такое же краткое описание структурному программированию, или функциональному, то разница в этих описаниях будет очевидна, в виду разности концепций. чал D129То есть, максимум, на что похожа Ваша идея - это сделать обертку над классами, только назвать их подругому, и решить проблему связывания библиотек, написанных на разных языках. Идея в том, что для решения задачи нужно создавать язык. Если раньше для создавались новые процедуры, классы, функции, аспекты или еще что-то, то тут предлагается создавать языки, которые отражают специфику области и задачи. Ну вот, когда я даю имена методам класса Shuttle - тележка, например, я и создаю этот новый, предметный язык, определяя слова и действия и операторы для конкретной предметной штуки. А делаю я это на базовом языке, необходимость которого вы признаете, и который понимает компилятор, и это или VB, или С++ или С#. чал D129так как современный компьютер - одноленточная машина Тьюринга, и пока это так, значительного скачка в развитии языков программирования не будет - технические ограничения. Опять слишком общее высказывание, которое ни о чем не говорит и выводы можно делать какие угодно. В чем же его "общесть" ? Или надо было кратко рассмотреть схему АЛУ и регистров процессора? чал Кроме того, все зависит от того, что понимается под "значительным" скачком. А вот этого мы пока точно не знаем, но можно догадаться, что производительность, и объем памяти. чал С таким же успехом можно сказать, что все состоит из квантов, и соответствнно не надо никакой другой науки кроме квантовой механики. И пока на квантовом уровне что-то не изменится, то и делать ничего не надо :) Не надо передергивать. Кванты люди не создавали, и изменять их пока не умеют, да и конструкцию до конца не знают. Но если допустить, что квантовая теория совершенна и атомарна - то тогда все состоящие из квантов объекты можно было бы описывать уравнениями квантовой теории. То есть, да, если на квантовом уровне ничего не изменится - то и добавлять в теорию не надо. Мне всегда представлялось, что в программировании - процессор - это уровень атомарности. Компилятор пишется для чего? Для конкретного процессора. Следовательно, пока не появится новый процессор, то что бы вы не писали на языке высокого (или сверхвысокого) уровня, krvsa .... все это компилятор сводик к одинаковому объектному коду... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 17:10:49 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
D129если дать такое же краткое описание структурному программированию, или функциональному, то разница в этих описаниях будет очевидна, в виду разности концепций. Ой опиши а, очень интересно послушать Сравнивать нужно сравнимое, а не мягкое с теплым. Вот взять хоть Схему. И тебе функциональная и структурная :) P.S. А статья вызывает в памяти ассоциации с небезысвестным ЧАЛом (у которого доска на стене висит криво). Чуть более интеллектуальная маниловщина ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 08:41:52 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) Ой опиши а, очень интересно послушать Гугл еще работает сегодня. Я проверил. :-) Gluk (Kazan)Сравнивать нужно сравнимое, а не мягкое с теплым. Вот взять хоть Схему. И тебе функциональная и структурная :) Если "мягкое" компилируется в код на том же ассемблере что и "теплое" то можно их сравнивать. Gluk (Kazan) P.S. А статья вызывает в памяти ассоциации с небезысвестным ЧАЛом (у которого доска на стене висит криво). Чуть более интеллектуальная маниловщина Не совсем согласен... пытаться придумать что-то другое (пусть даже не новое) - это позитив. Получится, не получится - будущее покажет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 11:22:44 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
D129Ну вот, когда я даю имена методам класса Shuttle - тележка, например, я и создаю этот новый, предметный язык, определяя слова и действия и операторы для конкретной предметной штуки. А делаю я это на базовом языке, необходимость которого вы признаете, и который понимает компилятор, и это или VB, или С++ или С#. krvsa .... все это компилятор сводик к одинаковому объектному коду... Это мне напоминает мышление реляционных фундаменталистов, которые отождествляют моделирование данных с реляционной моделью. Они считают, что если что-то можно выразить на SQL, то значит ничего нового в этом нет. (Но парадокс, что реляционные догматики одновремнно отрицают, что если SQL можно выразить на ассемблере, то в реляционной модели ничего нового нет.) В общем, по мнению Глюка_Казанского и др. реляционной бRатвы, земля держится на пяти реляционных слонах и трех реляционных китах и доказывать им что земля круглая бесполезно Против этого есть только одно возражение: если ЯОП можно свести к ООП, процедурном или ФП, то это не значит, что в нем нет ничего нового. Точно так же существует множество физических дисциплин, хотя фундаментально все они могут сводиться к квантовой механике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 11:27:29 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
D129 Gluk (Kazan) Ой опиши а, очень интересно послушать Гугл еще работает сегодня. Я проверил. :-) Гугл четал - многа букв. Мне твое мнениё интересно ;) D129 Gluk (Kazan)Сравнивать нужно сравнимое, а не мягкое с теплым. Вот взять хоть Схему. И тебе функциональная и структурная :) Если "мягкое" компилируется в код на том же ассемблере что и "теплое" то можно их сравнивать. И что из них получилось теплее, тьфу ты, мягче ??? (ты мене совсем запутал) По буквам: Понятия СТРУКТУРНОЕ и ФУНКЦИОНАЛЬНОЕ ортогональны ничто не запрещает ФУНКЦИОНАЛЬНОМУ быть СТРУКТУРНЫМ Стало быть их ПРОТИВОПОСТАВЛЕНИЕ наводит на нехорошие мысли (может ты все таки императивное поимел ввиду ?) D129 Gluk (Kazan) P.S. А статья вызывает в памяти ассоциации с небезысвестным ЧАЛом (у которого доска на стене висит криво). Чуть более интеллектуальная маниловщина Не совсем согласен... пытаться придумать что-то другое (пусть даже не новое) - это позитив. Получится, не получится - будущее покажет. Угу, а протуливать свои наколенки - это немножко по другому называится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 11:31:41 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
чалНо парадокс, что реляционные догматики одновремнно отрицают, что если SQL можно выразить на ассемблере, то в реляционной модели ничего нового нет. SQL та на ассемблере канечно можна, да токма ломаить свой оптимизатор писать Я за разделение труда. Зачем кажный раз СНОВА и СНОВА изобретать лисапед ??? А вообще оно конечно, если мы чего-то (или кого-то) НЕ ПОНИМАЕМ, для себя спокойнее считать это парадоксальным (а то устои мировоззрения можно пошатнуть, а это уже опасно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 11:38:39 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
авторГугл четал - многа букв. Мне твое мнениё интересно ;) Спасибо, приятно конечно, что мое мнение небезразлично, но подозреваю подвох... :-/ :-) боюсь что тоже получится "многа букав" ... А в общем, я понимаю это так: чистый машинный код - неструктурный, непредметный, нечитаемый (хотя я до сих пор помню что 65 - это извлечь из 5 регистра в стек (ИП5 на ассемблере Б3-34) а 45 - записать из стека в 5 регистр (П5) в одной игровой програмке использовали это 65 и для вызова из регистра, и как адрес перехода на 65 шаг программы (такой выкрутас был возможен только в одном месте программы и давал экономию в 2 ячейки памяти, что при общем количестве 98 было критично) но Goto - отдыхает.) Обертка над ним - Ассемблер Над ассемблером - неструктурные языки программирования. Я программировал на нескольких, но не на IBM, и приводить названия не буду. Их принципиальное отличие - началось управление типами данных. то есть появились числа с плавающей точкой, строки... Это было ново, хотя и было ограничением и заставляло разрабатывать стандарты... Структурные языки - навели порядок в спагетти-коде, и в глобальных переменных, благодаря введению понятия область видимости. Это было ново, и решало проблемы больших программ. ООП - Структуры данных объединили с методами(функциями) в одну связку и назвали это дело классом.В комплекте с динамическим выделением памяти, разработанном на предидущем этапе - это давало возможность множить код программы во время выполнения и выполнять один и тот же код паралельно, синтаксически разделяя используемые данные. В структурном языке пришлось бы создать массив - и каждому процессу дать диапазон в этом массиве. Вот это и было новое и самое полезное отличие. Про способы написания программ, в которых у меня нет практического опыта (не писал я на Haskell) говорить не буду - не имею собственного мнения. Ну а если пофантазировать то, следующим шагом будет не просто умножение заранее определенного кода, а его динамическое написание (самодописывающаяся программа). Может быть, ЯОП - какой-то шаг на пути к этому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 13:32:02 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Ну IMHO неправильно ты это понимаешь :) Если очень грубо то есть (я знаю) три способа писать программы: 1. Императивный (Algol, Basic, Pascal, C, различные ассемблеры и т.п.) 2. Функциональный (LISP, Haskell и менее известные языки) 3. Логический (Prolog и наверняка что то еще) Разбивка по языкам весьма условна, LISP к примеру поддерживает императивное программирование, а в C++ нашелосьмного уголков для функционального. Несколько особняком стоит логическое, но в том же LISP-е оно прекрасно реализуется :) Разница очень упрощенно: 1. Описывают последовательность действий изменяющих состояние неких объектов 2. Программирование без побочных эффектов (например нет присваивания) 3. Программа сама ищет возможные пути решения исходя из некоей декларации Структурное программирование, родоначальником которого является Algol, помимо привычных C и Pascal было унаследовано Схемой (диалект Lisp-а) в некотором роде более функциональной чем Common Lisp (IMHO превратившийся за годы своего существования в помойку). Так что противопоставлять его функциональному никак не следует. Что касается ООП в нем вообще нет какой-то глубокой теории. Кроме того ООП может пониматься ОЧЕНЬ И ОЧЕНЬ по разному (скажем в Smalltalk-е и C++) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 14:26:55 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Насчет самодописывающихся программ говорят лисп хорош. Там уже давно программы пишут программы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 14:32:04 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
да совсем забыл :) "самодописывающиеся" программы это метапрограммирование ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 14:38:17 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
как всегда рулит С++ Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. (с) GameDev.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 03:13:18 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Lepsikкак всегда рулит С++ ... ты хотел сказать Си ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 07:26:17 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) Lepsikкак всегда рулит С++ ... ты хотел сказать Си ? В данном случае С, но это я еще до примеров метапрограмирования не дошел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 20:21:36 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Lepsik Gluk (Kazan) Lepsikкак всегда рулит С++ ... ты хотел сказать Си ? В данном случае С, но это я еще до примеров метапрограмирования не дошел. Ты знаешь язык на котором нельзя писать непонятно ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 09:20:41 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Lepsikкак всегда рулит С++ Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 11:20:22 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Статья излагается понятно, вплоть до этого места: автор Чтобы избежать проблемы выбора, мы решили делать в MPS сразу все. Сначала вы определяете целевой язык в MPS, используя язык структуры. Этот целевой язык должен иметь прямое, «один-к-одному» , отображение в целевой формат. К примеру, если целевой формат – машинный код, в MPS определяется целевой язык, представляющий машинный код; если целевой формат – исходники на Java, определяется Java-подобный целевой язык. Целевой язык не обязан поддерживать все возможности целевого формата, достаточно прямого отображения всех возможностей, которые вам нужны. и тут же автор...обратим внимание на более интересную фазу трансформации. По сути, проблема сведена к тому, чтобы перевести модель с одного языка на другой. Но исходный и целевой языки могут отличаться радикально, что усложняет трансформацию – например, если один узел исходного языка должен отобразиться на множество узлов целевого, разбросанных по целевой модели. А это уже не один к одному... И кроме того, а если один узел не просто отображатеся на множество узлов целевого языка, но и за счет взаимовлияния отображается неоднозначно, в зависимости от других "узлов". Далее вообще непонятно. Чем Итеративный подход отличается от Шаблонов.... Как участвует (еще один) язык запросов модели... Более менее конкретно описываются шаблоны. Но это и так есть во множестве реализаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 11:30:53 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
to All: Вы то-ли не читали, то-ли перевод там хромает (я на русском не читал), то-ли еще что-то. MPS/LOP/... - это технология позволяющая уменьшить разрыв между мышлением человека и "мышлением" компютера. Под программой понимается любое однозначное решение задачи, а вовсе не инструкции процессору или селекты. Все эти OOP, AOP, OOD/OOP, GOF Design Patterns, SQL, ... призваны решить только одну задачу - упростить создание ПО. Ну так вот, LOP развивает эту концепцию далее. авторЭто хорошо, когда и в преклонном возрасте человек не теряет юношеского максимализма и задора P.S. Опыт приходит только с возрастом P.P.S. Но гораздо чаще возраст приходит одинНу сначала бы подумал про кого ты так говоришь. Этот чел - создатель Intellij IDEA. Кто с ней сталкивался и помнит как выглядили другие IDE на время ее выхода, тому думаю все ясно. Martin Fowler где-то упоминал, что IDE можно разделить на те, которые были до выхода IDEA и после. Сочуствую, что к тебе опыт прийдет тогда, когда будет уже не нужен. автор Мне всегда представлялось, что в программировании - процессор - это уровень атомарности. Компилятор пишется для чего? Для конкретного процессора. Следовательно, пока не появится новый процессор, то что бы вы не писали на языке высокого (или сверхвысокого) уровня, .... все это компилятор сводик к одинаковому объектному коду...Ну так и пиши на обьектном коде, нафиг тебе вообще языки программирования? Ты статью вообще читал? Там как раз оч. подробно расписано это заблуждение, что "программирование" - это "написание инструкций для процессора", хотя многие так и думают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2008, 00:02:56 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
private авторЭто хорошо, когда и в преклонном возрасте человек не теряет юношеского максимализма и задора P.S. Опыт приходит только с возрастом P.P.S. Но гораздо чаще возраст приходит одинНу сначала бы подумал про кого ты так говоришь. Этот чел - создатель Intellij IDEA. Кто с ней сталкивался и помнит как выглядили другие IDE на время ее выхода, тому думаю все ясно. Ну да конечно. Он же небожитель и посему какает исключительно бабочками. Собственно высказывание про задор, разумеется, больше не к нему относится, а к разнообразным вчерашним студентам, по верхам нахватавшимся высказываний авторитетов (у которых что то свое на уме, далекое и не всегда понятное и жизненное) и поднимающих знамена холиваров за нейронки внутре, ООБД, трехзвенки и прочий бред. иногда с юношеским задором, но порой и со старческим маразмом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2008, 09:55:00 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
privateЭтот чел - создатель Intellij IDEA. Кто с ней сталкивался и помнит как выглядили другие IDE на время ее выхода, тому думаю все ясно. Я помню много чего. У IDEA была кучка шумных фанатов, приписывавших ей всевозможные воображаемые достоинства. Но, судя по их активности тут в форуме, нелепая мода проходит. Популярные IDE никогда не были хуже, чем IDEA и вроде ничего от неё не заимствовали. Но это тема для обсуждения в форуме по Java. Насчёт ЯОП. Автор темы напрасно предположил,ЯОП - общеизвестное или важное понятие. Плохая статья в плохом журнале, только и всего. Нету его, в общем. Вот, сейчас посмотрел даваемую в статье ссылку по ЯОП http://www.jetbrains.com/mps/ "Проект MPS всё ещё в состоянии исследования". Последняя приведённая новость относится к 16 июня 2005 г. А есть ли в болтологии о ЯОП что-то разумное? Кажется, я обнаружил и такое: автор Если мы хотим сделать создание языков легким, нужно отделить представление и хранение программы от самой программы. Мы должны хранить программы прямо в виде структурированного графа, что дает возможность вносить любые дополнения в язык. Временами текстовое хранилище вообще не нужно. Хорошим примером может послужить Excel. 99% пользователей совершенно все равно, в каком формате хранятся данные – в случае чего, всегда есть импорт и экспорт. Единственная причина использования текста – отсутствия редактора лучшего, чем текстовый. Но это поправимо. Разумным тут кажется деление программы на модули с описанием связей между модулями. На этом разумное кочается, т.к. описание связей делается задачей ЯОП, а его не существует. Между тем, в популярных IDE - Eclipse и Netbeans - она решается. (Поэтому они - не только IDE, как IDEA, а ещё и "платформы для разработки приложений", то есть программ из модулей, причём Eclipse и Netbeans отвечают за организацию связей между модулями (ну и предоставляют готовые модули). Итак, кто не говорит (разработчики Eclipse и Netbeans), тот делает. А кто говорит, тот не делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2008, 12:22:18 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Farus А это уже не один к одному... ИсходныйЯзык <- 1 --- n -> ЦелевойЯзык <--1--1--> ЦелевойФормат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2008, 17:21:53 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Partisan MИтак, кто не говорит (разработчики Eclipse и Netbeans), тот делает. А кто говорит, тот не делает. Есть даже те кто не понимает, а говорит. Навпример в данном случае речь шла о том, что надо отделить модель языка от хранения и представления. То есть хранить в некоем формате, не обяательно текстовом, а представлять в виде текста, схемы и т.д. То есть IDE получается как некий редактор для AST. При чем тут модульность Eclipse? Кстати, насчет "не делает" вы не правы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2008, 17:27:15 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
_модПодход "сделай языки и решай на них задачу" абсолютно правильный и далеко не новый - собсно любой профи так и работает. Хорошие средства саморасширения были еще в клиппере. Так и вспоминается незабвенный Чарльз Мур (Charles "Chuck" Moore) с его Фортом (Forth). Человек сделал язык под свои задачи, и хотя это был скорее "стековый язык среднего уровня", ставший потом метакомпилятором, его возможности по теме поставленного вопроса (приближение синтаксиса языка к предметной области задачи) демонстрируется с помощью этого языка на раз-два... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2008, 19:44:40 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
_модПодход "сделай языки и решай на них задачу" абсолютно правильный и далеко не новый - собсно любой профи так и работает. Хорошие средства саморасширения были еще в клиппере. Я бы сказал, что тут LISP впереди планеты всей. Почитайте про DSL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 11:08:58 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
MasterZivЯ бы сказал, что тут LISP впереди планеты всей. Почитайте про DSL. В принципе, да. Но DSL - это целое направление для разных языков (например logix для питона). У клиппера один из первых DSL - простой и мощный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 12:46:13 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
_мод MasterZivЯ бы сказал, что тут LISP впереди планеты всей. Почитайте про DSL. В принципе, да. Но DSL - это целое направление для разных языков (например logix для питона). У клиппера один из первых DSL - простой и мощный. А M4 для sendmail-а точно не раньше ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 13:15:28 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)А M4 для sendmail-а точно не раньше ? В 60-70-х было много независимых макрогенераторов (типа ML и пр.) В ПЛ/1 был неплохой МГ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 13:44:02 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Partisan M privateЭтот чел - создатель Intellij IDEA. Кто с ней сталкивался и помнит как выглядили другие IDE на время ее выхода, тому думаю все ясно. Я помню много чего. У IDEA была кучка шумных фанатов, приписывавших ей всевозможные воображаемые достоинства. Но, судя по их активности тут в форуме, нелепая мода проходит. Популярные IDE никогда не были хуже, чем IDEA и вроде ничего от неё не заимствовали. Но это тема для обсуждения в форуме по Java. Не тронь святое! :) Мода не проходит. IDEA 8 (глядя на которую сразу возникает чувство, что jetbrains не зря тратит деньги на research MPS и активно использует полученные результаты) кладёт на лопатки все другие ide. Преимущества этой IDE уже давно стали так очевидны, что даже не возникает мыслей, что кто-то может о них не знать и что нужно проводить просветительскую деятельность в этой связи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 14:41:51 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
_мод Gluk (Kazan)А M4 для sendmail-а точно не раньше ? В 60-70-х было много независимых макрогенераторов (типа ML и пр.) В ПЛ/1 был неплохой МГ. PL/I-ый не помню (хотя в институте и учили). давно это було :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 15:06:32 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
beluginЕсть даже те кто не понимает, а говорит. Навпример в данном случае речь шла о том, что надо отделить модель языка от хранения и представления. То есть хранить в некоем формате, не обяательно текстовом, а представлять в виде текста, схемы и т.д. То есть IDE получается как некий редактор для AST. При чем тут модульность Eclipse? Я изложил кратко, поэтому может быть непонятно. Имелась ввиду не модульность самого Eclipse, а поддержка им разработки программ на основе компонент. В цитированном мной фрагменте статьи было о представлении программы в виде графа, то есть в виде компонент и их связей. То есть, "метапрограммирование" можно понимать как описание связей между компонентами (скажем, в виде XML). Уровень абстракции компонент вообще говоря может быть разным, но привёдённое далее предложение расширять сам язык для Java трудно и из статьи непонятно - зачем нужно, то есть это слишком низкий уровень. Но для более высокого уровня (классов и библиотек) это реализовано в Eclipse и Netbeans. Статья, на которую вы указали, относится к 2005 г. Значит, не опровергает. Щас перейду к полному разоблачению Мартина Фаулера с последующим его оправданием . privateMartin Fowler где-то упоминал, что IDE можно разделить на те, которые были до выхода IDEA и после. Разборка с Мартином Фаулером ------------------------------------------- (что он на самом деле сказал об IDEA). Я засомневался, что Marin Fowler мог сказать такое, причём независимо от того, кто такой Martin Fowler (лишь бы не фанат). Поэтому произвёл поиск в Интернете и обнаружил его статью, которая дала повод для странного утверждения: http://www.martinfowler.com статья “Crossing Refactoring’s Rubicon” . Сразу сообщаю вывод – что хотя в странном утверждении употреблены слова из статьи, но они переставлены так, что смысл высказываний Martin-а Fowler-а изменился. То есть, мы имеем обычный религиозный миф IDEAпоклонников - не подлежащие сомнению слова святого брамина Martin-а после долгого стояния на голове... которые тот и не говорил. Привожу основные положения статьи (хотя кому интересно, может прочитать её саму). - Сначала автор сообщает, что он увлекается темой «рефакторинга» (то есть, изменения структуры программ) и сл., интересуется средствами разработки с его поддержкой. - Затем вспоминает историю. Вот ему нравился компонент Smalltalk Refactoring Browser, но поскольку он в основном программирует на Java, то хотел иметь подобное для Java. С 1999 г. он стал получать сообщения, что ведётся работа над такими средствами. Наконец, появился X-ref – дополнительный модуль для редактора EMACS. Но Fowler не хотел использовать EMACS. Затем появился дополнительный модуль jFactor для IDE Visual Age for Java. Поэтому он хотел было объявить январь 2001 г. «месяцем рефакторинга», но тут ещё вдруг появилось и IDEA – с некоторой поддержкой «рефакторинга» - то есть с возможностями поиска и переименования, похожими на Visual Age, но без Extract Method (поиска выделением в тексте), который автор считает необходимым для «сложного рефакторинга» (приводит ссылку на объяснение: статья про Extract Method ) . Поэтому IDEA стало «второстепенным фаворитом» в его фирме там, где нельзя было использовать Visual Age, и вдруг он получил сообщение, что в IDEA добавлена поддержка Extract Method (то есть полная поддержка "рефакторинга"). - Он делает вывод, что в 2001 г. был «перейдён Рубикон» в поддержке «рефакторинга» в IDE для Java (что IDEAпоклонники, применив буйное воображение, истолковали как приход новой эры благодаря IDEA) , выражает мнение (в 2001 г.), что появятся новые средства для «рефакторинга» и рекомендует испытывать их (сейчас есть во всех популярных IDE). Значит --------- Новая эра тогда наступила не вообще в IDE для Java, а в поддержке «рефакторинга» в них. Начало новой эры положила не IDEA, а Eclipse (как потом переименовали Visual Age for Java). И другие не заимствовали идеи у IDEA. Таким образом, Martin Fowler не виноватый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 20:20:52 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Partisan MНо для более высокого уровня (классов и библиотек) это реализовано в Eclipse и Netbeans. Общая идея MPS именно в создании DSL а не классов и библиотек. Возможностями MPS, насколько я знаю, Eclipse и Netbeans не обладают Partisan M Начало новой эры положила не IDEA, а Eclipse (как потом переименовали Visual Age for Java). Насколько я помню VA/J несколько другой продукт даже с большими функциями в чем-то чем Eclipse (помню например, можно было арифметические выражеия из компонентиков строить и связывать их "проводами"). Eclipse совершенно на другой основе написан, судя по всему , просто он заминил VA/J в продуктовой линейке IBM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2008, 07:45:53 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Partisan M Значит --------- Новая эра тогда наступила не вообще в IDE для Java, а в поддержке «рефакторинга» в них. Начало новой эры положила не IDEA, а Eclipse (как потом переименовали Visual Age for Java). И другие не заимствовали идеи у IDEA. Таким образом, Martin Fowler не виноватый. :) Готов участвовать в перестрелке о том, где рефакторинг лучше реализован сейчас, а не в 2001 году. По возможностям (количеству, качеству) рефакторинга IDEA впереди планеты всей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2008, 17:03:45 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
авторЯ изложил кратко, поэтому может быть непонятно. Имелась ввиду не модульность самого Eclipse, а поддержка им разработки программ на основе компонент. В цитированном мной фрагменте статьи было о представлении программы в виде графа, то есть в виде компонент и их связей. То есть, "метапрограммирование" можно понимать как описание связей между компонентами (скажем, в виде XML). Уровень абстракции компонент вообще говоря может быть разным, но привёдённое далее предложение расширять сам язык для Java трудно и из статьи непонятно - зачем нужно, то есть это слишком низкий уровень. Но для более высокого уровня (классов и библиотек) это реализовано в Eclipse и Netbeans.Метапрограммирование можно понимать по разному, если для кого-то это "связи между компонентами", чтож, пусть так и думают :). То что понаписано в цитате, не имеет ни малейшего отношения к тому что написано в статье. Вы статью читали? Какие нахер XML, Java, компоненты, классы и библиотеки? :) Вот примеры программ на LOP(теоретические): - Модель BPM процесса. "Программа" - "рисунок", то что ты видишь в том-же Visio. "Программист" - бизнес аналитик который с ней работает. - САП система, программа - Схема дома, с кучей комнат. "Программисты" - проектировщики, "IDE" - та хреновина в которой они все это чертят. - Построение интерфейса, ты пишеш - "хочу получить от пользователя номер его счета, пароль, и еще с десяток всякого добра". Для тебя автоматом создается форма. Такие вещи уже существуют, LOP позволяет создавать их быстрее и проще. Где тут в вышеперечисленном XML, и расширения Java? авторЩас перейду к полному разоблачению Мартина Фаулера с последующим его оправданием. Статья была другая, искать точную ссылку мне влом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2008, 01:50:52 |
|
||
|
Языково-ориентированное программирование
|
|||
|---|---|---|---|
|
#18+
Понятно, что та речлизация которая предложена в статье, далека от желаемой, но тут обсуждение даже не этого. Непонимание самой цели, т.е. для чего вообще вся эта бодяга разводится. А все эти обсуждения классов хмл и прочей лабуды, как раз и есть те ограничения мышления, упомянутые в статье и за которые большинство и не может вылезти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2008, 01:55:20 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1344806]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
194ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
4ms |
| others: | 202ms |
| total: | 517ms |

| 0 / 0 |
