Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Асемблер для платформи Java

Реферат Асемблер для платформи Java





Зміст.

Зміст. 1

Зміст. 2

Введення. 3

Постановка завдання. 4

Формат файлу класу. 5

Структура файлу класу. 5

Типи елементів Constant_pool 6

Формат структури field_info. 7

Формат структури method_info. 7

Формат атрибуту Code. 8

Робота JVM .. 10

Система команд JVM. 12

Синтаксис мови асемблера для платформи Java (мови JASM). 14

Тестові приклади. 18

1. 18

2. 19

3. 20

Проектування і реалізація компілятора. 25

Висновок. 30

Використана література. 31


Введення.

Мова програмування Java був розроблений у середині 90-х років на основі мови Oak, призначався для програмування В«прошивокВ» для різних електронних пристроїв. Однак, на відміну від свого попередника, мова Java отримав широке поширення, насамперед як мова, що використовувався в програмуванні для мережі Інтернет. У Нині область застосування Java значно розширилася, і ця мова часто застосовується і в звичайному прикладному програмуванні. Це обумовлено такими перевагами як кроссплатформенность і безпека, які забезпечуються тим, що вихідний код на Java компілюється над безпосередньо в машинний код, а в, так званий, байт-код, який інтерпретується віртуальною машиною Java (JVM). У багатьох сучасних реалізаціях JVM байт-код перед виконанням перетвориться в машинні інструкції, що значно підвищує продуктивність, наближаючи її до продуктивності програм, написаних на C/C + +. Таким чином, Java, в сучасному стані цієї технології, поєднує переваги інтерпретованих і компільованих мов програмування.

Специфікація, описує JVM, як абстрактну обчислювальну машину, надано компанією Sun у відкритий доступ. Це дозволяє створювати як власні реалізації JVM для різних платформ, так та альтернативні компілятори, генеруючі байт-код Java, в тому числі для мов програмування, відмінних від Java. Більшість літератури, присвяченої Java, майже не приділяє уваги влаштуванню JVM і описує лише сам мову Java. Проте, у ряді випадків, знання особливостей архітектури буває досить корисним. У даній роботі я створив навчальну програму, яка може допомогти у вивченні архітектури JVM - нескладний асемблер для байт-коду Java.

В  Постановка завдання.

Потрібен вивчити архітектуру рівня команд платформи Java, формат файлу класу Java, і написати компілятор ассемблероподобного мови, що дозволяє створювати файли класів, коректно оброблювані реальної JVM. Даний компілятор повинен підтримувати всі команди байт-коду Java і найважливіші можливості JVM. <В  Формат файлу класу.

Основним форматом виконуваних файлів в архітектурі Java є формат файлу класу, описаний в The Java TM Virtual Machine Specification, виданої компанією Sun. Файл даного формату має ім'я, що збігається за ідентифікатором класу (за винятком вкладених класів) та розширення. class. br/> Структура файлу класу.

Файл класу має наступну структуру:

В 

ClassFile {

u4 magic;

u2 minor_version;

u2 major_version;

u2 constant_pool_count;

cp_info constant_pool [constant_pool_count-1];

u2 access_flags;

u2 this_class;

< i> u2 super_class;

u2 interfaces_count;

u2 interfaces [interfaces_count];

u2 fields_count;

field_info fields [fields_count];

u2 methods_count;

< i> method_info methods [methods_count];

u2 attributes_count;

attribute_info attributes [attributes_count];

}

(тут і далі u1, u2, u4 - цілі числа розміром 8, 16 і 32 біт з порядком байтів старший байт за молодшому адресою). Розглянемо послідовно всі поля.

В· magic - так зване магічне число, яке має в шістнадцятковій запису вид 0xCAFEBABE;

В· minor_version, major_version - версія формату файлу, по ній визначається сумісність даного файлу з конкретною версією JVM;

В· constant_pool_count - кількість елементів у Constant_pool плюс одиниця;

В· constant_pool - область констант - масив структур змінного розміру, що представляють ті або інші константні значення. Звернення в область констант виробляються за індексом (Індексація починається з одиниці; індекси, наступні за позиціями констант, представляють числа типів long і double, не використовуються). Формати констант різних видів будуть розглянуті нижче;

В· access_flags - комбінаці...


сторінка 1 з 14 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Java: Засоби побудови звітів для Java-додатків
  • Реферат на тему: Java - мова програмування
  • Реферат на тему: Основи мови програмування Java
  • Реферат на тему: Розробка програми побудови об'ємних гістограм за допомогою мови програм ...
  • Реферат на тему: Розробка програмної системи для Вивчення іноземних слів з використанн мови ...