Разработка транслятора на языке Си - Курсовая работа

бесплатно 0
4.5 64
Изучение устройства и механизма процессов в компиляторах и интерпретаторах. Понятие трансляции как процедуры перевода программного кода с языка Паскаль на язык С . Описание интерфейса программы и автоматизация процесса построения диаграммы классов.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
На сегодняшний день, Windows является безусловно лидирующей операционной системой на рынке персональных компьютеров.Такой перевод программы с языка программирования на язык машинных кодов называется трансляцией, а выполняется она специальными программами - трансляторами. Также как и ассемблер, компилятор обеспечивает преобразование программы с одного языка на другой (чаще всего, в язык конкретного компьютера). Существуют языки, в которых одна команда исходного языка транслируется в 7-10 машинных команд. Однако есть и такие языки, в которых каждой команде может соответствовать 100 и более машинных команд. Процесс трансляции с таких языков обычно называется компиляцией, а исходные языки обычно относятся к языкам программирования высокого уровня (или высокоуровневым языкам).В данном курсовом проекте требуется написать транслятор на языке С , который будет выполнять перевод программный код на языке Паскаль в программный код на языке С . По условию задания, требуется, чтобы транслятор переводил следующие операторы: - integer А так же обрабатывал арифметическое (см. рисунок 1) и логическое выражение (см. рисунок 2). Программа должна так же обрабатывать комментарии и операции присваивания, а при встрече незнакомых конструкций выдавать сообщение об ошибке. Оператор var var "name": "type"; "name", "name": "type"; "name": array[1..n] of "type"; "type" "name", "name"; "type" "name"; "type" "name"[n];Программа представляет собой исполняющий файл p2c.exe. При запуске программы открывается окно, изображенное на рисунке 3. Для работы программы необходимо, что бы в папке с исполняющим файлом находился текстовый документ с именем "CODEPAS.txt", содержащий исходный код на языке программирования Паскаль. В случае отсутствия соответствующего файла, программа при запске выдаст сообщение об ошибке (см. рисунок 4).Семантика языков программирования изменяется в очень широких пределах. Они отличаются не только по особенностям реализации отдельных операций, но и по парадигмам программирования, определяющим принципиальные различия в методах разработки программ. Большинство языков работают в основном со скалярами, предоставляя для обработки массивов процедуры и функции, написанные программистами. Наряду с традиционным процедурным программированием, называемым также императивным, существуют такие парадигмы как функциональное программирование, логическое программирование и объектно-ориентированное программирование. Эта общность определяет и схожие для всех языков принципы организации трансляторов.Назначение подпрограмм: FREAD - данная подпрограмма производит построчное считывание информации из текстового файла. FWRITE - подпрограмма производит выгрузку обработанного текста в файл, а также вывод результата транслирования на экран. FMAIN - производит поиск и замену операторных скобок, а также вставляет функцию "void main()". FCOMMENT - производит поиск и замену комментариев, в соответствии с синтаксисом языка программирования С . fvar - данная подпрограмма производит поиск и обработку объявления переменных типа integer, а также объявления массивов. CSTRING CODEC[n] - Строковый массив, который содержит результат транслирования исходного кода на языке Паскаль в исходный код на языке С .DECLARE_MESSAGE_MAP() public: void FREAD(UINT NID, CSTRING* String); void fvar(CSTRING* String); void FWHILE(CSTRING* String); Outputfile.WRITESTRING(String[i] "

");//Записываем строку в файл, добавляя

в конец. i ; {int nach=-1,kon=-1;//Переменные, в которых будет храниться порядковый номер определенных комбинаций символов. nach=String->Find("{");//Присваиваем переменной номер искомого символа, если символ присутствует в строке, //то значение будет больше нуля. if (nach>=0)//Если символ присутствуетЧтобы протестировать корректную работу программы в случае появления внештатных ситуаций, попробуем для файла, в который будет производиться запись, поставить атрибут "Только чтение". При попытки трансляции исходного кода и записи его в файл появляется окно с сообщением об ошибке, изображенное на рисунке 6. При открытии приложения появится сообщение об ошибке чтения файла, изображенное на рисунке 7.В ходе выполнения курсового проекта был написан несложный однопроходный транслятор.

План
Оглавление

Введение

1. Теоретическая часть

2. Постановка задачи

3. Внешняя спецификация

4. Описание алгоритма

5. Структура программы и описание функций и операторов

6. Листинг программы

7. Описание тестовых прогонов

Заключение

Список используемой литературы

Введение
На сегодняшний день, Windows является безусловно лидирующей операционной системой на рынке персональных компьютеров. Поэтому успех современного программиста напрямую зависит от его умения разрабатывать качественные и эффективные приложения Windows. Приложения постоянно усложняются и требуют все большего времени для их создания. Для облегчения программирования Windows-приложений фирмой Microsoft была разработана библиотека MFC (Microsoft Foundation Classes - Базовые Классы Microsoft), которая впервые была представлена на рынке в 1992 г вместе с компилятором Microsoft C/C 7.0. Сейчас она представляет собой мощный набор классов C , которые позволяют программировать приложения на достаточно высоком уровне абстракции, и вместе с тем открывают для опытных программистов легкий доступ к функциям более низкого уровня, что позволяет писать эффективные приложения и полностью использовать все возможности операционной системы.

Вывод
В ходе выполнения курсового проекта был написан несложный однопроходный транслятор. Понятие трансляции относится не только к языкам программирования, но и к другим компьютерным языкам , вроде языков разметки , аналогичных HTML , и к естественным языкам, вроде английского или русского . Основываясь на полученных в ходе выполнения курсовой работы знаниях, можно лучше понять устройство и механизмы процессов в компиляторах и интерпретаторах. Для реализации курсового проекта не случайно выбрана среда программирования Visual Studio 2008 и пакет библиотек MFC. С их помощью удалось многократно уменьшить объем написанного программного кода, при этом не потерям в функциональности и стабильности.

Список литературы
1. Prentiss Knowlton (2009). Murach"s C 2008. Вильямс.

2. B. M. Harwani (2004). Thinking in C 2nd Edition. Вильямс.

3. D. Grune, C. H. (2008). C For Beginners. Chichester: Ellis Horwood

4. Б. Керниган, Д. Р. (2009). Си, Язык программирования. Вильямс.

Размещено на .ru

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?