книга DipMaster-Shop.RU
поиск
карта
почта
Главная На заказ Готовые работы Способы оплаты Партнерство Контакты F.A.Q. Поиск
Практическое освоение методов разработки приложений в среде визуального проектирования Borland Delphi 7.0 ( Курсовая работа, 36 стр. )
Принципы создания синтаксических и семантических анализаторов ( Курсовая работа, 52 стр. )
Проблемы развития третьего сектора в Иркутской области ( Дипломная работа, 82 стр. )
Проверка закона Гука на различных масштабах рассмотрения при квазистатическом растяжении твердого тела. ( Курсовая работа, 24 стр. )
ПРОВЕРКА СВОЙСТВА ТРАНЗИТИВНОСТИ ДЛЯ ОТНОШЕНИЙ, ЗАДАННЫХ В ОРИЕНТИРОВАННЫХ ГРАФАХ ( Курсовая работа, 21 стр. )
Программа Бест-4 ( Контрольная работа, 16 стр. )
Программа для птицеводов ( Контрольная работа, 16 стр. )
Программа нахождения оптимального пути перевозки при минимальных затратах ( Курсовая работа, 54 стр. )
Программа планирования предупредительных ремонтов электрообо-рудования ( Дипломная работа, 65 стр. )
Программа предназначена для проверки знаний студентов и учащихся с помощью популярных сейчас тестов «с выбором ответа» ( Контрольная работа, 14 стр. )
Программа составления кроссвордов ( Курсовая работа, 27 стр. )
Программирование ( Контрольная работа, 5 стр. )
Программирование ( Контрольная работа, 13 стр. )
Программирование ( Контрольная работа, 36 стр. )
Программирование (контрольная работа) ( Контрольная работа, 50 стр. )
ПРОГРАММИРОВАНИЕ В СРЕДЕ DELPHI (Белоруссия) ( Дипломная работа, 94 стр. )
Программирование и отдадка программ ( Контрольная работа, 18 стр. )
Программирование на языках высокого уровня0 ( Контрольная работа, 23 стр. )
Программная имитация живого "аквариума(озера)" ( Контрольная работа, 26 стр. )
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ АЛГОРИТМА ПРОСМОТРА И СОХРАНЕНИЯ РЕСУРСОВ ФАЙЛА ( Дипломная работа, 88 стр. )
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ АВТОМАТИЗИРОВАННОГО РАБОЧЕГО МЕСТА СТАРШЕГО СУДЕБНОГО ПРИСТАВА ( Дипломная работа, 110 стр. )
Программный комплекс многокритериальной оптимизации систем на основе мультихромосомных моделей и генетических алгоритмов ( Дипломная работа, 141 стр. )
Проект разработки программы на языка программировании XLisp ( Контрольная работа, 17 стр. )
Проект разработки программы на языка программировании XLisp ( Контрольная работа, 15 стр. )
Проект разработки программы на языка программировании Xlisp 2008-16 ( Контрольная работа, 16 стр. )

Содержание

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