|
#1
|
||||
|
||||
Компилятор
Привет всем. У меня вопрос такой.
Кто нибудь создавал свой собственный компилятор? И если он заброшен, поделитесь наработками. Компилятор на Delphi для Masm32. Или поделитесь ссылками где это уже обсуждалось. Изобретаю своё колесо 11011111 INED Home code VK Последний раз редактировалось ined, 24.09.2012 в 13:26. |
#2
|
||||
|
||||
Насколько я знаю, МАСМ (как и все мелко-мягкое), закрыт. Однако в свободном доступе. Так что писать МАСМ нецелесообразно - и нарушение авторских прав, и пустая работа одновременно.
По поводу изобретения колес - есть например FASM, ИМХО замечательный ассемблер, и вдобавок открытый. Так что поглядеть на исходники вполне можно. Правда он написан на самом себе, и синтаксис немного отличается от MASMа. Также есть NASM (YASM), который тоже открыт. З.Ы. Поглядеть код фасма можно в теории. На практике, ИМХО, тому, кто сможет это прочитать, надо нобелевскую премию давать... З.З.Ы. И все-таки для ассемблера он скорее транслятор, чем компилятор. jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
Моя цель такова, сначала написать на Delphi, а потом с помощью полученного написать тоже самое, только на том что получилось.
В общем должно получится типа что-то вроде FASM(компилятор написанный на самом себе) На сколько это будет законно? 11011111 INED Home code VK |
#4
|
||||
|
||||
Ну, думаю, что заявлять, что это творение ремейк "МАСМ" нельзя, а вот сказать, что это совершенно иной ассемблер, но с МАСМ-совместимым синтаксисом, думаю, можно. Борланд ведь так и сделали, когда сделали в ТАСМе совместмость с МАСМом.
Только не пойму, зачем писать на делфи. Не проще первую версию транслировать МАСМом, если уж он все равно потом будет транслироваться собой? jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
||||
|
||||
На Дельфи проще набросать черновик программы. Потом, по мере продвижения проекта уже переносить в asm.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#6
|
||||
|
||||
Цитата:
Угадал. Так проще. 11011111 INED Home code VK |
#7
|
||||
|
||||
Мм.. Кому-то наверно действительно проще.
jmp $ ; Happy End! The Cake Is A Lie. |
#8
|
||||
|
||||
Ты не понял. Писать крупный проект сразу на asm-е гемморойно, не знаешь что и как пойдёт. На Дельфи пишешь не для того, чтобы потом дизассемблировать, а чтобы увязать все куски в единое целое. Но..., если ты готов с нуля подобное писать на asm-е, прочитай своё З.Ы. в первом топике.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#11
|
||||
|
||||
Цитата:
На самом деле я просто очень давно толком не брался за какие-либо ЯВУ и много кода писал сразу на асм для экономии времени. Поэтому мне такое было бы проще прикинуть принципиально на бумаге карандашом, а потом кодить сразу на асм. И скажу, при правильном подходе код на асм может выглядеть и читаться не хуже, чем на ЯВУ (при знании асм, разумеется). Оформление, комментарии и описание наше всё. Цитата:
jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 24.09.2012 в 22:04. |
#12
|
||||
|
||||
На бумажке прикинуть, хорошее дело. Но не все нюансы так просчитаешь.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#13
|
||||
|
||||
Я себе взял замечательную привычку: сначала делаю общую схему в виде картинки. Потом проектирую на бумажке элементы (примерно прикидываю схему работы, что с чем и как взаимодействует). Потом делаю большое текстовое описание, где подробно описываю сначала общие принципы работы (пояснение к картинке), потом алгоритмы, потом структуры данных. И обязательно его сохраняю. Только после всех этих махинаций я начинаю кодить. И тут язык уже не важен: все алгоритмы расписаны до невозможности, вся схема перед глазами. Если вскрывается недочет описания - тут же правлю его. Добавляем к описанию комментарии - и получаем замечательную вещь: кучу асм кода, в который мне пришлось фтыкать по новой через несколько месяцев абсолютного забытия. И справился довольно быстро.
После этого картинку можно сжечь и код уничтожить - все равно восстановить все это особо большого труда по описанию и обрывкам мыслей не составляет (только времени много: уже терял крупные куски кода и приходилось части проекта восстанавливать). Да, очень много времени уходит. Но иначе писать ОСь на ассемблере не в виде набора костылей невозможно. А с такой системой очень удобно. Ну а если код предстоит небольшой, то все это иногда проделываю быстро в голове. Правда в этом случае если не успеть закодить до конца дня, будет феил. jmp $ ; Happy End! The Cake Is A Lie. |
#14
|
||||
|
||||
Оценил FASM как то он не очень. В последней версии masm32 есть так называемые дополнения которые создают начало проэкта:
- Форму - Консоль - Библиотеку DLL А в FASM что-то токого я не увидел. 11011111 INED Home code VK |
#15
|
||||
|
||||
Цитата:
З.Ы. если будешь смотреть фреш - она новая, поэтому только альфа. Дебаггер лучше не включать. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 24.09.2012 в 22:29. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
ined (24.09.2012)
|