» Главная  » Программирование  » JST Компилятор Smalltalk JVM

Содержание

СОДЕРЖАНИЕ 2

АННОТАЦИЯ 3

1. ВВЕДЕНИЕ 3

1.1. ГЛОССАРИЙ 3

1.2. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ 3

1.3. НЕФОРМАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ 4

1.4. ОБЗОР СУЩЕСТВУЮЩИХ МЕТОДОВ РЕШЕНИЯ 4

1.5. ПЛАН РАБОТЫ 5

2. ТРЕБОВАНИЯ К ОКРУЖЕНИЮ 5

2.1. ТРЕБОВАНИЯ К АППАРАТНОМУ ОБЕСПЕЧЕНИЮ 5

2.2. ТРЕБОВАНИЯ К ПРОГРАММНОМУ ОБЕСПЕЧЕНИЮ 5

3. СПЕЦИФИКАЦИЯ ДАННЫХ 5

3.1. ФОРМАТ ФАЙЛОВ С ТЕКСТОМ ПРОГРАММЫ 6

Описание формата JST 6

Описание формата Squeak 6

3.2. ФОРМАТ ФАЙЛА, ОПИСЫВАЮЩЕГО ОПЕРАЦИИ ВИРТУАЛЬНОЙ МАШИНЫ SMALLTALK 7

3.3. ПРОТОКОЛ ВЗАИМОДЕЙСТВИЯ JAVA И SMALLTALK 7

4. ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ 8

5. ТРЕБОВАНИЯ К ИНТЕРФЕЙСУ 8

6. ПРОЕКТ 8

6.1. СРЕДСТВА РЕАЛИЗАЦИИ 8

6.2. МОДУЛИ И АЛГОРИТМЫ. 9

Подсистема лексический анализатор 9

Подсистема синтаксический анализатор 10

Подсистема генератор кода 13

Подсистема, эмулирующая виртуальную машину Smalltalk 15

Подсистема, реализующая базовые классы и функциональные возможности 16

6.3. ПРОЕКТ ИНТЕРФЕЙСА 18

7. РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ: 19

ЗАКЛЮЧЕНИЕ 21

СПИСОК ЛИТЕРАТУРЫ 21

ПРИЛОЖЕНИЕ 1. СТРУКТУРА КАТАЛОГОВ 22

ПРИЛОЖЕНИЕ 2. ЗАМЕНА СИМВОЛОВ В НАЗВАНИИ МЕТОДОВ 23

ПРИЛОЖЕНИЕ 3. ИСПОЛЬЗОВАНИЕ СКОМПИЛИРОВАННЫХ JAVA КЛАССОВ 23

Аннотация

Создать возможность писать на языке Smalltalk небольшие приложения, которые затем будут распространяться через Интернет, поэтому необходимо добиться уменьшения объема написанных приложений. Создать возможность использование Smalltalk для написания ди¬намических страниц (для написания Java апплетов). Для этого разрабатывается компилятор, переводящий программу, написанную на языке Smalltalk, в программу на языке JVM.

1. Введение

1.1. Глоссарий

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

1.2. Описание предметной области

За более чем 25-летнюю историю Smalltalk, начавшуюся в исследовательском центре фирмы Xerox ,появилось множество его коммерческих реализаций. Smalltalk оказался неза¬менимым инструментом как средство быстрого макетирования, средство разработки больших программных систем.

Однако, несмотря на довольно широкое использование Smalltalk в некоторых сферах, большинство пользователей никогда не использовали программ, написанных на Smalltalk. У большинства пользователей на компьютерах стоят виртуальные машины Java, а о виртуаль¬ных машинах Smalltalk даже знают немногие. Проблема усугубляется тем, что виртуальные машины различных реализаций несовместимы. Это не мешает использовать Smalltalk на крупных предприятиях, но не позволяет писать на нём небольшие приложения, которые затем будут распространяться через Интер¬нет. Для того чтобы это было возможно, необходимо, чтобы пользователь загрузил виртуальные машины основных реализаций Smalltalk (по 20 - 30 мегабайт каждая).

