Компилатор
From Wikipedia, the free encyclopedia
Компилатор или програмски преводилац (енгл. ) је рачунарски програм (или низ програма) који трансформише код једног програмског језика у други програмски језик. Код који се преводи обично се зове изворни код, а код добијен трансформацијом машински код.
Најчешћи разлог за превођење изворног кода јесте прављење извршног програма. Име компилатор се користи за програме који преводе изворни код са вишег програмског језика на језик нижег нивоа (нпр. асемблерски језик, машински језик). Програм који преводи са нижег на виши програмски језик је декомпилатор. Програм који преводи са једног вишег програмског језика на други се обично зове преводилац језика, преводилац извора у извор, или конвертор језика. Преиначилац језика је обично програм који преводи форму израза без промене језика.
Превођење програма често се састоји из више фаза. То могу да буду неки од следећих процеса: лексичка анализа, препроцесирање, синтаксна анализа, семантичка анализа, генерисање кода и оптимизација кода.
Процес компилације се обично обично одвија кроз две главне етапе:
- анализу изворног кода и
- синтезу објектног кода.
У етапи анализе, изворни програм се преводи у одређену посредну репрезентацију, која је погодна за даље манипулисање. У етапи синтезе се из посредне репрезентације добија објектни код.
Са своје стране, етапа анализе се дели у три фазе:
- лексичку анализу
- синтаксичку анализу
- семантичку анализу