|
ПРОГРАМИ ЗА ЕЗИКОВА ОБРАБОТКА
|
|
СИСТЕМНО ПРОГРАМНО ОСИГУРЯВАНЕ
|
ТранслаторПрограма, която преобразува програма написана на един език (нарича се изходен език, а програмата изходен код) в програма, написана на друг език (нарича се целеви език и обектен код).
Като целеви език най-често се използват машинен код, Асемблер и байт код, които са най-удобни за следващо използване. Използват два вида транслатори:
Компилатор – резултатът от транслацията е изпълним файл. Този файл се:
Интерпретатор – транслира програмата постъпково. В този случай програмата :
Освен „чисти компилатори и интерпретатори” съществуват множество междинни варианти.
КомпилаторТранслатор, който преобразува програма написана на език от високо ниво в резултираща програма, използваща езика на машинните команди (на микропроцесора или виртуална машина).
Голяма част от компилаторите преобразуват програмата написана на език от високо ниво в машинен код, който може непосредствено да се изпълнява от централния процесор.
Като правило машинния код се изпълнява в среда на конкретна операционна система, тъй като използва предоставени от нея възможности. Това изисква създаване на компилатори за всяка операционна система.
Крос–компилатори – позволяват в среда на една операционна система да се получи код за изпълнение в друга среда на ОС.
Декомпилатори – програми, които решават обратната задача. Те преобразуват програми с език на машинно ниво в програми с език от високо ниво.
Интерпрета́торТранслира програмите непосредствено в хода на изпълнението им.
Прости интерпретатори - анализират и изпълняват програмата последователно (по команди или по редове). Открива синтактически грешки, при изпълнение на команда и поради това е удобен за начинаещи.
Сложни интерпретатори (наричат се интерпретатори от компилиращ тип) - преди изпълнението извършват компилация на изходния код на програмата в машинен или някакъв „междинен” код, след което пристъпват към изпълнението му.
Асе́мблерТранслира инструкциите написани на асемблерен език в машинен код.
За всяка процесорна архитектура или за всяка ОС, съществува собствен Асемблер.
Байт-кодМашинно-независим код от ниско ниво, генериран от компилатор и изпълняван от интерпретатор.
на байт-код
Преимущества на байт-код
Приложение на байт-кодТози подход се използва в много съвременни ивтерпретируеми езици, при които изходния код се компилира до байт код и след това се интерпретира (Perl, PHP и Python).
Програмите написани на езика Java обикновено се предават за изпълнение във вид на байт код, който преди изпълнение се транслира в машинен код в реално време с помощта на JIT-компилация.
За програмните езици използвани в платформата .NET Framework (C#, Managed C++, Visual Basic .NET и други) транслаторът в машинен код се нарича MSIL (Microsoft Intermediate Language, „Промеждутъчен език на фирмата Microsoft”).
|