www.webmoney.ru

Добавить в корзину Удалить из корзины Купить

Доработка компилятора Free Pascal: Case of string


ID работы - 743927
программирование (курсовая работа)
количество страниц - 10
год сдачи - 2009



СОДЕРЖАНИЕ:



Содержание
Аннотация 3
1. Введение 3
1.1 Глоссарий 3
1.2 Описание предметной области 3
1.3 Неформальная постановка задачи 4
1.4 Обзор существующих методов решения 4
2. Требования к окружению 5
2.1 Требования к аппаратному обеспечению 5
3. Архитектура системы 6
4. Спецификация данных 7
5. Функциональные требования 7
6. Проект 7
6.1 Средства реализации 7
6.2 Модули и алгоритмы 7
6.2.1 Модули уровня синтаксического анализа 7
6.2.2 Модули уровня генерации кода 8
7. Реализация и тестирование 8
7.2 Тестирование 8
Заключение 9
Список литературы 10
Источники информации по языкам программирования 10
Источники информации по разработке расширения 10
Прочие источники 10




ВВЕДЕНИЕ:



Аннотация
Работа представляет собой внедрение в существующий компилятор языка Паскаль расширения инструмента для работы с данными перечислимых типов, призванного сделать возможным его применение и для данных строковых типов.

1. Введение
Глоссарий
Синтаксическое дерево – иерархическая упорядоченная структура, состоящая из узлов, хранящих информацию об объектах, используемых в программе.
Парсер – часть компилятора, обеспечивающая создание синтаксического дерева.
Генератор кода – часть компилятора, обеспечивающая создание ассемблерного кода исходной программы по ее синтаксическому дереву.
Case-структура – синтаксический объект, хранящий информацию о блоках инструкций, выполняемых в зависимости от конкретных значений рассматриваемой переменной.
Case-label – часть case-структуры, содержащая конкретное значение (или конкретные значения, если она задана в виде диапазона) рассматриваемой переменной.
GNU GPL – GNU General Public License – лицензия на свободное программное обеспечение, созданная в рамках проекта GNU в 1988г. Более подробную информацию можно найти по следующим ссылкам: [21], [22]
Open-source проект – программный продукт, распространяемый с предоставлением возможности его произвольной модификации.

Описание предметной области
Курсовая работа является частью международного проекта Free Pascal Compiler (далее FPC) – компилятора языка Паскаль [23], являющегося open-source проектом и находящегося под действием GNU GPL. Задача компилятора состоит в переводе программы, написанной на каком-либо языке программирования, на другой язык, например, машинный. Процесс перевода можно условно разделить на два этапа:
• Построение синтаксического дерева
• Генерация кода
Процесс построения парсером синтаксического дерева осуществляется по принципу «от большего к меньшему» – каждый узел представляет собой дерево, листья которого – атомарные узлы – содержат информацию о лексемах исходного кода. Таким образом, возникает необходимость в создании объектов, которые хранили бы информацию о какой-либо синтаксической конструкции исходного кода, например, цикле или условном блоке, и механизмов, которые позволяли бы эту информацию получать.
Одной из конструкций является case-структура. В разных языках программирования ее синтаксис различен, но схематично его можно представить следующим образом:
Если _выражение_ является:
_первым_выражением_, то выполнить _некоторый_блок_инструкций_.
_вторым_выражением_, то выполнить _некоторый_блок_инструкций_.

Иначе выполнить _некоторый_блок_инструкций_.

При этом в случае совпадения _выражения_ с каким-либо из перечисленных в зависимости от средств языка программирования может быть задано выполнение нижележащих блоков инструкций (case fall-through).




СПИСОК ЛИТЕРТУРЫ:



Список литературы Источники информации по языкам программирования [1] Общие сведения - http://en.wikipedia.org/wiki/Switch_statement [2] PHP - http://www.w3schools.com/PHP/php_switch.asp [3] Ada - http://www.adaic.org/whyada/intro4.html [4] Ada - http://www.adaic.org/docs/95style/html/sec_10/10-5-3.html [5] Ada - http://faculty.cs.wwu.edu/reedyc/CS141_Spring_2005/Lectures/CS141_Scalar_Case.html [6] Basic - http://www.cerritos.edu/jwilson/cis_186/Language_Resources/VB_Select_Case_Statement.pdf [7] SQL - http://www.4guysfromrolla.com/webtech/102704-1.shtml [8] KSM-Scheme - http://square.umin.ac.jp/hchang/ksm/ref/ksm_13.html [9] Modula-3 - http://graphics.cs.columbia.edu/modula3/tutorial/www/m3_32.html [10] Lisp - http://www.n-a-n-o.com/lisp/cmucl-tutorials/LISP-tutorial-17.html [11] Perl 6 - http://perl.active-venture.com/lib/Switch.html [12] Lua - http://lua-users.org/wiki/SwitchStatement [13] Ruby - http://www.ruby-doc.org/core/classes/String.html [14] Java - http://www.npksv.ru/soft/java/glava9.php Источники информации по разработке расширения [15] Способы разработки - http://www.lazarus.freepascal.org/pipermail/lazarus/2009-March/023369.html [16] Способы разработки - http://www.lazarus.freepascal.org/pipermail/lazarus/2009-March/023370.html [17] Дискуссии по разработке - http://lists.freepascal.org/lists/fpc-devel/2009-May/016751.html [18] Дискуссии по разработке - http://lists.freepascal.org/lists/fpc-devel/2009-May/016752.html [19] Дискуссии по разработке - http://lists.freepascal.org/lists/fpc-devel/2009-May/016753.html [20] Дискуссии по разработке - http://lists.freepascal.org/lists/fpc-devel/2009-April/016692.html Прочие источники [21] GNU GPL - http://www.gnu.org/copyleft/gpl.html [22] GNU GPL, Wikipedia - http://ru.wikipedia.org/wiki/GPL [23] FPC homepage - http://freepascal.org/
Цена: 750.00руб.

ДОБАВИТЬ В КОРЗИНУ

УДАЛИТЬ ИЗ КОРЗИНЫ

КУПИТЬ СРАЗУ


ЗАДАТЬ ВОПРОС

Будьте внимательны! Все поля обязательны для заполнения!

Контактное лицо :
*
email :
*
Введите проверочный код:
*
Текст вопроса:
*



Будьте внимательны! Все поля обязательны для заполнения!

Copyright © 2009, Diplomnaja.ru