powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Многоязыковое метапрограммирование
25 сообщений из 111, страница 3 из 5
Многоязыковое метапрограммирование
    #35818676
Серый нах
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Печонкин,
а почему ты не задаешься в таком случае вопросом визуального метапрограммирования - типа складывать кубики? или скажем программирования естественным описанием процесса/задачи на любом доступном языке.
Очевидно, я утрирую, но твоя тема это вроде как промежуточное, нишевое решение
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35818724
erofeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печонкин,

1. уже есть кодогенераторы, достаточно поискать
2. мы делали и того хуже - строили объектную модель, рисовали схемки, строили выражения и рисовали интерфейсы, собирали визуально структура бл и отплевывали своим кодогенератором код на плюсах или sql из схемок+выражений+обьектной
была эта фича сама кроссплатформенной и расширяемой как со стороны конечных языков, так и со стороны репозитория объектов ()
3. Это Адова работа. Вам за это платят? Если нет то нефиг и начинать.
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35818919
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печонкин пишет:

> Есть идея писать на некоем мета(макро)языке, а в результате, легким
> движением руки, получать генерированный код уже под конкретный ЯП.

Идея бредовая. Потому что так вы сможете генерировать код только
для некоторого набора схожих между собой языков программирования,
как то: С и Pascal, С++ и ObjectPascal.

На кардинально разных языках программирования надо и программировать
по-разному, тут вам никакой мета-язык не поможет. Писать на лиспе
так же, как на паскале можно, но нет смысла.

Так что применение у вашей "штучки" будет очень ограниченное.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35818935
Думан Константин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пародия на Ксеноцефала, часть вторая.

Не нужно руки распускать, сам выйду!
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35818999
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думан КонстантинПародия на Ксеноцефала, часть вторая.

Не нужно руки распускать, сам выйду!

Неубедительная пародия, чесслово
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35819066
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПечонкинЕсть идея писать на некоем мета(макро)языке, а в результате, легким движением руки, получать генерированный код уже под конкретный ЯП.
Во понаписали :)
Идея старая, развития не получила по разным причинам. Но кое-что есть.
1. Макрогенераторы в ЯП: PL/1, C, Clipper
2. Макрогенераторы общего назначения: ML, M4 ну и т.д.
3. Расширения базового ЯпП средствами самого ЯП: Planner на лиспе
Макрогенератор Clipper для ваших целей вполне подойдет. Собсно и сам Clipper на нем сделан.
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35819212
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Писать на лиспе
так же, как на паскале можно, но нет смысла.


Тут еще надо добавить, что писать на паскале, как на лиспе - и вовсе нельзя.
Если это не код уровня format t "hello world".
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35819524
Почконкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думан КонстантинПародия на Ксеноцефала, часть вторая.
В каком месте? Что-то не заметил ни грамма сходства.
Задача-то смысл имеет, пока не выходит за рамки консольных приложений (примитивные типы, управляющие конструкции, пайпы-сокеты, да и всё). Хотя прикольной (не значит полезной) становится, пожалуй, только при доп трансляторах со всех популярных языков на этот гипотетический макроязык (не метаязык же, метаязык - это язык описания языка, типа БНФ например), а не только наоборот, тогда просто "прикольно" уметь конвертировать из Схемы в Паскаль, из Паскаля в С++, из С++ в Хаскелл, из Хаскелла в Бейсик, ха, ну ведь действительно прикольно, и на означенном уровне вполне реализуемо, хоть и геморройчик тот еще.
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35819728
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почконкин Хотя прикольной (не значит полезной) становится, пожалуй, только при доп трансляторах со всех популярных языков на этот гипотетический макроязык (не метаязык же, метаязык - это язык описания языка, типа БНФ например), а не только наоборот, тогда просто "прикольно" уметь конвертировать из Схемы в Паскаль, из Паскаля в С++, из С++ в Хаскелл, из Хаскелла в Бейсик, ха, ну ведь действительно прикольно, и на означенном уровне вполне реализуемо, хоть и геморройчик тот еще.

