книга DipMaster-Shop.RU
поиск
карта
почта
Главная На заказ Готовые работы Способы оплаты Партнерство Контакты F.A.Q. Поиск
Написать программу на языке VBA ( Контрольная работа, 16 стр. )
Написать программу на языке VBA ( Курсовая работа, 15 стр. )
Написать программу на языке VBA 2010-15 ( Контрольная работа, 15 стр. )
Написать программу на языке VBA (Склад готовой продукции цеха) ( Реферат, 15 стр. )
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран ( Контрольная работа, 18 стр. )
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран ( Контрольная работа, 16 стр. )
Написать программу на языке VBA, которая вводит исходные данные,выполняет расчеты и выводит на экран ( Контрольная работа, 17 стр. )
Написать программу, которая должна “озвучивать” клавиатуру ( Контрольная работа, 10 стр. )
Написать элементарную базу данных, основанную на списках. С возможностями ( Курсовая работа, 26 стр. )
Настройка протокола IGMP в локальной сети ( Контрольная работа, 14 стр. )
Нахождение вершин в графе, имеющих наибольшее окружение ( Курсовая работа, 18 стр. )
Нахождение кратчайших путей алгоритмом Флойда ( Курсовая работа, 48 стр. )
НАХОЖДЕНИЕ МИНИМУМА ФУНКЦИИ Z(X,Y) В ЗАДАННОЙ ОБЛАСТИ ( Контрольная работа, 24 стр. )
Необходимо написать программу, реализующую параллельную работу нескольких процессов ( Контрольная работа, 21 стр. )
ОБЗОР CASE-СРЕДСТВ ( Контрольная работа, 21 стр. )
Обзор систем управления контентом ( Курсовая работа, 14 стр. )
Обзор средств разработки ( Отчет по практике, 61 стр. )
Обоснование разработки и разработка проекта автоматизации складского учета ООО «Юнион Двери» ( Дипломная работа, 111 стр. )
Обоснование создания библиотечного сайта ( Курсовая работа, 40 стр. )
Обработка данных, созданных во внешних источниках Microsoft Office, в приложениях на языке Visual Basic ( Контрольная работа, 12 стр. )
Обработка сообщений таймера ( Контрольная работа, 4 стр. )
Обучающая программа по теме: Запись алгоритмов на языке блок-схем ( Курсовая работа, 11 стр. )
Объектно-оринтированное программирование ( Контрольная работа, 14 стр. )
Окна сообщений и меню ( Контрольная работа, 4 стр. )
ОНЛАЙНОВАЯ ВЕРСИЯ M:TG ( Курсовая работа, 29 стр. )

Содержание

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