| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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, ну у меня опыта в этом деле маловато, так что не могу спорить |
| Автор: Avaj 8.9.2010, 14:02 | ||
djamshud
Представьте себе эта книга у меня есть, бумажная Но я там вижу очень много теории и не заметил примера полной реализации компилятора, а только лишь "Завершённый пример начальной стадии реализации компилятора" и тот на Java, т.е. синтаксический и лексический анализаторы и что-то там ещё, а на выходе получается не exe-файл, а синтаксическое дерево.... И зачем мне это надо? А вот чтоб и с генерацией кода и со всеми остальными штуками, чтоб настоящий, хоть и простой, компилятор был - знаете ли такое? |
| Автор: 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, действительно, только пролистал |
| Автор: 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/. Из недостатков: почти никакой теории. Из достоинств: через несколько часов работы с ней у Вас уже будет небольшой, но рабочий компилятор. |