ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.04.2024

Просмотров: 152

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Информация и информационные процессы Понятие информации ее виды и свойства; общая характеристика информационных процессов

Информационные системы и их функционирование. Информационная деятельность человека

Представление информации в эвм. Кодирование информации

Системы счисления

Технические и программные средства реализации информационных процессов. Общие сведения об эвм. Этапы развития вычислительной техники

Структура персонального компьютера, его функциональные характеристики. Принцип программного управления

Основные виды устройств для хранения информации.

Основные внешние устройства компьютера

Классификация эвм.

Разновидности программ для компьютеров: системные программы, прикладные программы, системы программирования

Операционные системы: их развитие и основные функции.

Концепция ос семействаwindows.

Алгоритмизация и программирование. Алгоритмизация

Основные принципы разработки и анализа алгоритмов

Трансляторы: интерпретаторы и компиляторы.

Однако сократить число проходов не всегда удается. Количество необходимых проходов определяется, прежде всего, грамматикой и семантическими правилами исходного языка. Чем сложнее грамматика языка и чем больше вариантов пред­полагают семантические правила — тем больше проходов будет выполнять ком­пилятор

Однопроходные компиляторы — редкость, они возможны только для очень про­стых языков. Реальные компиляторы выполняют, как правило, от двух до пяти проходов. Т,о, реальные компиляторы являются многопроходными. Наиболее распространены двух- и трехпроходные компиляторы, например: пер­вый проход — лексический анализ, второй — синтаксический разбор и семанти­ческий анализ, третий — генерация и оптимизация кода (варианты исполнения, конечно, зависят от разработчика). В современных системах программирования нередко первый проход компилятора (лексический анализ кода) выполняется параллельно с редактированием кода исходной программы.

Интерпретаторы. Особенности построения интерпретаторов

Интерпретатор — это программа, которая воспринимает входную программу на исходном языке и выполняет ее. Основное отличие интерпретаторов от трансляторов и компиляторов заключается в том, что интер­претатор не порождает результирующую программу, а просто выполняет исход­ную программу. Термин «интерпретатор» (interpreter) означает«перевод­чик». Простейшим способом реализации интерпретатора можно было бы считать ва­риант, когда исходная программа сначала полностью транслируется в машинные команды, а затем сразу же выполняется. В такой реализации интерпретатор, мало бы, чем отличался от компилятора с той лишь разницей, что результи­рующая программа в нем была бы недоступна пользователю. Недостатком тако­го интерпретатора было бы то, что пользователь должен был бы ждать компиля­ции всей исходной программы прежде, чем начнется ее выполнение. По сути, в таком интерпретаторе не было бы никакого особого смысла — он не давал бы никаких преимуществ по сравнению с аналогичным компилятором. Поэтому подавляющее большинство интерпретаторов действует так, что испол­няет исходную программу последовательно, по мере ее поступления на вход ин­терпретатора. Тогда пользователю не надо ждать завершения компиляции всей исходной программы. Более того, он может последовательно вводить исходную программу и тут же наблюдать результат ее выполнения по мере ввода команд. При таком порядке работы интерпретатора проявляется существенная особен­ность, которая отличает его от компилятора, — если интерпретатор исполняет команды по мере их поступления, то он не может выполнять оптимизацию ис­ходной программы. Следовательно, фаза оптимизации в общей структуре интерпретатора будет отсутствовать. В остальном же она будет мало отличаться от структуры аналогичного компилятора. Далеко не все языки программирования допускают построение интерпретаторов, которые могли бы выполнять исходную программу по мере поступления команд. Для этого язык должен допускать возможность существования компилятора, выполняющего разбор исходной программы за один проход. Кроме того, язык не может интерпретироваться по мере поступления команд, если он допускает по­явление обращений к функциям и структурам данных раньше их непосредствен­ного описания. Отсутствие шага оптимизации ведет к тому, что выполнение программы с помо­щью интерпретатора является менее эффективным, чем с помощью аналогично­го компилятора. Т.о, интерпретаторы всегда проигрывают компиляторам в про­изводительности. Преимуществом интерпретатора является независимость выполнения програм­мы от архитектуры целевой вычислительной системы. В результате компиляции получается объектный код, который всегда ориентирован на определенную архи­тектуру. Для перехода на другую архитектуру целевой вычислительной системы программу требуется откомпилировать заново. А для интерпретации программы необходимо иметь только ее исходный текст и интерпретатор с соответствующе­го языка. Интерпретаторы существовали для ограниченного кру­га относительно простых языков программирования (basic). Высокопроизводительные профессиональные средства разработки программно­го обеспечения строились на основе компиляторов. Новый импульс развитию интерпретаторов придало распространение глобаль­ных вычислительных сетей. Такие сети могут включать в свой состав эвм раз­личной архитектуры, и тогда требование единообразного выполнения на каждой из них текста исходной программы становится определяющим. Поэтому с разви­тием глобальных сетей и распространением всемирной сети интернет появилось много новых систем, интерпретирующих текст исходной программы. В современных системах программирования существуют реализации по, сочетающие в себе и функции компилятора, и функции интер­претатора — в зависимости от требований пользователя исходная программа либо компилируется, либо исполняется (интерпретируется). Некото­рые современные языки программирования предполагают две стадии разработ­ки: сначала исходная программа компилируется в промежуточный код, а затем этот результат компиляции выполняется с помощью интерпретатора данного промежуточного языка. Примером интерпретируемого языка может служить html (hypertext markup language) — язык описания гипертекста или языки java и javascript — сочетают в себе функции компиля­ции и интерпретации.


35из35