Почему и для чего нам нужен компилятор

Похоже, настало время пояснить, для каких целей нам нужен компилятор. В разделе «О проекте» упомнинался разработка микропроцессора.  Мы постараемся слегка приоткрыть завесу над этой «тайной». Для начала подумаем, что же есть вычислительной ядро в современн...
Дальше...

Рефакторинг, рефакторинг, рефакторинг

Сложно назвать точную цифру, но навскидку — сложность разбора синтаксиса C++ где-то в три раза выше сложности разбора обычного Си. В этом сообщении не будет новых примеров, показывающих чему научился синтаксический анализатор за прошедшую неделю. Эта недел...
Дальше...

Ещё один шаг навстречу С++

Медленно и осторожно добавляется разбор классов С++. На картинке показан пример восстановления кода из синтаксического дерева. Добавлена поддержка виртуальных и абстрактных функций, но наследования ещё нет, как нет и поддержки статических членов класса. В приведённом примере есть...
Дальше...

Робкий взгляд на C++

Мы показали проект компилятора нескольким знакомым программистам и все они задали одинаковый вопрос — будет ли компилятор поддерживать язык  Си++? Мы не ставили перед собой задачу в полном объёме поддерживать современные стандарты этого языка. Однако, при ...
Дальше...

Проблема разбора одной из конструкций языка С++

Поскольку синтаксический анализатор языка Си практически готов, у нас возник вопрос — что делать дальше, приступить к генерации кода или попробовать разбор конструкций С++?  Так или иначе, но для того, чтобы в будущем компилятор смог собрать себя сам, нам пона...
Дальше...

Один год работы над компилятором

Разработка компилятора — сложный, длительный и трудоёмкий процесс. В Сети немало обсуждений и комментариев на эту тему. Некоторые начинающие программисты берутся за эту задачу, но лишь немногие достигают видимого успеха. Согласитесь, с точки зрения семантики — язык Си...
Дальше...