|
|
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Собственно говоря вопрос. Есть идея писать на некоем мета(макро)языке, а в результате, легким движением руки, получать генерированный код уже под конкретный ЯП. Т.е. имеем на входе (пример) Код: plaintext 1. 2. 3. 4. 5. А потом бац, запускаем нечто, и получаем на выходе или Delphi код Код: plaintext 1. 2. или Java код Код: plaintext 1. 2. C++ код Код: plaintext 1. ну и так далее, вопрос только в том, как шаблоны описывать (нивелирующие вопросы конечного языка). А теперь вопрос. Как сделать такое - не вопрос, но не хочется изобретать велосипед. Потому интересно, есть ли уже готовые решения (какие кодогенерирующие шаблоны для Lisp-а? M4 макросы и т.д.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2009, 22:50:36 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печонкин, А на кой? Все равно универсального не получится ничего. Слишком объемная задача. Ты под с++ попробуй напиши хотя - бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2009, 23:26:31 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
SQL_LamerПечонкин, А на кой? Зачем нужна кроссплатформенность? Слегка идиотский вопрос. SQL_LamerВсе равно универсального не получится ничего. Слишком объемная задача. Получится (если захотеть). И не слишком. SQL_LamerТы под с++ попробуй напиши хотя - бы. Уже написано, теперь вопрос как это автоматически переводить на другие языки. Про "компиляцию" аля Adobe Alchemy не надо рассказывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 00:40:27 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПечонкинЗачем нужна кроссплатформенность? Слегка идиотский вопрос. При чем тут кроссплатформенность? ПечонкинПолучится (если захотеть). И не слишком. Ну как скажешь. ПечонкинУже написано, теперь вопрос как это автоматически переводить на другие языки. Так а что написано - то? С++ кодогенератор, или что? Закеж пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 00:45:35 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
SQL_LamerПечонкинЗачем нужна кроссплатформенность? Слегка идиотский вопрос. При чем тут кроссплатформенность? Почитай вот это http://en.wikipedia.org/wiki/Cross-platform и вот это http://en.wikipedia.org/wiki/Computer_platform поймешь при чем. На русской википедии можешь не читать, там ламеры понаписали бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 00:53:25 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печонкин, вот тебе первый попавший кусок кода на первом попавшем языке, и объясни, как ты эту свою "кроссплатформенность" будешь осуществлять(можно очень примерно) ;) Код: 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. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 00:57:18 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПечонкинSQL_LamerПечонкинЗачем нужна кроссплатформенность? Слегка идиотский вопрос. При чем тут кроссплатформенность? Почитай вот это http://en.wikipedia.org/wiki/Cross-platform и вот это http://en.wikipedia.org/wiki/Computer_platform поймешь при чем. На русской википедии можешь не читать, там ламеры понаписали бред. Вот по твоей ссылке и написано: In computing, cross-platform (also known as multi-platform) is a term used to refer to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms. Так я и спрашиваю, при чем тут кодогенерация? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:00:56 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Элементарно. Код: plaintext 1. 2. 3. 4. 5. Дальше банально и тупо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:01:38 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПечонкинЭлементарно. Код: plaintext 1. 2. 3. 4. 5. Дальше банально и тупо. Ну вот ведь в твоей ссылке : ...that are implemented and inter-operate on multiple computer platforms. Так я и в третий раз спрашиваю, как это будет выглядеть - то под другой осью - то? Так, как ты написал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:05:26 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
SQL_LamerТак я и спрашиваю, при чем тут кодогенерация? Не тупи. Код генерируется из универсального, обобщенного языка под конкретный язык конкретной платформы. Я в первом посте написал что должно быть (там как раз три платформы, хотя их может быть хоть два десятка, зависит только от шаблонов, которые будут превращать всякие EQ, SET, CLASS, METHOD в конкретные конструкции конкретного языка). Что тут не ясного? Еще раз. Код на универсальном языке, из которого генерируется код для конкретного языка. Конкретный язык - параметр кодогенератора, а сам по себе описывается отдельно, как набор шаблонов. Вот сейчас стоит вопрос - есть ли такие шаблоны в природе. Гугл ответа не дал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:05:40 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печонкин, Зачем столько агрессии: "не тупи", "идиотский вопрос". Я ведь по доброму интересуюсь. "конкретный язык конкретной платформы." Вот опять наверно туплю :( С++ - это конкретный язык какой конкретно платформы по твоему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:15:05 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Может я что - то не то под платформой понимаю? Ты что имеешь в виду то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:17:26 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
А под платформой ты видимо понимаешь компилятор\интерпретатор определенного языка o_O Так что - ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:19:55 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
SQL_LamerС++ - это конкретный язык какой конкретно платформы по твоему? С++ как язык? Вполне возможно. Более того, GCC от ICC и от MSCC, а уж от BCC или выбкидыш Managed C++ кагбе даже не слегка может отличаться, прикинь. А платформа - это не обязательно операционка или железка, платформа - это и программное окружение (банально - .NET это платформа, как и UNIX-ы всякие, со своими причудами, может иметь кучу несовместимых реализаций C++, что мы и видим на практике). Странно, что ламеры этого не знают? Наверное нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:20:43 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПеченкинSQL_LamerС++ - это конкретный язык какой конкретно платформы по твоему? С++ как язык? Вполне возможно. Более того, GCC от ICC и от MSCC, а уж от BCC или выбкидыш Managed C++ кагбе даже не слегка может отличаться, прикинь. А платформа - это не обязательно операционка или железка, платформа - это и программное окружение (банально - .NET это платформа, как и UNIX-ы всякие, со своими причудами, может иметь кучу несовместимых реализаций C++, что мы и видим на практике). Странно, что ламеры этого не знают? Наверное нет. Ну вот. Опять агрессия. Добрее надо быть. Ламеры думают, что нет - это фреймворк, а не платформа. Таково мнение ламеров на сегодняшний день ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:23:27 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
SQL_LamerПечонкин, Зачем столько агрессии: "не тупи", "идиотский вопрос". Я ведь по доброму интересуюсь. паренёк просто не понимает, что такое плюсы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:24:21 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
egorych, Интерестно, ты мне или ему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:26:09 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
SQL_LamerНу вот. Опять агрессия. Добрее надо быть. Ламеры думают, что нет - это фреймворк, а не платформа. Таково мнение ламеров на сегодняшний день ;) Я ссылки выше дал. Сходи еще раз прочитай, что такое платформа. Software platform examples Operating system platform examples И так далее. Заодно примешь решение, что такое JVM - фреймворк или нет. Можешь и поймешь чего, в буквах, да вон "коллеге" (по ламерству?) расскажешь про плюсы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:27:10 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПеченкинSQL_LamerНу вот. Опять агрессия. Добрее надо быть. Ламеры думают, что нет - это фреймворк, а не платформа. Таково мнение ламеров на сегодняшний день ;) Я ссылки выше дал. Сходи еще раз прочитай, что такое платформа. Software platform examples Operating system platform examples И так далее. Заодно примешь решение, что такое JVM - фреймворк или нет. Можешь и поймешь чего, в буквах, да вон "коллеге" (по ламерству?) расскажешь про плюсы. Опять оскорбления. Ладно. Будет релиз - дай знать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 01:28:01 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Это все уже есть. Например, у PyPy, yhc есь бекенды для генерации C и JavaScript ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 11:38:02 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин - типичный хам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 13:08:09 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Denis.Печенкин - типичный хам. Лучше быть типичным хамом, чем типичным тормозом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 15:50:18 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин, У меня чисто ламерский вопрос возник к гениальному автору. Положим, я в с++ ни бум - бум. Зато я получил в распоряжение этот твой чудный метаязык. Могу я на плюсах забацать, ну скажем, банальный блокнот? И второй, еще более ламерский вопрос: Положим, я кул хакер с++, для чего мне писать на метасуперпуперязыке, чтобы в результате получить те же исходники на плюсах? зы. Поменьше экспрессии, пжалста ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 15:56:53 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
beluginЭто все уже есть. Например, у PyPy, yhc есь бекенды для генерации C и JavaScript Уже намного ближе, но не совсем то. Питон и хаскель как таковые не интересуют, больше интересен макро язык в чистом виде, вроде m4 или какой Lisp, позволяющие определять собственные языковые макро-конструкции . Впрочем, спасибо за наводку, кое-что там действительно заинтересовало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 16:01:04 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПечонкинbeluginЭто все уже есть. Например, у PyPy, yhc есь бекенды для генерации C и JavaScript Уже намного ближе, но не совсем то. Питон и хаскель как таковые не интересуют, больше интересен макро язык в чистом виде, вроде m4 или какой Lisp, позволяющие определять собственные языковые макро-конструкции . Впрочем, спасибо за наводку, кое-что там действительно заинтересовало. Лисп не макроязык. Посмотри википедию - ты ее так любишь ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 16:02:20 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин, не вполне понятно, зачем когогенерировать, например, паскаль. и языков с макросами хвалят немерле. А еще можно посмотреть Осло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 16:12:01 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печонкин, насколько я понимаю, то сама идея хорошая - сделать что-то универсальное с определённым стандартом. Но именно в данном случае возникает вопрос для чего? Ну например, если бы у меня был выбор какой код юзать, написанный на делфях или на С++, то я бы выбрал второй, и думаю так бы поступил любой (так как если оба кода дают одинаковую функциональность, то лучше брать тот, который более компактный и при компиляции даёт меньшие обьёмы). И ещё один минус данной идеи. Даже при том, что я не очень хорошо умею программировать, я бы отдал предпочтение написать код на чистых делфях, чем писать код на непонятном мне языке (который сначала надо бы выучить и понять), а потом ещё и надеяться, что этот код будет преобразован именно в то, что я имел ввиду при написании. И третье... Мне интересно, каким образом будут формироваться шаблоны для того же делфи (паскаля). Язык с довольно жёсткой структурой и обьявление чего-либо где-попало не подойдёт. Ну взять например импорт некой функции из какой-либо длл (написаной самим программистом) с последующим использованием её в программе. Если я правильно понял работу данного метаязыка, то мне эта задача кажется очень трудоёмкой, и потому достаточно бесполезной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 16:13:18 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
SQL_LamerПеченкин, У меня чисто ламерский вопрос возник к гениальному автору. Положим, я в с++ ни бум - бум. Зато я получил в распоряжение этот твой чудный метаязык. Могу я на плюсах забацать, ну скажем, банальный блокнот? В идеале метаязык абстрагирован от конкретного языка. Но сам ты написать не сможешь (ибо не бум-бум принципиально), потому как конструкции метаязыка тебе нужно будет сначала описать в виде конечных шаблонов на C++ (в шаблон подставляются лишь конкретные имена переменных, фукнций и прочего, к примеру IF(A, B) буде преобразована в сишную if (a == b)). Ясен пончик, что для любого программера средней руки это простая задача, но ламер это даже не кодер, не то что не программер. Хотя если кто-то за тебя шаблоны нагенерит, то да, ты сможешь написать. Наверное. SQL_LamerИ второй, еще более ламерский вопрос: Положим, я кул хакер с++, для чего мне писать на метасуперпуперязыке, чтобы в результате получить те же исходники на плюсах? Потому что для JVM нет приличной реализации C++. Кроме того, ты, к примеру, решил написать некую библиотеку, скажем так, libjpeg22. Но хочешь, чтобы ей пользоваелись и программисты на Delphi, и на Java и на C++, притом ты не хочешь навязывать Delphi-стам obj модули, а яверов заставлять пользоваться всякую чушь (для них) вроде JNI. Каждой группе разработчиков ты будешь поставлять версию библиотеки на том языке, на котором они работают, сгенерированную из метаязыка. Написал один раз - получил версии на всех языках, для которых есть шаблоны трансляции. SQL_Lamerзы. Поменьше экспрессии, пжалста ;) Ты имеешь в виду поменьше торможения? Так это не ко мне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 16:13:21 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
beluginПеченкин, не вполне понятно, зачем когогенерировать, например, паскаль. Потому что есть программисты на паскале. Это парадоксально? beluginи языков с макросами хвалят немерле. Смотрел, не то. beluginА еще можно посмотреть Осло Ок, гляну, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 16:14:48 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПрограмёрПечонкин, насколько я понимаю, то сама идея хорошая - сделать что-то универсальное с определённым стандартом. Но именно в данном случае возникает вопрос для чего? Ну например, если бы у меня был выбор какой код юзать, написанный на делфях или на С++, то я бы выбрал второй, и думаю так бы поступил любой (так как если оба кода дают одинаковую функциональность, то лучше брать тот, который более компактный и при компиляции даёт меньшие обьёмы). А я вот не думаю. И код на C++ не стал бы использовать принципиально, максимум, что рассмотрел бы - это плоские декларации в DLL, и не более того. С++ - это никчемный тупик эволюции в некоторых областях (в RAD - на 100%). У яверов умоминание C++ вызывает аналогичную идиосинкразию. Програмёр И ещё один минус данной идеи. Даже при том, что я не очень хорошо умею программировать, я бы отдал предпочтение написать код на чистых делфях, чем писать код на непонятном мне языке (который сначала надо бы выучить и понять), а потом ещё и надеяться, что этот код будет преобразован именно в то, что я имел ввиду при написании. Это уже твои личные проблемы. Задача стоит именно кроссязыковой (мультиязыковой) библиотеки. Кому как удобно писать, сначала на Delphi, потом на метаязыке (с проверкой результата с оригиналом) - это уже личные трудности разработчика. Конечный результат (исходный текст) должен быть на метаязыке. А отладку делай на том языке, на котором тебе больше нравится (сгенерил, запустил в IDE, нашел баг, исправил в метаязыке, перегенерил). Напряжно, да, но иного способа сделать именно независимую от конкретного языка библиотеку я не вижу. ПрограмёрИ третье... Мне интересно, каким образом будут формироваться шаблоны для того же делфи (паскаля). Ты с m4 вообще не знаком? И понятие параметризированного макроса является откровением? ПрограмёрЯзык с довольно жёсткой структурой и обьявление чего-либо где-попало не подойдёт. Ну взять например импорт некой функции из какой-либо длл (написаной самим программистом) с последующим использованием её в программе. Если я правильно понял работу данного метаязыка, то мне эта задача кажется очень трудоёмкой, и потому достаточно бесполезной. Логически бессвязный бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 16:20:33 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Вообще в соцприроде бывает, например, чтобы эстонцу сообщить что-то азербайджанцу - с эстонcкого на русский с русского на азербайджанский. Эст зовет другого эста, знающего русский, и тот переводит на русский. Азер зовет другого азера, которой знает русский, и тот переводит с русского тому азеру. А можно обучить всех эсперанто. Но эсператно всегда беднее, чем любой натуральный язык. Вот обедненный-усеченный английский в мире вроде виртуальной машины на всех официальных платформах. И что - всем думать на убого-усеченно английском, а потом переводить в родной язык? В каждом языка своя уникальная ценность в чем-то, чего нет в другом. Всяких суперменов губили несупермэны в деталях, которые у несуперменов были лучше. Сделать такой супервыразительный суперCLI и писать на суперCLI Net и Mono, потом переводя в Python или C#? СуперCLI уже не нужны будут Python или C#. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 17:50:03 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
AlexandrPlusВообще в соцприроде бывает, например, чтобы эстонцу сообщить что-то азербайджанцу - с эстонcкого на русский с русского на азербайджанский. Эст зовет другого эста, знающего русский, и тот переводит на русский. Азер зовет другого азера, которой знает русский, и тот переводит с русского тому азеру. А можно обучить всех эсперанто. Но эсператно всегда беднее, чем любой натуральный язык. Вот обедненный-усеченный английский в мире вроде виртуальной машины на всех официальных платформах. И что - всем думать на убого-усеченно английском, а потом переводить в родной язык? Примерно так. AlexandrPlusВ каждом языка своя уникальная ценность в чем-то, чего нет в другом. В данном случае уникальности не интересуют вообще. AlexandrPlusВсяких суперменов губили несупермэны в деталях, которые у несуперменов были лучше. Назови хоть одну кроссплатформенную программную библиотеку? Тотоже. Ребята из GTK+ вон себе жо..у порвали на американский флаг, пытаясь привинтить биндинги в питон. А могли бы сразу писать на чем-то универсальном. AlexandrPlusСделать такой супервыразительный суперCLI и писать на суперCLI Net и Mono, потом переводя в Python или C#? СуперCLI уже не нужны будут Python или C#. Речи нет о мировом господстве. Всегда найдутся программисты ниже-средней руки, тачающие незабвенный АРМ-Склад на конкретном языке. Но в данном случае речь идет о библиотечных средствах (повторяюсь, если кто еще не сразу понял). Для особо недоходчивых - писаться будет только ядро. Всякие интерфейсные или платформозавимые моменты будут строгаться на средствах конкретной платформы. Неужели так трудно это вкурить? Ну представьте, что C++ или Java - это ассемблер. А вы сейчас будете свой C сочинять, который будет транслировать в "Java ассемблер". А вместо аппаратных каких прерываний будут такие моменты, как коллекции (в Java), массивы (в чистом C как "ассемблере"). Ну и так далее. Базовые то абстракции, блин, везде подобны. Везде структуры, списки, ссылки, ветвления, циклы, функции-методы. Как и в человеческих языках. Существительное, прилагательное и глагол есть в ЛЮБОМ языке. А тонкости написания/понимания "мама мыла раму" или "раму мыла мама" не важны (ими можно пренебречь). Один хрен - мама мыла рама => рама есть вымыта мамой => рама чистая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 18:00:56 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Этот способ сводин на нет все преимущества конкретного языка. В этоге получается, что писать придётся на неком паскалеподобном нежизнеспособном уродце. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 21:18:36 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
йййЭтот способ сводин на нет все преимущества конкретного языка. Про какие именно преимущества идет речь? Можно пример? Берем за основу ANSI С. Что именно не удастся написать на ANSI C (более примитивных языков вроде нет)? йййВ этоге получается, что писать придётся на неком паскалеподобном нежизнеспособном уродце. Лисп подобном, вполне жизнеспособном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 21:31:22 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПечонкинЧто именно не удастся написать на ANSI C (более примитивных языков вроде нет)? Human-readable реализацию карринга, ленивости, замыканий, продолжений etc. Или читаемость сгенерированного кода значения не имеет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 21:55:49 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
твой идея - бред сивой кобылы. Печонкин IF(AND(EQ(a,b), LT(c,d)), SET( LIST(e, 5), SQRT(f) ) ) ктож эти никому не понятные каракули будет учить? и главное кому от этого польза? почему все написано в верхнем регистре? что за уродство EQ, LT? меня уже слегка подташнивает. А что будет если я "блокнот" начну писать?- вырвет на клаву и все...! Печонкин А теперь вопрос. Как сделать такое - не вопрос, но не хочется изобретать велосипед. Потому интересно, есть ли уже готовые решения пиши смело, с квадратными колесами еще никто не изобретал :-) почему неуловимый Джо - неуловимый, да потому-что нах никому не нужно его ловить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 21:57:09 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПочконкинПечонкинЧто именно не удастся написать на ANSI C (более примитивных языков вроде нет)? Human-readable реализацию карринга, ленивости, замыканий, продолжений etc. Зачем все эти умные (sic!) слова для библиотечных средств класса gtk+, glibc или libjpeg? ПочконкинИли читаемость сгенерированного кода значения не имеет? Имеет (поэтому и не подходит M4, он не умеет indentation делать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 21:58:31 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Иван Пертович Дуркобред поскипан Дверь налево ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 21:59:48 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПечонкинЗачем все эти умные (sic!) слова для библиотечных средств класса gtk+, glibc или libjpeg? Понятия не имею зачем, ты же не говоришь какой именно набор примитивов тебя интересует в гипотетическом многоязыковом трансляторе (кроме весьма расплывчатой фразы "Везде структуры, списки, ссылки, ветвления, циклы, функции-методы."). А ведь с этого и надо начинать, не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 22:06:38 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПочконкинПечонкинЗачем все эти умные (sic!) слова для библиотечных средств класса gtk+, glibc или libjpeg? Понятия не имею зачем, ты же не говоришь какой именно набор примитивов тебя интересует в гипотетическом многоязыковом трансляторе (кроме весьма расплывчатой фразы "Везде структуры, списки, ссылки, ветвления, циклы, функции-методы."). А ведь с этого и надо начинать, не? Честно говоря удивляюсь. Первое - никто не читает что написано. Второе - все пытаются вставить что-то типо умное, из отряда "это мне не надо, это говно" (ну если ты не понимаешь зачем это, иди лесом, незачем тут свои фобии выплескивать). В четвертых - я явно выше обозначил интересующее подмножество языковых возможностей, указав ANSI C, его синтаксический минимум, как границу разумного достаточного. Спросив в добавок - есть ли что такое, что не может быть реализовано в рамках ANSI C. Но нет, зачем читать, если есть своя типо мысль (банальная как двери: а лямба у тебя будет?). Да не будет там никаких лямб, сборщика мусора и аспектного программирования. Там будет только минимум, достаточный для написания системных библиотек (ядер операционных систем). И точка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 22:12:07 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПеченкинПервое - никто не читает что написано. Второе - все пытаются вставить что-то типо умное, из отряда "это мне не надо, это говно" (ну если ты не понимаешь зачем это, иди лесом, незачем тут свои фобии выплескивать). В четвертых - А где третье? Печенкиня явно выше обозначил интересующее подмножество языковых возможностей, указав ANSI C, его синтаксический минимум, как границу разумного достаточного. Фраза "Берем за основу ANSI С" никак не является явным обозначенем интересующего подмножества языковых возможностей. ПеченкинСпросив в добавок - есть ли что такое, что не может быть реализовано в рамках ANSI C. Сам вопрос нелепый в силу существования понятия полноты по Тьюрингу. Смысл вопросу может добавить только требование сохранения читабельности кода, которое ты, на свое счастье, предъявляешь. Но вот незадача - вопрос опять теряет смысл, потому что если "за основу" брать Си, если располагать полным набором сишных синтаксических конструкций и только ими, то очевидно, что всё, что будет читабельно до трансляции на Си, останется читабельным и после нее. Печенкин(ну если ты не понимаешь зачем это, иди лесом, незачем тут свои фобии выплескивать) Тебе уже многие люди как бы пытаются намекнуть, что ты сам, судя по всему, не очень понимаешь задачу, которую пытаешься сформулировать, потому и с формулировкой беда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 22:26:50 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПочконкинПеченкинПервое - никто не читает что написано. Второе - все пытаются вставить что-то типо умное, из отряда "это мне не надо, это говно" (ну если ты не понимаешь зачем это, иди лесом, незачем тут свои фобии выплескивать). В четвертых - А где третье? Самоотмодерировано ПочконкинПеченкиня явно выше обозначил интересующее подмножество языковых возможностей, указав ANSI C, его синтаксический минимум, как границу разумного достаточного. Фраза "Берем за основу ANSI С" никак не является явным обозначенем интересующего подмножества языковых возможностей. Для тех, у кого с русским языком плохо? ПочконкинПеченкинСпросив в добавок - есть ли что такое, что не может быть реализовано в рамках ANSI C. Сам вопрос нелепый в силу существования понятия полноты по Тьюрингу. Смысл вопросу может добавить только требование сохранения читабельности кода, которое ты, на свое счастье, предъявляешь. Но вот незадача - вопрос опять теряет смысл, потому что если "за основу" брать Си, если располагать полным набором сишных синтаксических конструкций и только ими, то очевидно, что всё, что будет читабельно до трансляции на Си, останется читабельным и после нее. Ура-ура! Ну хоть кто-то что-то понял ;))) ПочконкинПеченкин(ну если ты не понимаешь зачем это, иди лесом, незачем тут свои фобии выплескивать) Тебе уже многие люди как бы пытаются намекнуть, что ты сам, судя по всему, не очень понимаешь задачу, которую пытаешься сформулировать, потому и с формулировкой беда. Да неужели? Я уже даже на уровне плинтуса привел выше аналогию. Берем ассемблер и С. Понятная парадигма? Транслятор-компилятор? А теперь ставим C на место ассемблера, а вместо C ставим метаязык. И с точно таким-же успехом, как раньше мы из С транслировали в машинные кода всего множества аппаратных реализаций (и даже в JVM байт-коды и в Flash VM), то теперь мы вместо машинных кодов получаем трансляцию в языки высокого уровня (C, Pascal, Java, C#, практически любой вид императивного типа). Охрененно трудная для понимания мысль, да? Я это уже раз двадцатый объясняю, а дети так и не догоняют, чо надо? Просто блеск, да. И это называется - я не могу сформулировать задачу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 22:39:28 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПечонкинbeluginПеченкин, не вполне понятно, зачем когогенерировать, например, паскаль. Потому что есть программисты на паскале. Это парадоксально? Нафиг программистам на паскале паскаль, опущенный до уровня промежуточного языка для генерации некоей библиотеки? Не проще ли сделать просто DLL (как все и так делают)? В принципе, не очень понятно, зачем делать какой-то собственный метаязык. В чем он будет мета? Почему бы не сделать бекенд для существующего языка, для которого есть живое сообщество? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 23:59:49 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Еще вспоминается джоэл с его wasabi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 00:04:02 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
beluginПечонкинbeluginПеченкин, не вполне понятно, зачем когогенерировать, например, паскаль. Потому что есть программисты на паскале. Это парадоксально? Нафиг программистам на паскале паскаль, опущенный до уровня промежуточного языка для генерации некоей библиотеки? Не проще ли сделать просто DLL (как все и так делают)? Поди объясни сначала яверам или дотнетчикам, про то, насколько у тебя safe твоя DLL. Потом расскажешь, что они тебе там скажут. beluginВ принципе, не очень понятно, зачем делать какой-то собственный метаязык. В чем он будет мета? Да потому что он (метаязык) не будет зависеть ни от какого существующего языка. Он будет просто будет задавать лексические конструкции и правила их макро-преобразования в конкретный язык. Т.е. конструкции на метаязыке будут описывать другой язык, уже конкретный. А писать на метаязыке (или на макроязыке) это точно так-же писать код, но в другом синтаксисе, т.е. писать в этих самых мета (макро) конструкциях. И мета конструкция EQ($ARG1 $ARG2), в виде кода как макроподстановки EQ(a b) будет транслируема в С код if (a==b) (к примеру). Да, а вот уже в самом коде, который будет транслирован IF(EQ(a b) SET(b = c)), само слово метаязык уже как-бы избыточно, но вводить понятие "обобщенно-универсальный макроязык, семантика которого задана метаязыком" я не стал, понадеялся что дети поймут и так, о чем речь. Напрасно понадеялся. beluginПочему бы не сделать бекенд для существующего языка, для которого есть живое сообщество? Мое терпение начинает лопаться. Я несколько раз сказал, что в конечном счете все будет транслироваться в конкретный язык, конкретный ЯВУ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 00:23:23 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин, Ты знаешь. Я тебя уважаю, как человека, явно влюбленного в программирование(сам такой). Но от этого не легче, к сожалению. Проблема в том, что твоя мотивация в данном случае задана ошибочными посылками. И еще есть один момент. Мне кажется, ты как то привратно понимаешь саму идею библиотек. Но ближе к телу(как говорил Гиде Мопассан ;) ) Во первых,изначально известно, что скажем, с++(который сам господь велел использовать, как пример), ты не сможешь интерпретировать на некоем гипотетическом языке, дабы получить рабочий результат. Я сейчас не говорю о "Hello World" - в таком контекте нет проблем. Речь идет о реальных рабочих программах. Пока слышен только треп, перемешанный с разными терминами. Дай реальный пример, хоть один. А там уже посмотрим ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 03:12:37 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
SQL_Lamer Твой бред выглядит примерно так: "Та не, чуваг, ты ...ню морозишь. Я тебе гарантирую это. Но дай мне пример, подтверждающий это" Так проблемы вовсе не у меня, не так ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 03:26:40 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПеченкинSQL_Lamer Твой бред выглядит примерно так: "Та не, чуваг, ты ...ню морозишь. Я тебе гарантирую это. Но дай мне пример, подтверждающий это" Так проблемы вовсе не у меня, не так ли? Ты вроде говорил про то, что уже есть под с++? Вот и хотел посмотреть ;) Или дальше будем обмениваться остроумными репликами, типа "сам дурак"? Ты сказал на первой странице этого топика :" уже написано!" - так будь добр - ответь за базар ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 03:36:46 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печонкин SQL_LamerТы под с++ попробуй напиши хотя - бы. Уже написано, теперь вопрос как это автоматически переводить на другие языки. Это тебе для освежения памяти. Так что уже написано? Можно пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 03:45:19 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Типа барлог вернулся... =))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 05:47:54 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печонкин, а почему ты не задаешься в таком случае вопросом визуального метапрограммирования - типа складывать кубики? или скажем программирования естественным описанием процесса/задачи на любом доступном языке. Очевидно, я утрирую, но твоя тема это вроде как промежуточное, нишевое решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 05:54:01 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печонкин, 1. уже есть кодогенераторы, достаточно поискать 2. мы делали и того хуже - строили объектную модель, рисовали схемки, строили выражения и рисовали интерфейсы, собирали визуально структура бл и отплевывали своим кодогенератором код на плюсах или sql из схемок+выражений+обьектной была эта фича сама кроссплатформенной и расширяемой как со стороны конечных языков, так и со стороны репозитория объектов () 3. Это Адова работа. Вам за это платят? Если нет то нефиг и начинать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 08:02:31 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печонкин пишет: > Есть идея писать на некоем мета(макро)языке, а в результате, легким > движением руки, получать генерированный код уже под конкретный ЯП. Идея бредовая. Потому что так вы сможете генерировать код только для некоторого набора схожих между собой языков программирования, как то: С и Pascal, С++ и ObjectPascal. На кардинально разных языках программирования надо и программировать по-разному, тут вам никакой мета-язык не поможет. Писать на лиспе так же, как на паскале можно, но нет смысла. Так что применение у вашей "штучки" будет очень ограниченное. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 10:20:54 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Пародия на Ксеноцефала, часть вторая. Не нужно руки распускать, сам выйду! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 10:29:02 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Думан КонстантинПародия на Ксеноцефала, часть вторая. Не нужно руки распускать, сам выйду! Неубедительная пародия, чесслово ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 10:50:44 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПечонкинЕсть идея писать на некоем мета(макро)языке, а в результате, легким движением руки, получать генерированный код уже под конкретный ЯП. Во понаписали :) Идея старая, развития не получила по разным причинам. Но кое-что есть. 1. Макрогенераторы в ЯП: PL/1, C, Clipper 2. Макрогенераторы общего назначения: ML, M4 ну и т.д. 3. Расширения базового ЯпП средствами самого ЯП: Planner на лиспе Макрогенератор Clipper для ваших целей вполне подойдет. Собсно и сам Clipper на нем сделан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 11:08:14 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
MasterZiv Писать на лиспе так же, как на паскале можно, но нет смысла. Тут еще надо добавить, что писать на паскале, как на лиспе - и вовсе нельзя. Если это не код уровня format t "hello world". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 11:54:02 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Думан КонстантинПародия на Ксеноцефала, часть вторая. В каком месте? Что-то не заметил ни грамма сходства. Задача-то смысл имеет, пока не выходит за рамки консольных приложений (примитивные типы, управляющие конструкции, пайпы-сокеты, да и всё). Хотя прикольной (не значит полезной) становится, пожалуй, только при доп трансляторах со всех популярных языков на этот гипотетический макроязык (не метаязык же, метаязык - это язык описания языка, типа БНФ например), а не только наоборот, тогда просто "прикольно" уметь конвертировать из Схемы в Паскаль, из Паскаля в С++, из С++ в Хаскелл, из Хаскелла в Бейсик, ха, ну ведь действительно прикольно, и на означенном уровне вполне реализуемо, хоть и геморройчик тот еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 13:34:52 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Почконкин Хотя прикольной (не значит полезной) становится, пожалуй, только при доп трансляторах со всех популярных языков на этот гипотетический макроязык (не метаязык же, метаязык - это язык описания языка, типа БНФ например), а не только наоборот, тогда просто "прикольно" уметь конвертировать из Схемы в Паскаль, из Паскаля в С++, из С++ в Хаскелл, из Хаскелла в Бейсик, ха, ну ведь действительно прикольно, и на означенном уровне вполне реализуемо, хоть и геморройчик тот еще. В том то и дело, что на таком уровне удастся либо преобразовать либо программы чуть сложнее "хеллоу ворлд", либо вносить при преобразовании компилятор исходного языка: Т.е. чтобы сделать преобразование хаскелл->с++, прийдется в с++ реализовать какое-то подмножество хаскелла, чтобы программа смогла быть преобразована. Толку честно говоря маловато. З.Ы. общую идею я понял, для этой цели можно использовать блок-схемы в качестве этого самого макроязыка. Вот только не уверен, что это кому-либо нужно. Это примерно как "универсальный решатель всего":) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 14:35:41 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Почконкин, А Malbolge будет входить в список поддерживаемых языков? Давно мечталось написать програмку, которая печатает сама себя на Malbolge? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 14:50:59 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
zloy denВ том то и дело, что на таком уровне удастся либо преобразовать либо программы чуть сложнее "хеллоу ворлд", либо вносить при преобразовании компилятор исходного языка Ну почему же. На ANSI C, например, с использованием только примитивных конструкций написана целая хренова куча консольного ПО совершенно разной направленности и сложности. Теоретически, это всё вполне транслируемо на большинство ЯВУ практически "1 к 1", т.е. простой заменой синтаксиса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 14:52:14 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
SQL_LamerА Malbolge будет входить в список поддерживаемых языков? Не ко мне вопрос. Я в этот язык не вникал особо, но раз уж другие программы генерируют его код, то почему бы и нет? SQL_LamerДавно мечталось написать програмку, которая печатает сама себя на Malbolge? Сомневаюсь, что всё так просто. Вот есть у тебя программа Х на языке А, которая печатает сама себя (куайн, что ли, да?), то есть выводит в стандартный вывод Х. По моему пониманию, трансплятор в язык В должен дать программу Y на языке В, которая выводит в стандартный вывод опять же Х, иначе мы бы получили изменение функциональности при трансляции, что не хорошо, мягко говоря. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 14:58:16 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Почконкин, скажи, а какой язык из существующих тебе больше всего нравится? или меньше всего не нравится? - Вот на нем и пиши переводчик с него же на все остальное. По грайней мере так твой мета - язык будет уже на первом этапе снабжен работающим окружением. клоны lexx-jacc есть уже по моему почти для всего.... любишь ты например джаву, и милосердия ради захотел сгенерить из своих библиотек делфячий код, что бы делфистам легче жилось - ок... вообще, стоит признать, что языки - они разные бывают.... все объектно-процедурные похожи друг на друга - но совсем не похожи ни на SQL ни на PROLOG, а на lisp и hascell - средне... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 16:12:55 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakovскажи, а какой язык из существующих тебе больше всего нравится? Французский. Звучит красиво. Vladimir Baskakov или меньше всего не нравится? Говяжий. В детстве перекормили, теперь даже от запаха тошнит. Vladimir BaskakovПо грайней мере так твой мета - язык будет уже на первом этапе снабжен работающим окружением. ТС спрашивает не про мета-язык (хотя и сам его так называет), что такое метаязык я писал чуть выше. А ищется язык, с которого было бы легко и просто построить (или взять существующий) набор трансляторов на кучу других языков программирования. Vladimir Baskakovклоны lexx-jacc есть уже по моему почти для всего.... Y ACC. Это генератор парсеров. Трансляция с одного ЯП на другой здесь не при чем совершенно. Vladimir Baskakovлюбишь ты например джаву, и милосердия ради захотел сгенерить из своих библиотек делфячий код, что бы делфистам легче жилось - ок... С этого момента поподробнее, пожалуйста. Что за "ок"? Транслятор с джавы на дельфю? На гугле забанен, дайте УРЛы, будьте добрЫ! Vladimir Baskakovвсе объектно-процедурные похожи друг на друга - но совсем не похожи ни на SQL ни на PROLOG, а на lisp и hascell - средне... Отображение с Си, Паскаля, Фортрана и прочей примитивной императивщины на Лисп - тривиально, различия исключительно в синтаксисе. Has k ell рядом с лиспом ставить вообще абсурд, совершенно разные языки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 16:43:39 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печонкин<...>Есть идея писать на некоем мета(макро)языке, а в результате, легким движением руки, получать генерированный код уже под конкретный ЯП.<...> Есть идея - пишите. Если не хотите или можете писать - значит, идеи нет. Сколько уже на форуме просидели, ругаясь попусту - давно бы уже прототип набросали, да и спорили бы предметно. Хотя с такой обидчивостью, агрессией и неконструктивностью при ведении споров - вряд ли сможете сделать что-нибудь полезное для людей. И не только на стезе программирования. P.S. Сделали бы синхронизацию с кодом (разумеется, "скелетную") через MDI с динамическими диаграммами UML - был бы вам реальный респект и уважуха. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 20:27:26 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
AlexTheRavenПечонкин<...>Есть идея писать на некоем мета(макро)языке, а в результате, легким движением руки, получать генерированный код уже под конкретный ЯП.<...> Есть идея - пишите. Если не хотите или можете писать - значит, идеи нет. Сколько уже на форуме просидели, ругаясь попусту - давно бы уже прототип набросали, да и спорили бы предметно. Хотя с такой обидчивостью, агрессией и неконструктивностью при ведении споров - вряд ли сможете сделать что-нибудь полезное для людей. И не только на стезе программирования. Прототип давно уже сделан. Осталось года два стабилизации. А выводы свои можешь себе оставить, не напрягайся AlexTheRavenP.S. Сделали бы синхронизацию с кодом (разумеется, "скелетную") через MDI с динамическими диаграммами UML - был бы вам реальный респект и уважуха. Эту глупость давно уже реализовали. см. Together. Можещь засылать респекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 20:51:12 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Почконкинzloy denВ том то и дело, что на таком уровне удастся либо преобразовать либо программы чуть сложнее "хеллоу ворлд", либо вносить при преобразовании компилятор исходного языка Ну почему же. На ANSI C, например, с использованием только примитивных конструкций написана целая хренова куча консольного ПО совершенно разной направленности и сложности. Теоретически, это всё вполне транслируемо на большинство ЯВУ практически "1 к 1", т.е. простой заменой синтаксиса. На голом ANSI С можно вовсю программировать в ООП стиле. Код: plaintext 1. 2. 3. 4. 5. Странно, что не дети этого до сих пор не знают. Да, напряжно. Но макроязык выше, с метаконструкциями, как раз имеет целью, да, тупую императивщину унифицировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 21:02:20 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Почконкин<бред скипнут> тогда просто "прикольно" уметь конвертировать из Схемы в Паскаль, из Паскаля в С++, из С++ в Хаскелл, из Хаскелла в Бейсик, ха, ну ведь действительно прикольно, и на означенном уровне вполне реализуемо, хоть и геморройчик тот еще. Это вообще не прикольно, и настолько же глупо, как дизассемблировать машинный код сразу в C или Pascal. Почему? А ты подумай, невзначай, какого уровня макроконструкции можно определять на метаязыке. Кагбэ тупыми EQ, SET, IF там не планируется ограничиваться ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 21:04:48 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПечонкинНа голом ANSI С можно вовсю программировать в ООП стиле. Странно, что не дети этого до сих пор не знают. Ты почти гений. Познай возможность писать на ассемблерах в парадигме функционального и даже, о Господи!, логического программирования, и тогда станешь им. ПеченкинПочконкин<бред скипнут> тогда просто "прикольно" уметь конвертировать из Схемы в Паскаль, из Паскаля в С++, из С++ в Хаскелл, из Хаскелла в Бейсик, ха, ну ведь действительно прикольно, и на означенном уровне вполне реализуемо, хоть и геморройчик тот еще. Это вообще не прикольно, и настолько же глупо, как дизассемблировать машинный код сразу в C или Pascal. Машинный код для человека не читабелен изначально, потому вопрос о трансляции на ЯВУ с сохранением читабельности попросту бессмысленный. Простая же трансляция, по твоим собственным словам, тебя не интересует. Аналогия не прокатила, нет. ПеченкинПочему? А ты подумай, невзначай, какого уровня макроконструкции можно определять на метаязыке. Кагбэ тупыми EQ, SET, IF там не планируется ограничиваться ;)) Да прочитай ты уже, наконец, что такое "метаязык" и прекрати употре*censored* это слово ни к селу ни к городу. Тобой какбэ планируется ограничиться ANSI C, а это и есть примитивный набор тупых конструкций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 21:12:51 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПочконкинПечонкинНа голом ANSI С можно вовсю программировать в ООП стиле. Странно, что не дети этого до сих пор не знают. Ты почти гений. Познай возможность писать на ассемблерах в парадигме функционального и даже, о Господи!, логического программирования, и тогда станешь им. Не интересно вообще. Хотя не вижу никакой проблемы в вышесказанном. Вопрос лишь в том, как макрос нарисовать. Почконкин Машинный код для человека не читабелен изначально, потому вопрос о трансляции на ЯВУ с сохранением читабельности попросту бессмысленный. Простая же трансляция, по твоим собственным словам, тебя не интересует. Аналогия не прокатила, нет. Прокатила. В C нет и не предвидится таких вещей, как банальные коллекции объектов (библиотечные, тем не менее практически стандартизированные штукенции в C# или Java). Это был простейший пример. Коллекция. Как динамический массив, как хэшированный список, список с двоичным доступом, и т.д. - абстракции могут быть намного более развиты, и учитывая типовую дефективность мозга типовых 99% кодеров-средней руки - не распознаваемы в явном виде (ибо китайский способ программирования рулит). Итого метаязык имеет цель как раз ту самую - ввод в язык произвольных макроконструкций более высокого уровня (которые могут в конкретном языке быть уже транслированы в абсолютно разные вещи, в к примеру в случае C использовать тупой массив с тупым перебором, а в яве, для эстетизма, использовать хеш-коллекции, в т.ч. собственно наструганные). Другой пример - свойства (Property). Их нет в Java и точно нет в C/C++. Но есть в C# и есть в Delphi. Яверы делают типичное яверное черезжопие - пользуют get, set, но зачем это уродство тянуть в остальные языки? Нет. Мы для C/C++ и Java будем делать специфичный этим недоязыкам inline (вместо Object.AsString := 'lala'; делать getAsString().setValue("lala"), для "лаконичного" C я даже боюсь пример с кучей *, -> и прочих козявок приводить). ... Понял хоть, о чем речь? А то я уже стремаюсь sql_lamer подобных "критиков". Вдруг поймут опять чо не так? ПочконкинПеченкинПочему? А ты подумай, невзначай, какого уровня макроконструкции можно определять на метаязыке. Кагбэ тупыми EQ, SET, IF там не планируется ограничиваться ;)) Да прочитай ты уже, наконец, что такое "метаязык" и прекрати употре*censored* это слово ни к селу ни к городу. Тобой какбэ планируется ограничиться ANSI C, а это и есть примитивный набор тупых конструкций. Подпрыгни два раза. На метаязыке будет описана конструкция EQ(ARG1 ARG2) - задает грамматику, и варианты трансляции в другие языки. Т.е. является в чистейшем виде МЕТА В чистом виде метаязык, описывающий другие языки. Не нравится определение? Претензии вон дверям можешь высказать, ибо это уже имя собственное (пока такое). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 21:27:19 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПеченкинИтого метаязык имеет цель как раз ту самую - ввод в язык произвольных макроконструкций более высокого уровня (которые могут в конкретном языке быть уже транслированы в абсолютно разные вещи, в к примеру в случае C использовать тупой массив с тупым перебором, а в яве, для эстетизма, использовать хеш-коллекции, в т.ч. собственно наструганные). Другой пример - свойства (Property). Их нет в Java и точно нет в C/C++. Но есть в C# и есть в Delphi. Яверы делают типичное яверное черезжопие - пользуют get, set, но зачем это уродство тянуть в остальные языки? Нет. Мы для C/C++ и Java будем делать специфичный этим недоязыкам inline (вместо Object.AsString := 'lala'; делать getAsString().setValue("lala"), для "лаконичного" C я даже боюсь пример с кучей *, -> и прочих козявок приводить). ПеченкинПочконкинты же не говоришь какой именно набор примитивов тебя интересует в гипотетическом многоязыковом трансляторе (кроме весьма расплывчатой фразы "Везде структуры, списки, ссылки, ветвления, циклы, функции-методы."). А ведь с этого и надо начинать, не? я явно выше обозначил интересующее подмножество языковых возможностей, указав ANSI C, его синтаксический минимум, как границу разумного достаточного. Спросив в добавок - есть ли что такое, что не может быть реализовано в рамках ANSI C. Да не будет там никаких лямб, сборщика мусора и аспектного программирования. Там будет только минимум, достаточный для написания системных библиотек (ядер операционных систем). И точка.[/quot] Сам поймешь, или ты тоже тормоз, как и все твои собеседники? ПеченкинПодпрыгни два раза. На метаязыке будет описана конструкция EQ(ARG1 ARG2) - задает грамматику, и варианты трансляции в другие языки. Т.е. является в чистейшем виде МЕТА В чистом виде метаязык, описывающий другие языки. Не нравится определение? Претензии вон дверям можешь высказать, ибо это уже имя собственное (пока такое). О, это еще веселее. В такой постановке твоей задачи тебя спасет... плюсовской препроцессор. Ах, как банально всё разрешилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 21:51:42 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПочконкинО, это еще веселее. В такой постановке твоей задачи тебя спасет... плюсовской препроцессор. Ах, как банально всё разрешилось. Он примитивен как пробка. В принципе из макропроцессоров меня на 95% устраивает и M4. Как я говорил единственная претензия к M4 - это отсутствие способности ставить отступы. А вообще изначально я спрашивал уже про готовые шаблоны (хотя-бы для основных языковых примитивов, декларации функций, переменных, циклов ветвлений). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 22:43:32 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин-Печонкин пишет: > Автор: Печенкин-Печонкин > Почконкин > О, это еще веселее. В такой постановке твоей задачи тебя спасет... Я запуталси... фсё смишалась, кони, люди... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 00:53:53 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкины, Вот Embedded SQL в C - сперва - макропроцессор, потом - генератор кода, и дальнейшая эволюция не понадобилась!? Наверно какие-то УЧАСТКИ кода с одного языка высокого уровня на другой возможно, если эти участки будут достаточно целостны. То есть можно четко отделить от другого текста, когда минимальны и ясны все контексты. А вообще программные контексты едва ли формально выявляемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 12:12:02 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Идея применять на практике метаязык вылезет большим боком при использовании отладчика. Если в случае с ЯП - сообщение с ошибкой более-менее информативно. И девелопер, зная свой язык и (поверхностно) язык ассемблера может определить фрагмент кода или оператор, который вызывает ошибку, то в метаязыке такой возможности не будет. Данные отладки не содержат ссылок на код метаязыка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 14:32:42 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин пишет: > б) но как быть, мой юный падаван, с .NET, Java и Flash? Все эти ребята > пошлют тебя с Pure C > куда подальше, и будут абсолютно правы. У них идея такая. Safe Code > называется. Силён и могуч ты стал, Дуку. Но тёмная сторона затмевает твой разум. Во всех этих ребятах ЕСТЬ средства вызова старого доброго PURE C. Именно таким образом они и общаются с внешним миром. С операционкой. > Эти твои намеки никого не интересуют, вообще-то. Даже тебя самого. А, ну ... чё писал тогда вообще ? > Компоненты, как и любые библиотечные средства, продаются в исходных текстах. > Глупо разработчикам на Java продавать исходный текст на C. Ты можешь сделать враперы на native-языке и продавать их вместе со своей библиотекой, написанной на С. Уверяю, если всё будет работать, им, пользователям, будет пофигу. > С этого нужно было начинать. Спасибо за ссылку, любой материал интересен. > > http://freshmeat.net/projects/oink/ > http://www.cubewano.org/oink > > Только я не понял, какое это имеет отношение? Блин, похоже я что-то перепутал. Пытаюсь вспомнить как назывался тот проект - и нифига. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 22:47:39 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин пишет: > Только я не понял, какое это имеет отношение? Во, нашёл. ftp://ftp.parc.xerox.com/pub/ilu/ilu.html Кстати, в процессе нашёл ещё и это: http://bc.tech.coop/blog/040627.html - читать про STELLA. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 23:11:11 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин пишет: > Clipper был лучше в разы. Чем ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 23:32:19 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
_мод пишет: > Боюсь, что вы не в курсе. В клиппере команды клиппера с помощью > макропроцессора превращаются в вызовы функций тоже клиппера. Я - в курсе. я так и писал вообще-то. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 23:34:11 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
MasterZiv Печенкин пишет: > б) но как быть, мой юный падаван, с .NET, Java и Flash? Все эти ребята > пошлют тебя с Pure C > куда подальше, и будут абсолютно правы. У них идея такая. Safe Code > называется. Силён и могуч ты стал, Дуку. Но тёмная сторона затмевает твой разум. Во всех этих ребятах ЕСТЬ средства вызова старого доброго PURE C. Именно таким образом они и общаются с внешним миром. С операционкой. Ты можешь сделать враперы на native-языке и продавать их вместе со своей библиотекой, написанной на С. Уверяю, если всё будет работать, им, пользователям, будет пофигу. А светлая сторона сожгла твой разум насовсем? Я четко ТРИ раза написал про Safe Code. Ты не знаешь, что это такое? Ладно, объясняем на пальцах. У ребят есть система. Ну примерно класса eBay. Работающая в режимах 24x7 и прочее такое разное. И им крайне критично НЕ ИМЕТЬ возможности случайному залетному дятлу (вроде предлагающих дергать всякое из третьесторонних источников через JNI или PInvoke), разрушить цивилизацию, токмо перетереть память в каком крупном, обслуживающем тысячи соединений вебсервисе, по причине подгулявшего невзначай указателя на буффер символов. Потому всякие попытки своих кодеришек использовать этот самый JNI или PInvoke забанивают в причинно-мягкие места эти суровые ребята просто на взлете, детской, так сказать, фантазии и наивности. И да, странно, что мне приходится объяснять эти прописные истины. Модератор: сделайте милость, попробуйте напрячь свою неопровержимую гениальность чтобы понять как избавить технический форум от флуда в виде ваших оценок участников форума, всякого рода переживаний о странностях судьбы и ваших безвозвратно, впустую потраченных усилиях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 09:44:07 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
MasterZivВо, нашёл. ftp://ftp.parc.xerox.com/pub/ilu/ilu.html Кстати, в процессе нашёл ещё и это: http://bc.tech.coop/blog/040627.html - читать про STELLA. Вот это уже разговор по теме, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 09:48:13 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
MasterZiv Я - в курсе. я так и писал вообще-то. Читаем: MasterZiv -- реализации базовых примитивов данного 4GL-языка (клиппера) на данном ЯВУ (с) в виде библиотеки -- реализации транслятора/макрогенератора из 4GL-языка в данный ЯВУ, использующий данную библиотеку примитивов. Команды клиппера с помощью макрогенератора превращаются в текст на клиппере или на любом другом языке - хоть китайском. Никакого С там нет вообще и трансляции тоже нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 11:19:30 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
Печенкин Модератор: сделайте милость, попробуйте напрячь свою неопровержимую гениальность чтобы понять как избавить технический форум от флуда в виде ваших оценок участников форума, всякого рода переживаний о странностях судьбы и ваших безвозвратно, впустую потраченных усилиях. А что, кто-то жалуется, выказывает недовольство справедливой оценкой, если не секрет? Модератор: я выказываю недовольство вашими, неуместными в данном форуме, оценками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 21:51:36 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
_мод пишет: > Команды клиппера с помощью макрогенератора превращаются в текст на > клиппере или на любом другом языке - хоть китайском. Никакого С там нет > вообще и трансляции тоже нет. ага, рассказывай. Клиппер сам -- это огроменная библиотека для работы с DBF и реализации конструкций его языка. Плюс макропроцессор сверку, который код клиппера генерирует в код на C, использующий вызовы этой библиотеки. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 22:21:52 |
|
||
|
Многоязыковое метапрограммирование
|
|||
|---|---|---|---|
|
#18+
ПеченкинПеченкин Модератор: сделайте милость, попробуйте напрячь свою неопровержимую гениальность чтобы понять как избавить технический форум от флуда в виде ваших оценок участников форума, всякого рода переживаний о странностях судьбы и ваших безвозвратно, впустую потраченных усилиях. А что, кто-то жалуется, выказывает недовольство справедливой оценкой, если не секрет? Модератор: я выказываю недовольство вашими, неуместными в данном форуме, оценками Как Вы могли бы заметить, все свои оценки я пишу в ответ на ранее поступившие Модератор: перечитал начало топика. Предложенного мне заметить не удалось. Дальнейшие Ваши отклонения от технических вопросов программирования (в частности - советы мне) еще раз прошу постить за пределами форума программирование оценки от других... личностей. Но они ведь даже не возмущаются, поди? Про оскорбления не говорят? Ведь пишу просто, и без затей, в понятном им контексте и стиле. А ведь их замечания не уместны (нафиг надо, никому не нужно, зачем если), ибо не отвечают на изначально поставленный простой вопрос: "А есть ли такое вот ". Потому есть вариант. Тереть их изначально глупые и/или неадекватные замечания, чтобы не провоцировать мою оценку. И все. Но боюсь эту несправедливость нам тоже не удастся побороть. По-определению. Ну не писать же мне "Сообшить модератору..." дескать, обнаружена глупость, меня оскорбляющая... в самом деле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 22:57:46 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1344650]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
127ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 419ms |

| 0 / 0 |
