Добавить в корзину Удалить из корзины Купить |
Компилятор высокоуровневого языка программирования в виртуальную машину Parrot ID работы - 743267 программирование (курсовая работа) количество страниц - 11 год сдачи - 2007 СОДЕРЖАНИЕ: СОДЕРЖАНИЕ АННОТАЦИЯ 3 1. ВВЕДЕНИЕ 3 1.1. Глоссарий 3 1.2. Описание предметной области 3 1.3. Неформальная постановка задачи 4 1.4. Обзор существующих методов решения 4 1.5. План работ 5 2. ТРЕБОВАНИЯ К ОКРУЖЕНИЮ 6 2.1. Требования к программному обеспечению 6 2.2. Требования к пользователям 6 3. СПЕЦИФИКАЦИЯ ДАННЫХ 6 3.1. Формат входных файлов 6 3.2. Формат выходных данных 6 4. ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ 6 5. ТРЕБОВАНИЯ К ИНТЕРФЕЙСУ 7 6. ПРОЕКТ 7 6.1. Средства реализации 7 6.2. Модули и алгоритмы 7 6.3. Структуры данных 8 6.3.1. Дерево разбора 8 6.3.2. Таблица символов 8 ЗАКЛЮЧЕНИЕ 9 СПИСОК ЛИТЕРАТУРЫ 9 ВВЕДЕНИЕ: АННОТАЦИЯ 3 1. ВВЕДЕНИЕ 3 1.1. Глоссарий 3 1.2. Описание предметной области 3 1.3. Неформальная постановка задачи 4 1.4. Обзор существующих методов решения 4 1.5. План работ 5 2. ТРЕБОВАНИЯ К ОКРУЖЕНИЮ 6 2.1. Требования к программному обеспечению 6 2.2. Требования к пользователям 6 3. СПЕЦИФИКАЦИЯ ДАННЫХ 6 3.1. Формат входных файлов 6 3.2. Формат выходных данных 6 4. ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ 6 5. ТРЕБОВАНИЯ К ИНТЕРФЕЙСУ 7 6. ПРОЕКТ 7 6.1. Средства реализации 7 6.2. Модули и алгоритмы 7 6.3. Структуры данных 8 6.3.1. Дерево разбора 8 6.3.2. Таблица символов 8 ЗАКЛЮЧЕНИЕ 9 СПИСОК ЛИТЕРАТУРЫ 9 Аннотация Данная работа посвящена изучению прототипно–ориентированых языков и виртуальной машины Parrot. В ходе работы разработаны новый язык программирования и его компилятор. Проект реализован на базе продуктов с открытыми исходными и также распространяется по подобной лицензии. 1. Введение 1.1. Глоссарий Parrot – виртуальная машина, разрабатываемая для обеспечения платформой компиляторы динамических языков программирования PASM – Parrot Assembler PIR – Parrot Intermediate Representation Прототипно-ориентированное программирование – стиль ООП, в котором повторное использование кода достигается путем клонирования уже существующих объектов. 1.2. Описание предметной области В настоящее время в программировании очень широко развита и используется парадигма ООП. В рамках данной парадигмы существуют две концепции написания программ: основанная на классах (например Smalltalk, Java, C++, C#, Ruby) и основанная на прототипах (Self, ECMAScript, JavaScript, Io, Perl с модулем Class::Prototyped). Первая из них получила широкое распространение и общую известность. Вторая же концепция не так популярна ввиду более низкой производительности. Несмотря на то что язык JavaScript очень распространен и его интерпретатор есть в любой операционной системе, включающей современный веб-браузер, приемы разработки на прототипно–ориентированых ЯП не получили широкого распространения. Например для языка JavaScript существует библиотека prototype.js, которая реализует в языке более привычную для большинства программистов концепцию классов. В свою очередь прототипно-ориентированные языки можно разделить на две группы: с делегированным и каскадным прототипированием. В первом случае объект–потомок хранит указатель на предка и среда выполнения способна во время исполнения программы следовать по цепочке таких указателей и находить в предках необходимые методы или поля объектов. При такой реализации объекты верхнего уровня могут развиваться и адаптироваться, передавая свои «знания» потомкам. При подобной реализации легко вносить изменения в систему, однако этот подход требует больших усилий на оптимизацию среды исполнения. Во втором случае при создании потомка в него полностью копируется все методы и атрибуты родителя. В качестве аналогии в природе можно привести «митоз» – деление клеток. Данный подход требователен к оперативной памяти, потому что при создании новых объектов происходит полное копирование потомков, однако полностью снимаются затраты на диспетчеризацию. Наиболее развитым технологически сложным на данный момент является компилятор языка Self, разработчики которого разработали и реализовали огромное количество оптимизаций и технологий Chambers K., Ungar D., Lee E. An Efficient Implementation of SELF, a Dynamically-Typed Object-Oriented Language Based on Prototypes [2], например: СПИСОК ЛИТЕРТУРЫ: Список литературы [1] Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции = The theory of parsing, translation and compiling / Под. ред. Курочкина В.М.; Перевод Агафонова В.Н. М.: Изд-во Мир, 1978 [2] Chambers K., Ungar D., Lee E. An Efficient Implementation of SELF, a Dynamically-Typed Object-Oriented Language Based on Prototypes [3] Spitz A., Ausch A., Ungar D. Self 4.3 Release Notes, June 22, 2006, http://research.sun.com/self/release_4.3/Self-4.3/Self-4.3-Release-Notes.pdf [4] Parrot Documentation, http://www.parrotcode.org/docs/ [5] Sugalski D. Parrot Notes, http://www.sidhe.org/~dan/blog/archives/cat_parrot_notes.html [6] Dekorte S. Io, The Programming Language, http://www.iolanguage.com/scm/git/Io/docs/guide.html Цена: 900.00руб. |
ЗАДАТЬ ВОПРОС
Copyright © 2009, Diplomnaja.ru