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

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

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

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

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

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