Добавить в корзину Удалить из корзины Купить |
JST Компилятор Smalltalk JVM ID работы - 743895 программирование (курсовая работа) количество страниц - 24 год сдачи - 2006 СОДЕРЖАНИЕ: Содержание СОДЕРЖАНИЕ 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 Цена: 900.00руб. |
ЗАДАТЬ ВОПРОС
Copyright © 2009, Diplomnaja.ru