Существует 2 подхода для решения этой задачи:

Написание небольшой в объеме виртуальной машины Smalltalk, которая будет транс¬лировать байт коды основных Smalltalk машин в байт код Java машины.

Преимущества этого подхода:

1. Возможность использовать некоторые готовые среды разработки.

Недостатки этого подхода:

1. Очень низкая производительность.

2. Большой объем программы, получаемой на выходе.

3. Отсутствует возможность Web программирования

Написание компилятора Smalltalk в JVM.

Преимущества компиляции кода в байт код виртуальной машины Java:

1. Небольшой объем выходной программы.

2. Использование кода, написанного на Java.

3. Использование широко распространенных виртуальных машин Java, взамен редко используемых Smalltalk машин.

4. Возможность реализации примитивов Smalltalk на высокоуровневом языке Java, a не на ассемблере некоторой виртуальной машины.

Недостатки этого подхода:

1. Отсутствие готовых сред разработки. Немаловажной частью процесса разработки является использование среды Smalltalk. Однако адаптировать среду для исполь¬зования компилятора в Java код (например, Squeak) несложно. Ещё одним выходом является написание плагина для Eclipse.

Сферой применения программной системы является написание небольших приложе¬ний, которые затем будут распространяться через Интернет, поэтому необходимо добиться уменьшения объема выходной программы. Так же предполагается использование данной

системы для разработки динамических страниц. Учитывая это, второй подход становиться более предпочтительным.

1.3. Неформальная постановка задачи

Цель курсовой - разработать компилятор, переводящий программу, написанную на языке Smalltalk в байт код виртуальной машины Java, удовлетворяющий следующим требо¬ваниям:

1. Каждому классу на входе должен соответствовать 1 файл с расширением class на вы¬ходе.

2. Байт-код, получаемый на выходе, должен соответствовать спецификации Sun JVM (т.е. не использовать расширений).

3. Smalltalk код должен вызываться везде, где может вызываться Java код.

4. Java классы должны иметь возможность наследоваться от Smalltalk классов.

5. Должна быть возможность писать Java апплеты на Smalltalk.

6. Компилятор должен распространяться бесплатно.

7. Должны существовать версии компилятора для большинства операционных систем.

8. Небольшой объем программы, скомпилированной с помощью JST.

1.4. Обзор существующих методов решения

Приводиться таблица, где приводиться сравнение нескольких наиболее распространен¬ных реализаций Smalltalk.

Таблица 1 Сравнение характеристик реализаций Smalltalk

VisualWorks VisualAge Dolphin Squeak St/JVM JST

Цена >5000$ >6000$ >450$ Бесплатная система >300$ Бесплатная система

Объем вы¬ходной программы Большой Большой Средний Большой Небольшой Небольшой

Производи¬тельность выходной программы Очень высокая Высокая Средняя Средняя Высокая Высокая

Среда раз¬работки + + + + - -

Распростра¬нение вир¬туальной машины Низкое Низкое Низкое Среднее Высокое Высокое

Мульти-платфор-менность + + - + + +

Развитая библиотека классов + + + + + +

Локализация - - + + + +

• VisualWorks, Visual Age - профессиональные среды разработки с очень быстрыми виртуальными машинами. Удобные средства разработки, большие библиотеки клас¬сов позволяют быстро разрабатывать приложения любого уровня сложности. Однако программы, написанные на этих системах, имеют большой объем. Виртуальные ма¬шины не распространены и также имеют большой объем. Это делает непригодным использование этих реализаций для написания небольших приложений, с распростра¬нением их через Интернет, а очень высокая цена делает невозможным использование их небольшими компаниями и частными лицами.

• Dolphin Smalltalk. Реализация Smalltalk только для операционной системы Windows. Уже поэтому эта реализация не подходит для решения поставленной задачи. Виртуальная машина Dolphin Smalltalk не распространена и обладает невысокой производительностью. Эта реализация также не является бесплатной.

Список литературы

