- •Физические основы построения эвм
- •Оглавление
- •Дидактический план
- •Литература Базовая
- •Дополнительная
- •Перечень умений
- •Тематический обзор
- •1. Классификация эвм
- •1.1. Развитие электронной базы, влияющее на усовершенствование эвм. Поколения эвм
- •1.2. История развития пк
- •2. Области применения эвм
- •2.1. Применение эвм в научных исследованиях
- •2.2. Применение эвм в медицине
- •2.3. Применение эвм в образовании
- •2.4. Применение эвм в других областях
- •2.5. Основные характеристики эвм
- •3. Составляющие эвм
- •3.1. Модели процессоров и их характеристики
- •3.1.1. Основные понятия
- •3.1.2. Развитие моделей процессоров и их характеристик
- •3.2. Характеристики материнских плат
- •3.2.1. Параметры, определяемые чипсетом
- •3.2.3. Интерфейсы
- •3.3. Типы оперативной памяти
- •3.4. Характеристики мониторов
- •3.4.1. Мониторы на базе электронно-лучевой трубки
- •3.4.2. Жидкокристаллические дисплеи
- •3.4.3. Плазменные мониторы
- •3.5. Параметры видеокарт
- •3.5.1. Графическая плата
- •3.5.2. Видеошины
- •3.5.3. Видеопамять
- •3.5.4. Акселераторы и видеопроцессоры
- •3.5.5. Технология agp
- •3.6. Основные характеристики жестких дисков
- •3.6.1. Устройство накопителей на жестких дисках
- •3.6.2. Краткая характеристика интерфейсов жестких дисков
- •3.6.3. Характеристики накопителей на жестких дисках
- •3.7. Компакт-диски
- •3.7.1. Организация данных и основные характеристики cd-rom
- •3.7.2. Типы интерфейсов
- •3.7.3. Стандарты записи данных на cd
- •3.7.4. Накопители dvd
- •4. Введение в архитектуру эвм
- •4.1. Risc и cisc архитектуры
- •4.2. Система команд эвм общего назначения
- •4.2.1. Методы адресации
- •4.2.2. Типы команд
- •4.2.3. Типы и размеры операндов
- •5. Многоуровневая схема программирования
- •5.1. Машинный уровень и микропрограммный уровень
- •5.2. Ассемблерный уровень
- •5.3. Проблемно-ориентированный язык
- •5.4. Операционная система
- •5.5. Использование трансляторов и интерпретаторов на разных уровнях
- •Тренинг умений
5.5. Использование трансляторов и интерпретаторов на разных уровнях
Исходный код программы – код, написанный на языке программирования.
Объектный модуль – код программы после трансляции, преобразованный в машинные коды.
Трансляция – получение объектного кода из исходного.
При программировании на языке высокого уровня обычно реализуется одна из процедур.
1. Сначала с помощью программы-редактора создается текстовый файл, представляющий собой исходную программу на языке высокого уровня. После этого вызывается программа-компилятор, которая преобразует исходную программу в файл машинного кода, т.е. образуется еще один файл. При выполнении программы действует файл машинного кода.
2. Программист вводит текстовый файл в память машины и вызывает программу-интерпретатор, которая преобразует каждый оператор программы в машинный код и сразу выполняет его. Отдельный файл машинного кода не создается. Следовательно, при каждом выполнении программы она преобразуется в машинный код. Реализация интерпретируемой программы длится гораздо дольше, чем компилированной, так как формирование машинного кода производится при каждом выполнении программы.
Компилятор – программа, обеспечивающая перевод с языка высокого уровня на машинный без одновременного выполнения получаемой программы.
Интерпретатор – программа, обеспечивающая перевод с языка высокого уровня на машинный с одновременным выполнением операторов программы.
Компилятор и интерпретатор обычно являются довольно сложными программами, которые воспринимают программу на исходном языке в форме текста, устанавливают внутреннюю структуру заданной программы, проверяя при этом ее синтаксическую корректность (синтаксический анализ), и переводят программу на другой (объектный) язык или выполняют эту программу путем соответствующих действий.
При синтаксическом анализе исходная программа проверяется на грамматическую корректность, и из исходной программы строится ее древовидное внутреннее представление. Это дерево проверяется на соблюдение ряда дополнительных правил, называемых контекстными условиями, и снабжается при этом атрибутами.
Компилятор в ходе семантической обработки из атрибутированного дерева (обычно за несколько промежуточных шагов и снова с применением техники атрибутирования) строит объектную программу. Структура части компилятора для семантического анализа исходя из синтаксического дерева представлена на рис. 5.1.
Рис. 5.1. Фазовая модель для компиляции
Фаза оптимизации при этом может быть опущена.
Структура части интерпретатора для семантической обработки исходной программы представлена на рис. 5.2.
Компилятор и интерпретатор могут быть структурированы и совсем иначе, чем это описано выше, из-за того, что отдельные фазы синтаксического анализа и, соответственно, компиляции и интерпретации могут быть объединены. Компиляция и интерпретация могут также комбинироваться: если, например, программа компилируется на промежуточный язык, а полученная программа далее интерпретируется.
Корректность компиляторов и интерпретаторов имеет фундаментальное значение: для верифицированной, корректной программы, которая переводится неверифицированным, некорректным компилятором или выполняется некорректным интерпретатором, ее надежность, достигнутая при верификации, снова теряется.
В трансляторах, создаваемых для практического использования, существенное место занимают диагностика ошибок и их анализ. Специальная методика позволяет исправлять простые синтаксические ошибки и при обнаружении ошибки не прекращать процесс синтаксического анализа, а продолжать обработку остальных частей программы. Большие программы целесообразно не компилировать целиком, а независимо друг от друга переводить как отдельные составные части (раздельная трансляция). Оттранслированные части (объекты связывания, объекты монтажа) с помощью специальной программы (компоновщик) объединяются в единую выполняемую программу.
Рис. 5.2. Фазовая модель для интерпретации
Эффективность программы, порожденной компилятором, зависит от эффективности исходной программы и качества кода, сгенерированного компилятором. Код, непосредственно порождаемый компилятором, в силу ряда обстоятельств не очень эффективен. Это, в частности, имеет место, когда исходный и объектный языки существенно отличаются друг от друга. Это может также быть следствием некачественного составления исходной программы. На практике эффективность порождаемой программы может быть улучшена непосредственно в процессе компиляции с помощью специальной фазы оптимизации.
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
1. Составьте логическую схему базы знаний по теме.
2. Приведите примеры применения ЭВМ в различных областях.
а) В научных исследованиях:
б) В медицине:
в) В образовании:
г) В различных организациях:
д) На производстве:
3. Напишите формулу для вычисления эффективного адреса.
4. Нарисуйте фазовую модель для компиляции.
5. Нарисуйте фазовую модель для интерпретации.
6. Напишите формулу для определения объема жесткого диска.
7. Объясните, что обозначает i80486DX-50.
