|
|
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
То что ты хочешь создать но не можешь толком сформулировать витает в воздухе уже хз сколько лет. В силу сложности до сих пор реализована только для частных случаев, которые из них называются DSL, некоторые code generation, и т.п. В последние пару лет это направление активизировалось и возникли "метаязыки" для создания DSL, например JetBrains MPS, (Meta Programming System). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 15:20:15 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
sm. Language Oriented Programming ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 15:22:11 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
privatesm. Language Oriented Programming Это уже намного ближе, хоть реализации, при пристальном при рассмотрении оказались больше фонарем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 21:18:01 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
maytonИдея применять на практике метаязык вылезет большим боком при использовании отладчика. Если в случае с ЯП - сообщение с ошибкой более-менее информативно. И девелопер, зная свой язык и (поверхностно) язык ассемблера может определить фрагмент кода или оператор, который вызывает ошибку, то в метаязыке такой возможности не будет. Данные отладки не содержат ссылок на код метаязыка. Бред выше от начала и до конца. Метаязык - это средство описания макроконструкций (параметризированных шаблонов кода на конкретном языке), т.е. в конечном счете программист будет иметь дело с модулем на целевом языке (который будет указан как параметр, при генерации кода). Ты вроде и не ребенок, и вроде не настолько туп, а тоже не понял задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 21:20:50 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПеченкинМетаязык - это средство описания макроконструкций (параметризированных шаблонов кода на конкретном языке) тоже не понял задачи? А ты перечитай собственный первый пост ПечонкинЕсть идея писать на некоем мета(макро)языке, а в результате, легким движением руки, получать генерированный код уже под конкретный ЯП. Т.е. имеем на входе (пример) Код: plaintext 1. 2. 3. 4. 5. Вот признайся наконец, что в примере вовсе не тот "мета(макро)язык", о котором говорится строчкой ранее (ведь он не описывает никаких макроконструкций, он их уже использует), тем самым ты подтвердишь всеобщее мнение, что крайне плохо справляешься с формулировкой своих мыслей, что само по себе не очень страшно, но не дает тебе морального права упрекать кого-либо в плохой "понятливости". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 21:39:19 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин, грибы? трава? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 22:24:19 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПочконкинПеченкинМетаязык - это средство описания макроконструкций (параметризированных шаблонов кода на конкретном языке) тоже не понял задачи? А ты перечитай собственный первый пост ПечонкинЕсть идея писать на некоем мета(макро)языке, а в результате, легким движением руки, получать генерированный код уже под конкретный ЯП. Т.е. имеем на входе (пример) Код: plaintext 1. 2. 3. 4. 5. Вот признайся наконец, что в примере вовсе не тот "мета(макро)язык", о котором говорится строчкой ранее (ведь он не описывает никаких макроконструкций, он их уже использует), тем самым ты подтвердишь всеобщее мнение, что крайне плохо справляешься с формулировкой своих мыслей, что само по себе не очень страшно, но не дает тебе морального права упрекать кого-либо в плохой "понятливости". Да, я не знал, что дети будут насолько тупы, что не поймут банального. Вот код на МЕТАязыке: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. А с мыслями у меня нормально, это просто у вас с абстрактным мышлением и воображением туго. Хотя пара тройка пробежавших пионеров что-то умное ляпнуло, вон про Language Orientied Programming да про DSL. Один даже понял, что такое M4 (чему я был мегаудивлен уже). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 22:36:14 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин Конкинку(чему я был ме т аудивлен уже). :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 01:26:35 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин Конкинку пишет: > А с мыслями у меня нормально, это просто у вас с абстрактным мышлением и > воображением туго. Печенкин, вы можете ещё раз сформулировать, хотя бы себе, какие выгоды вы собираетесь получить от этого задуманного вами ? Я ещё раз говорю, что выгоды от "переписывания" с паскаля на Си или фортран не будет никакой, как не будет и никакой пользы, только вред -- лишнее звено. Вам будет легче найти компилятор какого-то языка или связать их как библиотеки на целевой платформе. Но переписать например с лиспа или хаскеля на Java вам не удастся. Для этого вам на Java придётся реализовать ядро лиспа или хаскеля. А генерировать код на лиспе или питоне, или хаскеле, имитирующий аналогичный код на Java бессмысленно, это всё равно, что ехать на машине по шоссе, не нажимая на газ, на первой скорости. Технически проблемы все решаемы. Но разные языки - это ещё и разные подходы к решению задач, разные идеологии. Так, как пишут напр. WEB-сайты на схеме и лиспе с использованием continuation не пишет, я думаю, никто в других языках. Этот барьер как вы собираетесь преодолевать ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 09:58:11 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин Метаязык - это средство описания макроконструкций (параметризированных шаблонов кода на конкретном языке), т.е. в конечном счете программист будет иметь дело с модулем на целевом языке (который будет указан как параметр, при генерации кода). Зарегистрируйся в форуме. И продолжим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 10:01:37 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
печенкин, зачем тебе редактор ворд с макросами ? Кому-то явно нечем заняться, только не говори, что по работе затачиваешь под все и вся. Идея конечно неплохая, но вот реализация будет нудная(долгая) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 12:01:06 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
MasterZiv Технически проблемы все решаемы. Но разные языки - это ещё и разные подходы к решению задач, разные идеологии. Схема такая: 1. Берем или придумывем ЯП1 2. Пишем макросы на МГ для перевода ЯП1=>ЯП2 3. Если в самом ЯП2 чего-то не хватает, то на ЯП2 пишем функции-процедуры и включаем их в макросы т.о. разница идеологий прячется в функции-процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 13:01:18 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин Конкинку Да, я не знал, что дети будут насолько тупы, что не поймут банального. Печенкин. большая просьба сосредоточится на технических вопросах программирования и не постить ваше мнение об участниках форума ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 13:27:45 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
_мод пишет: > Автор: _мод Это Печенкин, или нет ? > 3. Если в самом ЯП2 чего-то не хватает, то на ЯП2 пишем > функции-процедуры и включаем их в макросы > т.о. разница идеологий прячется в функции-процедуры Так вот, ОЧЕНЬ МНОГО ПИСАТЬ придётся. на всех целевых языках. А зачем ? Смысла нет. Лучше просто создать свой новый язык. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 13:46:46 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
MasterZivСмысла нет. Как посмотреть. Я уже приводил в пример реализацию клиппера - он наполовину сделан на собственном препроцессоре (вопрос - зачем ?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 15:12:33 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
МмихалычИдея конечно неплохая, но вот реализация будет нудная(долгая):) И реализация будет нудная. И внедрение и использование этого языка будет никому не нужно. И отладка и внесение изменений просто невозможна. Даже затрудняюсь представить себе задачу или проблему, где такое программирование будет нужным. Гайки, которыми подкручивают аппаратные расхождения - полностью покрывают прагмы и макропроцессоры. Шаблоны проектов, ORM-сущностей и всяких бинов строят мастерами создания проектов. А кому нужна универсальная "пуля" ? Кто потянет все её накладные расходы? И ради чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 16:27:33 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
maytonДаже затрудняюсь представить себе задачу или проблему, где такое программирование будет нужным. Создание универсальных библиотек класса libjpeg. maytonГайки, которыми подкручивают аппаратные расхождения - полностью покрывают прагмы и макропроцессоры. Шаблоны проектов, ORM-сущностей и всяких бинов строят мастерами создания проектов. А кому нужна универсальная "пуля" ? Кто потянет все её накладные расходы? И ради чего? Не пиши бред, если не понимаешь суть задачи. Просто совет. На будущее. Выглядишь просто смешно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 21:02:08 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
MasterZiv Печенкин Конкинку пишет: > А с мыслями у меня нормально, это просто у вас с абстрактным мышлением и > воображением туго. Печенкин, вы можете ещё раз сформулировать, хотя бы себе, какие выгоды вы собираетесь получить от этого задуманного вами ? А выше было не понятно? Хорошо. Объясняем еще раз. Для создания универсальных программных библиотек. Написано один раз, запускается везде, на любом языке, платформе и идеологии. Через трансляцию макросов. MasterZiv Я ещё раз говорю, что выгоды от "переписывания" с паскаля на Си или фортран не будет никакой, как не будет и никакой пользы, То, что тебе не будет пользы - это ты верно заметил. Но твои проблемы это твои проблемы. MasterZivтолько вред -- лишнее звено. Вам будет легче найти компилятор какого-то языка или связать их как библиотеки на целевой платформе. Но переписать например с лиспа или хаскеля на Java вам не удастся. Для этого вам на Java придётся реализовать ядро лиспа или хаскеля. А генерировать код на лиспе или питоне, или хаскеле, имитирующий аналогичный код на Java бессмысленно, это всё равно, что ехать на машине по шоссе, не нажимая на газ, на первой скорости. Такие задачи не ставятся вообще. Ибо смешны и глупы. И вообще, кому впился этот ваш хаскель? MasterZivТехнически проблемы все решаемы. Но разные языки - это ещё и разные подходы к решению задач, разные идеологии. Так, как пишут напр. WEB-сайты на схеме и лиспе с использованием continuation не пишет, я думаю, никто в других языках. Этот барьер как вы собираетесь преодолевать ? Выше _мод сказал как. Еще выше я сам говорил как. Кто то еще не понял как? Тогда в детсад, читать буквари. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 21:06:50 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
grexhide, открой уже личико. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 21:51:21 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
_мод пишет: > Как посмотреть. Я уже приводил в пример реализацию клиппера - он > наполовину сделан на собственном препроцессоре (вопрос - зачем ?). Это -- не очень интересный пример. Это - реализация языка более высокого уровня, 4GL, причём одного, на языке более низкого уровня, С, тоже одном. Реализация состоит из: -- реализации базовых примитивов данного 4GL-языка (клиппера) на данном ЯВУ (с) в виде библиотеки -- реализации транслятора/макрогенератора из 4GL-языка в данный ЯВУ, использующий данную библиотеку примитивов. Вот если бы целевых ЯВУ было бы много, на каждом из них пришлось бы делать эту библиотеку базовых примитивов. НА КАЖДОМ !! А если целевые языки не совсем ЯВУ, а например другие 4GL, то, даже если задасться целью сделать такую библиотеку базовых примитивов на нём, иногда это попросту невозможно в силу ограниченности средств этого целевого 4GL-я. Да и то, я бы сказал, итоговая технология клиппера по качеству вряд ли чем-то была лучше аналогов, сделанных по другой технологии, без трансляции одного языка в другой (FoxPro, DBase). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 23:08:41 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин пишет: > Хорошо. Объясняем еще раз. Для создания универсальных программных библиотек. > Написано один раз, запускается везде, на любом языке, платформе и идеологии. > Через трансляцию макросов. Возмите Win32 API. Чем вам не универсальная библиотека ? Используется на разных языках, на разных технологиях. На разных платформах. Возмите любые библиотеки в *NIX. Например, ICONV. То же самое. Используется в массе языков. Всё это написано на С (в основном). И всё это РАБОТАЕТ практически. Чем вам этот подход не нравится ? не подходит ? > То, что тебе не будет пользы - это ты верно заметил. Но твои проблемы > это твои проблемы. Я намекал, что не будет пользы никому. Если у тебя есть библиотека SSP на фортране, и граф. приложение на С/С++, ты можешь просто их слинковать вместе и -- вот пожалуйста, оно, что тебе нужно, не нужно при этом ничего писать, это -- работает. > Такие задачи не ставятся вообще. Ибо смешны и глупы. И вообще, кому > впился этот ваш хаскель? гыгыгы ... Т.е. собираетесь с С на паскаль переписывать... нуну... Ещё раз говорю, это никому не нужно. С из паскаля и Джава и наоборот и так можно вызывать. > Выше _мод сказал как. Еще выше я сам говорил как. Кто то еще не понял как? > Тогда в детсад, читать буквари. Я рад за вас, что вы так уверены в полезности ваших начинаний. Кстати, есть проект OINK, он, в общем, тоже посвящён сходной, в общем, тематике -- связать все языки и все технологии. Посмотрите. Но на сколько я знаю, он не особо развивается. Потому что видимо не особо кому-то нужен. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 23:18:50 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
MasterZiv И всё это РАБОТАЕТ практически. Чем вам этот подход не нравится ? не подходит ? а) Win32? С? ок, допустим это можно будет перекомпилировать под Unix б) но как быть, мой юный падаван, с .NET, Java и Flash? Все эти ребята пошлют тебя с Pure C куда подальше, и будут абсолютно правы. У них идея такая. Safe Code называется. MasterZiv Я намекал, что не будет пользы никому. Эти твои намеки никого не интересуют, вообще-то. Даже тебя самого. MasterZiv Ещё раз говорю, это никому не нужно. С из паскаля и Джава и наоборот и так можно вызывать. Ок. Раз ты сам с трудом понимаешь, то попытаюсь объяснить популярно. Компоненты, как и любые библиотечные средства, продаются в исходных текстах. Глупо разработчикам на Java продавать исходный текст на C. Нет, мысль не понятна? MasterZivКстати, есть проект OINK, он, в общем, тоже посвящён сходной, в общем, тематике -- связать все языки и все технологии. Посмотрите. Но на сколько я знаю, он не особо развивается. Потому что видимо не особо кому-то нужен. С этого нужно было начинать. Спасибо за ссылку, любой материал интересен. http://freshmeat.net/projects/oink/ http://www.cubewano.org/oink Только я не понял, какое это имеет отношение? Или что имелось в виду? это вообще оно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 00:20:12 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
MasterZivДа и то, я бы сказал, итоговая технология клиппера по качеству вряд ли чем-то была лучше аналогов, сделанных по другой технологии, без трансляции одного языка в другой (FoxPro, DBase). Clipper был лучше в разы. Просто проект развиваться не стал сам по себе. Вернее он стал развиваться, перешел в Visual Objects и так далее, а потом и вовсе обычное дело - продажа в могильную яму софта - компанию CA. А FoxPro победил просто как средство для кодирующих пользователей. Т.е. что-то вроде 1С или Access, да VB был, да и есть еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 00:23:40 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПеченкинmaytonДаже затрудняюсь представить себе задачу или проблему, где такое программирование будет нужным. Создание универсальных библиотек класса libjpeg. maytonГайки, которыми подкручивают аппаратные расхождения - полностью покрывают прагмы и макропроцессоры. Шаблоны проектов, ORM-сущностей и всяких бинов строят мастерами создания проектов. А кому нужна универсальная "пуля" ? Кто потянет все её накладные расходы? И ради чего? Не пиши бред, если не понимаешь суть задачи. Просто совет. На будущее. Выглядишь просто смешно. ну так это определенная специализиорванная ниша, причем тут все остальное, зачем туда пихать что-то еще ? Как грится: "нафига, козе баян ?" Сделайте сначала для своей задачи, посмотрите подводные камни, а потом придете и будете восторгаться своими мыслями-эмоциями по этому поводу здесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 11:37:32 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
MasterZiv Это -- не очень интересный пример. Это - реализация языка более высокого уровня, 4GL, причём одного, на языке более низкого уровня, С, тоже одном. Боюсь, что вы не в курсе. В клиппере команды клиппера с помощью макропроцессора превращаются в вызовы функций тоже клиппера. Этим инструментом можно расширять язык практически без ограничений. При этом целевым языком может быть что угодно - хоть китайский. MasterZiv иногда это попросту невозможно в силу ограниченности средств этого целевого 4GL-я. Это проблема выбора целевого языка. В общем случае целевой язык должен быть мощнее реализуемого, но ниже уровнем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 14:14:38 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35824545&tid=1344650]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 391ms |

| 0 / 0 |
