3 элемент – пробел, соответствует ошибке.

Сравнительный анализ методов

Оба метода детерминированы и могут обнаруживать синтаксические ошибки на самом раннем этапе.2 метод применяется к более широкому классу языков и грамматик и не требует преобразования грамматики. Дд1 требует преобразования, и при наличии хорошего преобразователя не вызывает затруднения.

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

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

Все реально существующие компиляторы, на этапе разбора входных цепочек, проверяет только синтаксис входного языка не учитывая его семантику. Для проверки необходимо иметь информацию о найденных лексических единицах языка.

Лекция 21.12.07

Генерация кода


Сложные компиляторах могут компилироваться промежуточные формы представления программ, пригодные для последующего анализа, с целью генерации более эффективного объектного кода.

Промежуточные формы

Последовательность четверок

Последовательность троек

Полиз – позволяет представлять любое математическое выражение без скобок

S->EVP

EVP-> TERM

TERM->FACT

FACT->FACT

ID->A|B|C|D

Грамматика четверок

QUAD->OPERAND OPI OPERAND=INT

OP2 OPERAND=INT

OPERAND->INT|ID

INT->DIGIT|DIGIT INT

DIGIT-> 0|1|2|3|4|5|6|7|8|9

OP|+-|*

ID->a|b|c|d|e

Оптимизация

На основании четверок может осуществляться анализ и модернизация промежуточного кода.

Цель: оптимизация.

Можно исключать некоторые операции запоминания и загрузки.

Эффективно использовать промежуточные формы.

Уменьшается длина программы, уменьшается количество переменных. Существует и Машино независимая оптимизация.

Лекция 28.12.07

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

Компилятор для хранения структурированных элементов должен выполнить несколько этапов:

Выделить память под массив, для этого он должен знать границы массива.

Заполнить информацию характеризующую структурную переменную, размер, тип массива и указатель на его начала.

Сгенерировать информацию для обращения компонентам структурированной переменной.

Породить описатель структурированной переменной, для тех случаев, когда необходимая информация отсутствует во время компиляции.

Аналогичная информация возникает при обработки записи строк и множеств.

Рекурсивный вызов процедур, в случаи использования статического распределения памяти не работает. Эту проблему решают с помощью динамическое распределение памяти. Каждый вызов приводить к образованию области инициализации. Обычна область инициализации располагается в стеки, и располагается следующей информацией. Содержит все переменные, адрес возврата, хранит адрес следующего и предыдущего вызова. Этот метод называется метод автоматического распределения.

Варианты создания компиляторов.

Скорость работы

Качество кода

Диагностика ошибок

Переносимость

Поддержка

Если важна скорость компиляции, то одна просмотровая схема предпочтительней. Однако не все языки высокого уровня.

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

Интерпретатор 3

 

Интерпретатор 2

 

Интерпретатор 1

 

Объектная программа

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

Генераторы, компиляторы.


Информация о работе «Разработка в структурно логической схемы микропроцессора»
Раздел: Информатика, программирование
Количество знаков с пробелами: 37432
Количество таблиц: 3
Количество изображений: 4

Похожие работы

Скачать
91958
12
0

... . В случае выбора пункта «выход», необходимо реализовать завершение работы программы и передачу управления операционной системе DOS. 1.3. Требования техническим и программным средствам Программа выполнена на языке ассемблера 8086 процессора, соответственно ей необходим IBM PC – совместимый компьютер с процессором не ниже 8086, также программа может выполняться на компьютерах с ...

Скачать
18671
5
0

... ;  РПР - ввод/вывод информации в режиме прерывания;  пар. – параллельный порт;  посл. – последовательный порт. 2. Разработка структурной схемы микропроцессорной системы. В данной работе разрабатывается микропроцессорная система с минимальной конфигурацией, что предполагает использование управляющих сигналов, формируемых непосредственно на выводах микропроцессора Intel ...

Скачать
39407
3
0

... для каждого звена составим разностные уравнения: 1)   первое звено: ; 2)   второе звено: ; 3)   третье звено: . Результирующее разностное уравнение для цифрового фильтра будет иметь вид: .4 РАЗРАБОТКА АЛГОРИТМА ПРОГРАММЫ  ПРОЕКТИРУЕМОГО УСТРОЙСТВА Прежде чем приступить к программированию устройства необходимо основательно изучить его внутреннюю структуру и возможности ресурсов. ...

Скачать
25753
0
4

... микропроцессора, которые явно отражаются в программах и должны быть учтены при разработке схем и программ функционирования системы. Такие характеристики определяются понятием архитектуры микропроцессора.   1.2 Понятие архитектуры микропроцессора Архитектура типичной небольшой вычислительной системы на основе микроЭВМ показана на рис. 1. Такая микроЭВМ содержит все 5 основных блоков цифровой ...

0 комментариев


Наверх