В последнее время часто переписываю программы с одного языка на другой. Работа тупая, можно легко автоматизировать — взять язык с простейшим синтаксисом и задать правила перевода. Сложные плохо переводимые конструкции стараюсь не использовать. Какой язык, библиотеку или инструмент можете посоветовать для такой задачи? Расскажите об опыте практического применения, если перед вами стояла подобная задача.
Программировать сложно. Но не программировать еще сложнее.
Здравствуйте, DSblizzard, Вы писали:
DS>Неясно написал. Я хочу писать на этом макроязыке, а с него уже автоматически переводить на другие. Впрочем, и прямой перевод не помешает.
XML + XSLT?
Здравствуйте, DSblizzard, Вы писали:
DS>В последнее время часто переписываю программы с одного языка на другой. Работа тупая, можно легко автоматизировать — взять язык с простейшим синтаксисом и задать правила перевода. Сложные плохо переводимые конструкции стараюсь не использовать. Какой язык, библиотеку или инструмент можете посоветовать для такой задачи? Расскажите об опыте практического применения, если перед вами стояла подобная задача.
JetBrains MPS смотрел?
Здравствуйте, DSblizzard, Вы писали:
DS>Неясно написал. Я хочу писать на этом макроязыке, а с него уже автоматически переводить на другие. Впрочем, и прямой перевод не помешает.
Лисп, наверно лучше его ограниченное подмножество.
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, DSblizzard, Вы писали:
DS>>Неясно написал. Я хочу писать на этом макроязыке, а с него уже автоматически переводить на другие. Впрочем, и прямой перевод не помешает. G>XML + XSLT?
XSLT штука мощная, но сопровождать потом километры темплейтов удовольствие не из приятных.
DSblizzard wrote:
> Я тоже об этом думал, только не могу сообразить, как его использовать. > Как Лисп сможет облегчить задачу?
0) Пишешь программу на лиспе.
1) Задаёшь выходной язык и загружаешь твою программу (можно было бы сказать
запускаешь, но думаю именно запускать
тебе её уже не придётся, хотя тут все сложно, кто знает, тот поймёт ).
2) получаешь код на целевом языке.
Собственно, программа у тебя будет состоять из:
-- программы на метаязыке, записанной в виде S-выражений лиспа, т.е. на лиспе.
Но сама программа будет при этом не программой, а данными.
-- набора макросов и функций, которые тебе будут транслировать программу с
метаязыка на целевой.
Хочу однако тебя предупредить, что никакой секретной магии тут нет,
и трансляторы придётся писать самому, естественно. Лисп тут ничем не
отличается от других языков программирования. Просто на лиспе гораздо
легче всё это сделать: описать какой-то язык и написать транслятор
с него. В лиспе код и данные -- это почти одно и то же.
Здравствуйте, MasterZiv, Вы писали:
MZ>Хочу однако тебя предупредить, что никакой секретной магии тут нет, MZ>и трансляторы придётся писать самому, естественно. Лисп тут ничем не MZ>отличается от других языков программирования. Просто на лиспе гораздо MZ>легче всё это сделать: описать какой-то язык и написать транслятор MZ>с него. В лиспе код и данные -- это почти одно и то же.
Я, правда, не программист и языков программирования знаю очень мало, но упомяну еще Форт.
The mistery of Yoda’s speech uncovered is: Just an old Forth programmer Yoda was.
Здравствуйте, DSblizzard, Вы писали:
DS>В последнее время часто переписываю программы с одного языка на другой. Работа тупая, можно легко автоматизировать — взять язык с простейшим синтаксисом и задать правила перевода. Сложные плохо переводимые конструкции стараюсь не использовать. Какой язык, библиотеку или инструмент можете посоветовать для такой задачи? Расскажите об опыте практического применения, если перед вами стояла подобная задача.
Есть такой язык. А цена вопроса? И, минимальный набор средств какой требуется? Потому как с языка на язык не все переведется.