Руководство по проектированию компилятора

Компилятор переводит код, написанный на одном языке, на другой язык, не меняя смысла программы. Также ожидается, что компилятор должен сделать целевой код эффективным и оптимизированным с точки зрения времени и пространства.

Принципы проектирования компилятора обеспечивают глубокое представление о процессе перевода и оптимизации. Дизайн компилятора охватывает базовый механизм трансляции, а также обнаружение и устранение ошибок. Он включает лексический, синтаксический и семантический анализ в качестве внешнего интерфейса, а также генерацию и оптимизацию кода в качестве внутреннего интерфейса.

Зачем изучать дизайн компилятора?

Компьютеры - это сбалансированное сочетание программного и аппаратного обеспечения. Аппаратное обеспечение - это просто часть механического устройства, и его функции контролируются совместимым программным обеспечением. Аппаратное обеспечение понимает инструкции в форме электронного заряда, который является аналогом двоичного языка в программировании программного обеспечения. В двоичном языке есть только два алфавита: 0 и 1. Для инструктирования аппаратные коды должны быть записаны в двоичном формате, который представляет собой просто последовательность единиц и нулей. Написание таких кодов было бы сложной и обременительной задачей для компьютерных программистов, поэтому у нас есть компиляторы для написания таких кодов.

Система языковой обработки

Мы узнали, что любая компьютерная система состоит из аппаратного и программного обеспечения. Оборудование понимает язык, который люди не могут понять. Поэтому мы пишем программы на языке высокого уровня, который нам легче понять и запомнить. Затем эти программы загружаются в серию инструментов и компонентов ОС, чтобы получить желаемый код, который может использоваться машиной. Это известно как система обработки языка.

Аудитория

Это руководство предназначено для студентов, заинтересованных в изучении основных принципов работы с компиляторами. Восторженные читатели, которые хотели бы узнать больше о компиляторах и те, кто желает спроектировать компилятор самостоятельно, могут начать отсюда.

Предпосылки

Это руководство не требует предварительных знаний о конструкции компилятора, но требует базовых знаний по крайней мере в одном языке программирования, таком как C, Java и т. Д. Это было бы дополнительным преимуществом, если бы вы ранее имели опыт программирования на ассемблере.