В том то и дело, что на таком уровне удастся либо преобразовать либо программы чуть сложнее "хеллоу ворлд", либо вносить при преобразовании компилятор исходного языка: Т.е. чтобы сделать преобразование хаскелл->с++, прийдется в с++ реализовать какое-то подмножество хаскелла, чтобы программа смогла быть преобразована. Толку честно говоря маловато.

З.Ы. общую идею я понял, для этой цели можно использовать блок-схемы в качестве этого самого макроязыка. Вот только не уверен, что это кому-либо нужно. Это примерно как "универсальный решатель всего":)
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35819798
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почконкин,

А Malbolge будет входить в список поддерживаемых языков?
Давно мечталось написать програмку, которая печатает сама себя на Malbolge?
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35819804
Почконкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zloy denВ том то и дело, что на таком уровне удастся либо преобразовать либо программы чуть сложнее "хеллоу ворлд", либо вносить при преобразовании компилятор исходного языка
Ну почему же. На ANSI C, например, с использованием только примитивных конструкций написана целая хренова куча консольного ПО совершенно разной направленности и сложности. Теоретически, это всё вполне транслируемо на большинство ЯВУ практически "1 к 1", т.е. простой заменой синтаксиса.
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35819827
Почконкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL_LamerА Malbolge будет входить в список поддерживаемых языков?
Не ко мне вопрос. Я в этот язык не вникал особо, но раз уж другие программы генерируют его код, то почему бы и нет?

SQL_LamerДавно мечталось написать програмку, которая печатает сама себя на Malbolge?
Сомневаюсь, что всё так просто.
Вот есть у тебя программа Х на языке А, которая печатает сама себя (куайн, что ли, да?), то есть выводит в стандартный вывод Х.
По моему пониманию, трансплятор в язык В должен дать программу Y на языке В, которая выводит в стандартный вывод опять же Х, иначе мы бы получили изменение функциональности при трансляции, что не хорошо, мягко говоря.
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35820100
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почконкин,
скажи, а какой язык из существующих тебе больше всего нравится? или меньше всего не нравится? - Вот на нем и пиши переводчик с него же на все остальное. По грайней мере так твой мета - язык будет уже на первом этапе снабжен работающим окружением. клоны lexx-jacc есть уже по моему почти для всего.... любишь ты например джаву, и милосердия ради захотел сгенерить из своих библиотек делфячий код, что бы делфистам легче жилось - ок...

вообще, стоит признать, что языки - они разные бывают.... все объектно-процедурные похожи друг на друга - но совсем не похожи ни на SQL ни на PROLOG, а на lisp и hascell - средне...
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35820222
Почконкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Baskakovскажи, а какой язык из существующих тебе больше всего нравится?
Французский. Звучит красиво.

Vladimir Baskakov или меньше всего не нравится?
Говяжий. В детстве перекормили, теперь даже от запаха тошнит.

Vladimir BaskakovПо грайней мере так твой мета - язык будет уже на первом этапе снабжен работающим окружением.
ТС спрашивает не про мета-язык (хотя и сам его так называет), что такое метаязык я писал чуть выше. А ищется язык, с которого было бы легко и просто построить (или взять существующий) набор трансляторов на кучу других языков программирования.

Vladimir Baskakovклоны lexx-jacc есть уже по моему почти для всего....
Y ACC. Это генератор парсеров. Трансляция с одного ЯП на другой здесь не при чем совершенно.

Vladimir Baskakovлюбишь ты например джаву, и милосердия ради захотел сгенерить из своих библиотек делфячий код, что бы делфистам легче жилось - ок...
С этого момента поподробнее, пожалуйста. Что за "ок"? Транслятор с джавы на дельфю? На гугле забанен, дайте УРЛы, будьте добрЫ!

