УЗНАЙ ЦЕНУ

(pdf, doc, docx, rtf, zip, rar, bmp, jpeg) не более 4-х файлов (макс. размер 15 Мб)


↑ вверх
Тема/ВариантДоработка компилятора Free Pascal: Case of string
ПредметПрограммирование
Тип работыкурсовая работа
Объем работы10
Дата поступления12.12.2012
890 ₽

Содержание

Содержание Аннотация 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/
Уточнение информации

+7 913 789-74-90
info@zauchka.ru
группа вконтакте