Объектно-ориентированное программирование Карпов В.Э. Смолток. Лекция 4. Байт-код.

Презентация:



Advertisements
Похожие презентации
ПРЕЗЕНТАЦИЯ НА ТЕМУ: ПРЕЗЕНТАЦИЯ НА ТЕМУ: ВИДЫ ТРАНСЛЯЦИИ Составил: Ревнивцев М.В Преподаватель: Кленина В.И.
Advertisements

Этапы решения задач на компьютере 1. Постановка задачи. 2. Построение математической модели. 3. Составление алгоритма. 4. Запись алгоритма на языке программирования(кодирование)
Сравнительный анализ языков программирования Автор Родионов Михаил.
Теория компиляторов-2. Л.11 Теория компиляторов Часть II Лекция 1.
ВЫПОЛНЕНИЕ АЛГОРИТМОВ КОМПЬЮТЕРОМ. Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой. Программа данные, предназначенные.
1 Влияние машинной архитектуры Структура и принципы работы компьютера На разрабатываемый язык программирования машинная архитектура влияет двояко: –непосредственно.
RISC-архитектуры ( Reduced Instruction Set Computer)
Программа Виды программ Языки программирования. ПК – это электронный прибор, предназначенный для автоматизации создания, хранения, обработки и передачи.
Архитектура операционных систем. Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей.
Лекция 7 Управление памятью Сегментная, страничная и сегментно- страничная организация памяти.
Язык высокого уровня компилятор Программа компиляторов Сделал:Студент группы:Ис-2о(очная)Воротов Валентин.
Архитектура операционной системы. Ядро и вспомогательные модули операционной системы При функциональной декомпозиции ОС модули разделяются на две группы:
Троицкий Д.И. Интернет-технологии1 ДИНАМИЧЕСКИЕ WEB-СТРАНИЦЫ СЕРВЕРНЫЕ СЦЕНАРИИ Лекция 9 Кафедра «Автоматизированные станочные системы» Dept. of Automated.
Работу выполнили ученики 21 гимназии 10 А класса.
Платформа Java. Компиляция Динамическая компиляция Just-in-time (оперативная) компиляция Динамическая компиляция HotSpot Непрерывная перекомпиляция.
Цель урока: Дать основные понятия о языках программирования. План : 1. Основные сведения о языках программирования. 2. Основные средства языков. Алфавит.
Учитель информатики Кюкяйской СОШ,Сунтарского улуса, Республики Саха Федоров Александр Михайлович,2010 год.
Архитектура операционных систем Семестр 2, Лекция 1.
Введение в теорию компиляции Основные принципы построения трансляторов.
Гипертекст Гипертекст Гипертекст – это способ организации текстовой информации, внутри которой установлены смысловые связи между ее различными фрагментами.
Транксрипт:

Объектно-ориентированное программирование Карпов В.Э. Смолток. Лекция 4. Байт-код

2 Байт-код (byte-code) - это машинно- независимый код низкого уровня. Байт-код занимает промежуточное положение между результирующим объектным (исполняемым) кодом и интерпретируемой программой. Для выполнения инструкций байт-кода требуется наличие специальной программы – интерпретатора, называемого также виртуальной машиной.

3 Байт-код Переносимость.Один и тот же байт-код может исполняться на разных платформах и архитектурах. Эффективность. Поскольку байт-код обычно менее абстрактный, более компактный и более приближен к машинному уровню, чем исходный код, эффективность байт-кода обычно выше, чем чистая интерпретация исходного кода. Многие интерпретируемые языки на самом деле транслируют исходный текст в байт-код и далее запускают интерпретатор байт-кода (Perl, PHP, Ruby и Python). Программы на Java обычно передаются на целевую машину в виде байт-кода, который перед исполнением транслируется в машинный код «на лету».

4 Простота и переносимость Основное преимущество байт-кода - легкая переносимость. Большая часть работы по обработке исходного текста программы выполняется транслятором, создающим байт-код, то на ВМ приходится лишь интерпретация этого «почти машинного» кода. Фактически – это разбиение на отдельные этапы трансляции и интерпретации.

