Архив для 2012

Компилятор домашнего приготовления (ч.1)

Автор: Виталий Белик Почему мне пришла в голову идея разработать собственный компилятор? Однажды мне на глаза попалась книга, где описывались примеры проектирования в AutoCAD на встроенном в него языке AutoLISP. Я захотел c ними разобраться, но прежде меня заинтересовал сам ЛИСП. «Неплохо бы поближе познакомиться с ним», – подумал я и начал подыскивать литературу и […]

Компилятор домашнего приготовления (ч.2)

Автор: Виталий Белик Ветер… У вас тоже ну улице ветерок? Возможно, он принесет дождь, по крайней мере, разгонит эту изнурительную жару. Но пока этого не случится, людям стоит спрятаться от палящих лучей солнца в помещения с кондиционером и холодильником, в котором охлаждается квасок или живое пиво. Ну, а пока это счастье свежеет от фреонного холода, […]

Компилятор домашнего приготовления (ч.3)

Автор: Виталий Белик Всем доброго. В прошлой статье я описал как охладить в холодильнике квас, пока пишется ядро компилятора. Помните? Нет?! Странно… Впрочем, это не проблема. Наши журналы хранятся по адресу [1], так что освежить память – не проблема. Поскольку ядро, генерирующее PE файл готово (по минимуму, но готово) и его можно использовать для генерации […]

Компилятор домашнего приготовления (ч.4)

Автор: Виталий Белик Знаете, я все думал: «С чего бы продолжить написание компилятора, какой следующий шаг важнее?». Описать механизм операторов? Так к ним неплохо бы переменные, и функции могут участвовать в операциях. Описать механизм функций, опять-таки они без операторов – ничто. Описать механизм переменных? Но далеко не все типы можно обработать без функций… Дилемма. И […]

Компилятор домашнего приготовления (ч.5)

Автор: Виталий Белик Так. Мотор готов, резина согласно погоде… Теперь залить горючее и собрать карбюратор. В качестве горючки у нас будут опкоды, помещенные в отдельный модуль, обернутые в функции их возвращающие. Предлагаю этим и заняться… Shards of mirror Я разделил опкоды на группы, чтобы проще было понять, с чем они работают. Операции с центральным камушком […]

Powered by Procoder