Vladimir Baskakovвсе объектно-процедурные похожи друг на друга - но совсем не похожи ни на SQL ни на PROLOG, а на lisp и hascell - средне...
Отображение с Си, Паскаля, Фортрана и прочей примитивной императивщины на Лисп - тривиально, различия исключительно в синтаксисе. Has k ell рядом с лиспом ставить вообще абсурд, совершенно разные языки.
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35820812
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печонкин<...>Есть идея писать на некоем мета(макро)языке, а в результате, легким движением руки, получать генерированный код уже под конкретный ЯП.<...>
Есть идея - пишите. Если не хотите или можете писать - значит, идеи нет. Сколько уже на форуме просидели, ругаясь попусту - давно бы уже прототип набросали, да и спорили бы предметно. Хотя с такой обидчивостью, агрессией и неконструктивностью при ведении споров - вряд ли сможете сделать что-нибудь полезное для людей. И не только на стезе программирования.
P.S. Сделали бы синхронизацию с кодом (разумеется, "скелетную") через MDI с динамическими диаграммами UML - был бы вам реальный респект и уважуха.
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35820845
Печонкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexTheRavenПечонкин<...>Есть идея писать на некоем мета(макро)языке, а в результате, легким движением руки, получать генерированный код уже под конкретный ЯП.<...>
Есть идея - пишите. Если не хотите или можете писать - значит, идеи нет. Сколько уже на форуме просидели, ругаясь попусту - давно бы уже прототип набросали, да и спорили бы предметно. Хотя с такой обидчивостью, агрессией и неконструктивностью при ведении споров - вряд ли сможете сделать что-нибудь полезное для людей. И не только на стезе программирования.
Прототип давно уже сделан. Осталось года два стабилизации.
А выводы свои можешь себе оставить, не напрягайся

AlexTheRavenP.S. Сделали бы синхронизацию с кодом (разумеется, "скелетную") через MDI с динамическими диаграммами UML - был бы вам реальный респект и уважуха.
Эту глупость давно уже реализовали. см. Together.

Можещь засылать респекты.
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35820863
Печонкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почконкинzloy denВ том то и дело, что на таком уровне удастся либо преобразовать либо программы чуть сложнее "хеллоу ворлд", либо вносить при преобразовании компилятор исходного языка
Ну почему же. На ANSI C, например, с использованием только примитивных конструкций написана целая хренова куча консольного ПО совершенно разной направленности и сложности. Теоретически, это всё вполне транслируемо на большинство ЯВУ практически "1 к 1", т.е. простой заменой синтаксиса.
На голом ANSI С можно вовсю программировать в ООП стиле.
Код: plaintext
1.
2.
3.
4.
5.
void classname_methodname(class *this, ...)
{
  this->field_name =  128 ;
  ...
}

Странно, что не дети этого до сих пор не знают.

Да, напряжно. Но макроязык выше, с метаконструкциями, как раз имеет целью, да, тупую
императивщину унифицировать.
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35820865
Печенкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почконкин<бред скипнут>

тогда просто "прикольно" уметь конвертировать из Схемы в Паскаль, из Паскаля в С++, из С++ в Хаскелл, из Хаскелла в Бейсик, ха, ну ведь действительно прикольно, и на означенном уровне вполне реализуемо, хоть и геморройчик тот еще.

Это вообще не прикольно, и настолько же глупо, как дизассемблировать машинный код сразу в C или Pascal.

Почему? А ты подумай, невзначай, какого уровня макроконструкции можно определять на метаязыке. Кагбэ тупыми EQ, SET, IF там не планируется ограничиваться ;))
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35820871
Почконкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПечонкинНа голом ANSI С можно вовсю программировать в ООП стиле.
Странно, что не дети этого до сих пор не знают.
Ты почти гений. Познай возможность писать на ассемблерах в парадигме функционального и даже, о Господи!, логического программирования, и тогда станешь им.