1. Cincom VisualWorks Documentation

http://www.cincomsmalltalk.com/CincomSmalltalkWiki/VW+Documentation

2. Visual Age Smalltalk Documentation

http://www-306.ibm.com/sofrware/awdtools/smalltalk/library/

3. ObjectArts Dolphin Documentation http://www.object-arts.com/docs/index.html

4. Squeak Documentation http://www.squeak.org/Documentation/

5. Mission Software Smalltalk/JVM http://www.missionsoft.com/stjvm.htm

6. Alan Kay Software Design, the Future of Programming and the Art of Learning http://www.educause.edu/ir/library/htrnl/erm/erm99/erm99027.html

7. James Jianbo Huang Jamaica: The Java Virtual Machine (JVM) Macro Assembler http://www.judoscript.com/articles/jamaica.html

8. Tim Lindholm, Frank Yellin The Java Virtual Machine Specification Second Edition http://iava.sunxom/docs/books/vrnspec/2nd-edition/html/VMSpecTOCdoc.html

Примечаний нет.

" Программная поддержка принятия решений оператору с использованием нейронных сетей" ( Курсовая работа, 54 стр. )
"Автоматизированный лабораторный практикум "Разработка приложений для работы с базой данных в Visual Studio"" ( Отчет по практике, 29 стр. )
"Нелинейная цифровая фильтрация" ( Курсовая работа, 40 стр. )
"Основы теории управления"* ( Контрольная работа, 13 стр. )
"Программа для разархивации файла, созданного по алгоритму RLE" ( Контрольная работа, 11 стр. )
"Спроектировать базу данных для домашней библиотеки или фонотеки" ( Курсовая работа, 25 стр. )
"Технология "Millipede". Разработка модели форматирования в системе FAT 32." ( Контрольная работа, 10 стр. )
AJAX – интерфейс для системы CATS ( Курсовая работа, 13 стр. )
CMS для компании «КАРЛЭНД Сервис» ( Отчет по практике, 26 стр. )
JST Компилятор Smalltalk JVM ( Курсовая работа, 24 стр. )
Microsoft Excel ( Контрольная работа, 28 стр. )
PaketForm. Система обработки заявок на открытие счетов в ОАО АКБ «Росбанк». ( Отчет по практике, 29 стр. )
program z5 ( Контрольная работа, 11 стр. )
Web-рейтинг “Active Student” ( Курсовая работа, 13 стр. )
АВТОМАТИЗАЦИЯ ПРОЦЕССА ЮНИТ-ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЯ «ПОЧТОВЫЙ КЛИЕНТ»: APPLICATION LAYER ( Курсовая работа, 22 стр. )
Автоматизация процесса создания выходной документации для ОАО “Черногорский Завод Искусственных Кож ( Дипломная работа, 182 стр. )
АВТОМАТИЗАЦИЯ ПРОЦЕССА ЮНИТ-ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЯ «ПОЧТОВЫЙ КЛИЕНТ»: APPLICATION LAYER 2007-23 ( Курсовая работа, 23 стр. )
Автоматизированная система управления ОПтК ( Курсовая работа, 43 стр. )
Автоматизированная система оперативно-диспетчерского управления (АСОДУ) патентно-правового бюро «Эксперт» ( Дипломная работа, 116 стр. )
Автоматизированное рабочее место «СЕССИЯ» ( Курсовая работа, 41 стр. )
Автоматическое обновление метаданных на основе версий DDL ( Курсовая работа, 14 стр. )
Адаптивный алгоритм взаимодействия игровых объектов на основе классического алгоритма взаимодействия игровых объектов игр типа "змейка". ( Дипломная работа, 118 стр. )
Алгоритмизация и программирование процессов обработки данных ( Контрольная работа, 9 стр. )
Алгоритмические языки и теория програмирования ( Курсовая работа, 41 стр. )
Алгоритмические языки высокого уровня. Структура формального алгоритмического языка ( Контрольная работа, 14 стр. )


                                          /  8 (495) 971-76-12  /  info@refport.ru  /     ¤