5 Б-К – язык-посредник 4 языка: 12 словарей. Если есть язык-посредник, то 8 словарей. Если N языков, то без посредника надо иметь N*(N-1) словарей (почти N 2 ), а с посредником – N*2.

6 Простота Б-К Простота байт-кода позволяет реализовывать его интерпретаторы на уровне микропрограммного обеспечения процессоров. Благодаря этому существуют специальные Java-, Forth- и проч. машины (процессоры). Большинство инструкций байт-кода эквивалентны одной или нескольким машинным командам (командам ассемблера). Название «байт-код» определено тем, что длина каждого кода операции один байт. Более того, в байт-коде имеется тенденция реализовывать все команды по возможности в одном байте (при высокой частоте выполнения команд), что позволяет создавать компактный объектный код. Разумеется, вся команда может занимать более одного байта (код операции от 0 до 255, за которым следуют такие параметры, как регистры или адреса памяти).

7 История Б-К Концепция аппаратно-независимого исполняемого кода появилась еще в начале 1970-х годов. Разработки Н.Вирта по созданию виртуальной машины для языка Паскаль, а также Л.Петера Дойча в связи с созданием Лисп-машины. Тогда речь шла больше не о программной переносимости, а об идее персонального компьютера как специализированной машины с аппаратно реализованным языком высокого уровня. Виртуальная машина. Байт-код. В байт-коде имеется тенденция реализовывать все команды по возможности в одном байте (при высокой частоте выполнения команд), что позволяет создавать компактный объектный код.

8 Байт-код и спецпроцессоры Возможно создание процессоров, для которых данный байт-код является непосредственно машинным кодом (пример - процессоры для Java и Forth). p-код (p-code). Похож на байт-код, но физически может быть менее лаконичным и сильно варьироваться по длине инструкции. Он работает на очень высоком уровне, например «напечатать строку» или «очистить экран». P-код используется в СУБД и некоторых реализациях BASIC и Паскаля.

9 Ядро Смолток и примитивы Язык реализации системы и входной язык программирования - Смолток. На нем написана вся машинно- независимая часть, составляющая около 85% всей системы (виртуальный образ). Машинно-зависимая (виртуальная машина) часть реализована на низком уровне, в т.ч. и микропрограммно. При переносе системы на другую машину эта часть переписывается полностью Виртуальный образ - откомпилированный образ написанной на Смолтоке части системы. Это встроенный набор классов и методов (за исключением примитивных методов). 256 примитивов

10 Виртуальная Смолток-машина Компилятор переводит программу с языка Смолток в промежуточный код стековой виртуальной машины (байт-код) Скомпилированные методы в виде байт-кодов интерпретируются ВМ. ВМ состоит из трех частей: интерпретатора, набора примитивных методов и системы управления памятью объектов.

11 Функции виртуальной машины Функция интерпретации. Интерпретатор считывает команды языка (байт-код) и выполняет их. Управление объектами. Блок управления объектами создает необходимые объекты и передает их интерпретатору, а ставшие ненужными объекты собирает и использует для дальнейшей работы. Система базовых операций. В нее входят операции ввода-вывода, управления процессами и другие базовые операции. В системе также регистрируются в качестве элементарных методов (primitive method - примитивы) те операции, которые нельзя реализовать на самом Смолтоке (или их реализация неэффективна) и которые реализуются в виде программ вне системы Смолток-80.

12 Контекст метода При посылке сообщения создается объект, называемый контекстом метода. В него входит следующая информация: 1.контекст вызова; 2.адрес команды; 3.указатель стека; 4.обрабатывающая процедура метода (объекты с байт-программами); 5.получатель; 6.аргументы; 7.временные переменные; 8.стек. Эта информация необходима для выполнения метода.

13 Примеры групп команд виртуальной Смолток-машины

14 Примеры групп команд. Продолжение