Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Разработка компилятора языка C.


Автор: Avaj 8.9.2010, 12:08
Ну вот пришла и моя очередь писать компилятор в универе. И вот вижу я много книг и статей. И не знаю с чего начать. 
И прошу вас снабдить полезными ссылками на любые примеры разработки простейших компиляторов с комментариями.

Автор: djamshud 8.9.2010, 12:10
http://www.ozon.ru/context/detail/id/4952912/

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

Автор: UniBomb 8.9.2010, 12:17
На хабре есть неплохой цикл статей - http://habrahabr.ru/blogs/programming/99162/.

Автор: djamshud 8.9.2010, 12:18
Читал я тот цикл интересу ради. Отстой. Как впрочем и большая часть материала на хабре.

Автор: UniBomb 8.9.2010, 12:37
djamshud, ну у меня опыта в этом деле маловато, так что не могу спорить  smile 

Автор: Avaj 8.9.2010, 14:02
djamshud 

Цитата

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


Представьте себе эта книга у меня есть, бумажная smile
Но я там вижу очень много теории и не заметил примера полной реализации компилятора, а только лишь "Завершённый пример начальной стадии реализации компилятора" и тот на Java, т.е. синтаксический и лексический анализаторы и что-то там ещё, а на выходе получается не exe-файл, а синтаксическое дерево.... И зачем мне это надо?

А вот чтоб и с генерацией кода и со всеми остальными штуками, чтоб настоящий, хоть и простой, компилятор был - знаете ли такое?

Автор: kemiisto 8.9.2010, 14:07
Цитата(Avaj @  8.9.2010,  15:02 Найти цитируемый пост)
А вот чтоб и с генерацией кода и со всеми остальными штуками, чтоб настоящий, хоть и простой, компилятор был - знаете ли такое? 

Да. http://findbook.ru/search/d1?isbn=9785469003786&r=0&s=1&viewsize=15&startidx=.

И вот ещё недавно вышла http://findbook.ru/search/d1?isbn=978-5-94074-585-3&r=0&s=1&viewsize=15&startidx=0. Но её я даже не открывал. smile 

Автор: boostcoder 8.9.2010, 14:10
Avaj, есть у меня знакомый, занимающийся подобным вопросом. у него написан компилятор с++. реализовано около половины возможностей С++03. и не дописан линкер. если что, могу подсказать ник. но он на другом форуме тусит.

Автор: djamshud 8.9.2010, 14:18
Avaj,

1. То, что на яве - это даже лучше. Вы же сами хотите написать, а не скопировать из книги? Я вот тоже яву не знаю, а прекрасно осилил.
2. Теория - это очень хорошо. Без нее вы сами компилятор не напишите.
3. Генерация конечного exe из ассемблера или любого другого внутреннего кода - самое простое, что есть в компиляторе и это последний и совсем необязательный шаг при его создании.

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

Автор: Avaj 8.9.2010, 14:34
boostcoder, это, если не трудно, киньте в личку.
djamshud, действительно, только пролистал smile но нашёл во воторой главе годный пример компилятора.

Автор: djamshud 8.9.2010, 14:47
Avaj, первые главы - только цветочки:). Самое интересное будет дальше. И если действительно хотите сами написать что-то, не листайте, а читайте внимательно:).

Автор: icecrashldr 8.9.2010, 16:56
NASM самое простое и очевидное... Компиляция asm, парсинга не много, зато будет готовый компилятор, а скриптинг можно добавить и в него.

Самое сложное это не парсинг, а генерация машинного кода + оптимизация и конечно отладочная инфа+ symbols и etc.

Если вы про парсинг то Js движок будет в тему... 

Автор: xvr 9.9.2010, 10:37
Делайте компилятор в байткод + интерпретатор байткода (a-la Java & .NET) Это будет вполне полноценный компилятор и гораздо более простой, чем компилятор в Native код.

Автор: sdukshis 9.9.2010, 11:53
Могу посоветовать такую книжку
http://fictionbook.ru/author/krenshou_djek/.

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




Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)