spoPresentation2
.pdf
Классификация трансляторов
Трансляторы
Ассемблеры
Кросс- |
Дизассемблеры |
|
|
компиляторы |
|
|
|
|
Макрогенератор |
||
Компиляторы |
|
|
|
компиляторов |
|
|
|
11
Классификация трансляторов
Трансляторы – это программные средства, выполняющие преобразование программ, представленных на одном языке, в эквивалентную ей программу на другом языке
Компилятор переводит программу с исходного языка на язык более низкого уровня. На входе компиляторы получают исходный текст программы, а на выходе выдают готовую программу в машинном, объектном или ином промежуточном коде.
C, C++, Pascal |
12 |
|
Классификация трансляторов
Компилятор с языка Assembler называется
ассемблером
Кросс-компилятор выполняет трансляцию
программы на одной платформе, формирую объектный код для другой платформы
Компилятор компиляторов на вход
получает описание языка в терминах формальных грамматик, а на выходе формирует текст программы на языке высокого уровня, например, С, позволяющей выполнять компиляцию программ на
разрабатываемом языке (LEX, FLEX, YACC,
13
Bison)
Классификация трансляторов
Интерпретаторы – это компиляторы, которые не формируют готовой программы, а выполняют исходный текст программы по частям (Visual Basic)
Препроцессор – это транслятор макрорасширений языка, который переводит их в программу на входном языке. Макрогенератор - препроцессор ассемблера
Детранслятор преобразует программу с языка более низкого уровня к языку более высокого уровня. Дизассемблер – детрансля-тор на язык ассемблера
14
Этапы трансляции
Препроцессор
Лексический анализ
Синтаксический анализ
Семантический анализ
Распределение памяти
Оптимизация
Генерация кода
15
Структура современных систем программирования
Редактор ресурсов |
|
|
|
Текстовый редактор |
|
|
Описание |
|
|
|
|
файлы |
|
4 GL |
|
|
|
|||
ресурсов |
|
|
Исходный |
|||
|
|
|
||||
Транслятор ресурсов |
|
Транслятор |
||||
|
файлы |
|||||
|
|
|
|
|
||
Ресурсы |
|
Объектный |
||||
интерфейса |
Редактор связей (компоновщик) |
|||||
|
||||||
Загрузочный файл Загрузчик
Выполнение
16
Современные системы программирования
Система программирования – это комплекс программных средств, предназначенных для кодирования, тестирования и отладки программного обеспечения
Лексический анализ на лету (подсветка синтаксиса), контекстная справка
Редактор связей - связывание между собой объектных файлов и библиотек, определение адресов внешних для модуля вызовов. Трансляцию относительных адресов в абсолютные выполняет загрузчик
17
Классификация языков программирования |
|||
Кроссплатформенные |
|
Генераторы |
|
|
приложений |
||
|
4GL |
||
Машинно- |
Языки |
||
независимые |
|
представления |
|
|
|
информации |
|
Высокого уровня |
Непроцедурные |
||
Машинно- |
Процедурные |
||
Ассемблеры с |
|||
ориентированные |
|||
макрогенераторами |
|||
|
|||
Низкого уровня |
|
Ассемблеры |
|
Машинные коды |
|||
|
|||
|
|
18 |
|
Классификация программирования
While not (Money.Eof) do begin
If Money[‘Salary’]>100 then begin
Money.Edit;
Money[‘Salary’]:= Money[‘Salary’]+10;
Money.Post;
End;
Money.Next;
End;
update money
set salary=salary+10 where salary>100
19
Понятие алфавита
В общем случае язык состоит из знаковой системы (множество допустимых последовательностей знаков), множества смыслов этой системы, соответствия между последовательностями знаков и смыслами
Символ (буква) – это простой неделимый знак
Алфавит – это счетное множество допустимых символов языка
Алфавит A
20
