книга DipMaster-Shop.RU
поиск
карта
почта
Главная На заказ Готовые работы Способы оплаты Партнерство Контакты F.A.Q. Поиск
Анализ систем разработки структурированных учебных курсов ( Курсовая работа, 6 стр. )
АНАЛИТИЧЕСКОЕ РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ( Дипломная работа, 77 стр. )
АРМ ОПЕРАТОРА ИНТЕРНЕТ-ПРОВАЙДЕРА ( Курсовая работа, 38 стр. )
База данных и веб-интерфейс к библиотеке ИМиКН ( Курсовая работа, 13 стр. )
База данных рецензий на фильмы для мобильных устройств ( Курсовая работа, 29 стр. )
Библиотека геометрических операций для ГИС ( Курсовая работа, 11 стр. )
Библиотека для распределённых пошаговых игр Подсистема обеспечения процесса распределённой обработки данных. ( Курсовая работа, 30 стр. )
Библиотека для распределённых пошаговых игр Проектирование и реализация имитационной модели игрового мира. ( Курсовая работа, 18 стр. )
Библиотека классов C++ для разработки оконных приложений ( Курсовая работа, 16 стр. )
БИБЛИОТЕКИ ДЛЯ PHP НА ОСНОВЕ АРХИТЕКТУРЫ AJAX ( Курсовая работа, 26 стр. )
БИЛЛИНГОВАЯ СИСТЕМА ПО ВЫДЕЛЕННЫМ И VPN- КЛИЕНТАМ С АВТОРИЗАЦИЕЙ НА СЕРВЕРЕ ДОСТУПА TACACS+ ( Дипломная работа, 80 стр. )
БИРЖА НАУКОЕМКИХ ТЕХНОЛОГИЙ В ИНТЕРНЕТ ВЕРСИЯ 1.0 ( Курсовая работа, 22 стр. )
Блок-схемы ( Контрольная работа, 14 стр. )
Блок-схемы 2005-14 ( Контрольная работа, 14 стр. )
Брокер Объектных Запросов ( Дипломная работа, 138 стр. )
Ввод-вывод программы Open-Close в языках Quick Basic и Visual Basic, описание синтаксиса и применение ( Контрольная работа, 9 стр. )
Вейвлетные Алгоритмы сжатия изображений ( Курсовая работа, 12 стр. )
Визуализация в играх преследования со многими участниками ( Курсовая работа, 12 стр. )
Визуализация медицинских данных ( Курсовая работа, 12 стр. )
Визуализация разрезов трехмерных полей, заданных непрерывными функциями ( Курсовая работа, 17 стр. )
Визуализация семейств эллиптических функций в пространстве ( Курсовая работа, 15 стр. )
Визуализация тестовых наборов данных для гео-метрических алгоритмов ( Курсовая работа, 14 стр. )
ВИЗУАЛЬНЫЙ КОНСТРУКТОР ОТЧЕТОВ НА ОСНОВЕ ВЕБ-ИНТЕРФЕЙСА ( Курсовая работа, 37 стр. )
ВЫЧИСЛЕНИЕ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ (Белоруссия) ( Контрольная работа, 11 стр. )
Генератор альбома карт в среде ПО ArcGIS Desktop. ( Курсовая работа, 13 стр. )

Содержание

СОДЕРЖАНИЕ 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

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

2000-2024 © Copyright «DipMaster-Shop.ru»