LINUX.ORG.RU

Нужно переписать проект с одного языка на другой

 


0

2

Короче, я начал изучать программирование с GML. В вики была статья, искать лень. В кратце - динамический, событийно ориентированный, отчасти объектно-орриентированный. Кучу функций в стандартной библиотеке, звук и графика из коробки. Для изучения программирования - самое оно.

Так вот. Где то классе в 9 я первый раз заразился желанием написать свой ЯП. Отличительной чертой было желание запилить не убийцу всего и вся, а желание иметь что то простое, очень-очень.

Ну, естественно, ни хрена не получилось. Но я с переменным успехом в течении двух лет пытался таки написать что то компилируемо/интерпретируемое. Короче, в итоге я имею виртуальную машину с mapped IO, ассемблер и компилятор диалекта Си на этом гребаном ГеймМейкере. Я только сейчас понял, что не надо было писать компилятор на конструкторе игр.

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

Deleted

Помогите советом - как все переписать на си, или что там у нас для компиляторов подходит?

Руками. В чём цель переписывания? Выучить C или C++? Если нет, то и смысла особого нету, имхо.

Norgat ★★★★★
()

Напиши компилятор с гейммейкера на си

unC0Rr ★★★★★
()

в качестве подколки: используй llvm, может быть там даже фронтэнды для gml есть :)

более серьёзно: можешь выкинуть всё и написать только свой фронтэнд для llvm.

invy ★★★★★
()

не надо было писать компилятор на конструкторе игр

почему? (серьезно спрашиваю)

вообще смена языка — плохой повод, чтобы переписывать код. вот надоело/придумал как что-то сделать лучше — это хорошие поводы.

я тебе предлагаю более развлекательный план: во-первых, напиши компилятор с твоего языка на нем же (т.е. чтобы в вм можно было что-то скомпилировать и запустить).

второй шаг — напиши кодогенератор для x86 или arm. забей на оптимизации, без них это не так уж сложно сделать.

последний этап — научись писать elf. все, теперь ты можешь перекомпилировать твою вм из нее самой под хостовую систему.

это все достаточно просто, если ты не будешь гоняться за всякими модными наворотами, а всегда будешь выбирать наиболее легкий работоспособный вариант.

anonymous
()
Ответ на: комментарий от anonymous

Я переписать как раз хочу именно по тому, что сейчас компилятор трудно раскручивать. В ГМе массив - 32000 элементов. По скольку в моем компиляторе оптимизаций мало, массив с байт-кодом забивается быстро.

И да, в линуксе под вайном он фигово работает, так что, надо переписать на сишку. Плюс и раскрутка будет проще, т.к. си больше похож на мой диалект, чем GML.

Deleted
()
Ответ на: комментарий от quickquest

Зачем нужен оберон-о? Это просто какая то не функциональная хрень, чем слово. Мой диалект си - и тот лучше. По сути, у меня smallc с нормальным объявление локальных переменных и циклом for.

P.S. книжка в печатном варианте на полке лежит.

Deleted
()
Ответ на: комментарий от Deleted

Зачем нужен оберон-о?

1. Для обучения.
2. Был проект «Оберон на чипе» (PDF) для микроконтроллеров с гарвардской архитектурой.
Но когда дедушка Вирт ушёл на пенсию проект заглох :)

quickquest ★★★★★
()

Конечно руками. Так же стоит «покурить» регулярные выражения. Я когда код с ObjC на C++ переписывал, все обошлось парочкой регулярок и внимательным просмотром результатов их выполнения.

Но с GML не знаком и не знаю, насколько он близок к С.

trex6 ★★★★★
()

Зачем тебе Си? Перепиши свой компилятор на своем же диалекте хрен пойми чего! Так поступают все серьезные языки.

anonymous
()
Ответ на: комментарий от anonymous

Чукча не читатель, чукча писатель. В теме уже есть ответы на все пункты вашего сообщения.

Ну я повторюсь, че.

Переписать тяжело - памяти не хватит. В ГМе массивы маленькие.

Диалект - smallc с плюшками.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.