Страницы

Поиск по вопросам

суббота, 1 февраля 2020 г.

Как написать ассемблер?

#ассемблер


Т.е. транслятор который переводит программу с языка ассемблера в машинные команды.
Может книге какие есть?    


Ответы

Ответ 1



Если Вы хотите построить для тренировки всю цепочку разбора/трансляции языка в коды, т.е. если вы хотите иметь: лексер парсер транслятор то по видимому предложенный в одном из комментариев вариант с яко-бизонами будет лучшим, плюс сверху транслятор построите сами. Но это скорее промышленный подход. Я думаю для обучения будет крутовато. Есть другие варианты: написать всю цепочку самому руками, но выбрать более простой язык; взять генератор грамматик, типа бустовского spirit, тогда не нужна будет фаза лексического анализа(но тут минус по сравнению с яко-бизонами: разбор с возвратами - очень большие файлы(типа более 10Мб будет не оч быстро парсить)); одни мои знакомые использовали ANTLR были довольны; поискать други компромисы; есть подборочка бесплатных тулзин; А по поводу книжек: лучше всеми любимого двухтомника от Ахо и товарищей ничего не видел. Говорят его переиздали в одном томе, но это не книжка с драконом.

Ответ 2



Если для тренировки, то вот и книга - Формальные языки, грамматики и основы построения трансляторов. :) Ну, и возможно, еще и Yacc & Bison пригодятся.

Ответ 3



Взять код ассемблера GNU из пакета утилит GNU и заточить под свои нужды.

Комментариев нет:

Отправить комментарий