ПеченкинПочконкин<бред скипнут>
тогда просто "прикольно" уметь конвертировать из Схемы в Паскаль, из Паскаля в С++, из С++ в Хаскелл, из Хаскелла в Бейсик, ха, ну ведь действительно прикольно, и на означенном уровне вполне реализуемо, хоть и геморройчик тот еще.

Это вообще не прикольно, и настолько же глупо, как дизассемблировать машинный код сразу в C или Pascal.
Машинный код для человека не читабелен изначально, потому вопрос о трансляции на ЯВУ с сохранением читабельности попросту бессмысленный. Простая же трансляция, по твоим собственным словам, тебя не интересует. Аналогия не прокатила, нет.

ПеченкинПочему? А ты подумай, невзначай, какого уровня макроконструкции можно определять на метаязыке. Кагбэ тупыми EQ, SET, IF там не планируется ограничиваться ;))
Да прочитай ты уже, наконец, что такое "метаязык" и прекрати употре*censored* это слово ни к селу ни к городу.
Тобой какбэ планируется ограничиться ANSI C, а это и есть примитивный набор тупых конструкций.
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35820880
Печенкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПочконкинПечонкинНа голом 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) - задает
грамматику, и варианты трансляции в другие языки. Т.е. является в чистейшем виде МЕТА

В чистом виде метаязык, описывающий другие языки. Не нравится определение?
Претензии вон дверям можешь высказать, ибо это уже имя собственное (пока такое).
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35820909
Почконкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПеченкинИтого метаязык имеет цель как раз ту самую - ввод в язык произвольных макроконструкций
более высокого уровня (которые могут в конкретном языке быть уже транслированы
в абсолютно разные вещи, в к примеру в случае 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) - задает
грамматику, и варианты трансляции в другие языки. Т.е. является в чистейшем виде МЕТА

В чистом виде метаязык, описывающий другие языки. Не нравится определение?
Претензии вон дверям можешь высказать, ибо это уже имя собственное (пока такое).
О, это еще веселее. В такой постановке твоей задачи тебя спасет... плюсовской препроцессор. Ах, как банально всё разрешилось.
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35820963
ПочконкинО, это еще веселее. В такой постановке твоей задачи тебя спасет... плюсовской препроцессор. Ах, как банально всё разрешилось.
Он примитивен как пробка.

В принципе из макропроцессоров меня на 95% устраивает и M4.
Как я говорил единственная претензия к M4 - это отсутствие способности ставить отступы.

А вообще изначально я спрашивал уже про готовые шаблоны (хотя-бы для основных
языковых примитивов, декларации функций, переменных, циклов ветвлений).
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35821072
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печенкин-Печонкин пишет:
> Автор: Печенкин-Печонкин
> Почконкин
> О, это еще веселее. В такой постановке твоей задачи тебя спасет...

Я запуталси... фсё смишалась, кони, люди...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35821817
Печёнкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Печенкины,

Вот Embedded SQL в C - сперва - макропроцессор, потом - генератор кода, и дальнейшая эволюция не понадобилась!?

Наверно какие-то УЧАСТКИ кода с одного языка высокого уровня на другой возможно,
если эти участки будут достаточно целостны. То есть можно четко отделить от другого текста, когда минимальны и ясны все контексты.
А вообще программные контексты едва ли формально выявляемы?
...
Рейтинг: 0 / 0
Многоязыковое метапрограммирование
    #35822397
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идея применять на практике метаязык вылезет большим боком при использовании отладчика. Если в случае с ЯП - сообщение с ошибкой более-менее информативно. И девелопер, зная свой язык и (поверхностно) язык ассемблера может определить фрагмент кода или оператор, который вызывает ошибку, то в метаязыке такой возможности не будет. Данные отладки не содержат ссылок на код метаязыка.
...
Рейтинг: 0 / 0
25 сообщений из 111, страница 3 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Многоязыковое метапрограммирование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]