Транслятор для перевода программ с языка Паскаль в текст программы на языке Си

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

"Северо-Кавказский государственный технический университет"

КУРСОВОЙ ПРОЕКТ

по диiиплине "Программирование на языке высокого уровня"

Исполнитель:

Студент Даюнов Сергей

Группа АСОУ-091

Руководитель:

Братченко Н.Ю.

Ставрополь

Оглавление

Введение

1. Задание на курсовой проект

2. Внешняя спецификация программы

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

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

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

6. Распечатка тестов и результатов

Выводы

Список литературы

Введение

Язык программирования - формализованный язык, предназначенный для описания программ и алгоритмов решения задач на ЭВМ. Языки программирования являются искусственными; в них синтаксис и семантика строго определены, поэтому они не допускают свободного толкования выражения, что характерно для естественного языка. Языки программирования разделяются на две основные категории: языки высокого уровня и языки низкого уровня.

Появление языков программирования было связано с осознанием того факта, что перевод алгоритма, написанного на "почти" естественном языке, на машинный язык может быть автоматизирован и, следовательно, возложен на плечи машины.

Язык программирования высокого уровня - язык программирования, разработанный для быстроты и удобства использования программистом.

Основная черта языков программирования высокого уровня - это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.

Так, языки программирования высокого уровня стремятся не только облегчить решение сложных программных задач, но и упростить портирование программного обеспечения.

Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием, в то время как их исходный код остаётся, в идеале, неизменным.

Язык программирования Си отличается минимализмом. Компиляторы Си разрабатываются сравнительно легко благодаря относительно низкому уровню языка и скромному набору элементов.

1.Задание на курсовой проект

трансляция паскаль алгоритм листинг программа

Нам необходимо написать конвертор на языке Си для перевода программ на языке Паскаль в текст программы на языке Си. Языки, операторы в исходном тексте, синтаксис арифметических и логических выражений определяются в соответствии с номером варианта.

Необходимо описать возможное и обязательное использование пробелов в исходном тексте. Все использованные операторы должны быть описаны, а также приведены синтаксические диаграммы. Исходные данные и результат хранятся в текстовых файлах, имена которых должны запрашиваться транслятором. В случае обнаружения ошибки исходного текста транслятор должен занести в выходной текст комментарий об этой синтаксической ошибке. Алгоритмы обработки отдельных операторов должны быть оформлены в виде подпрограмм.

В одной строке исходного текста может быть несколько операторов или только часть одного оператора. При формировании выходного текста можно не учитывать правило отступа.

Индивидуальное задание:

Языки, допустимые операторы в исходном тексте, синтаксис арифметических и логических выражений в соответствии с вариантом задания (табл.1):

Табл.1. Вариант задания

№ вар-таМини-транслятор Паскаль - Си (вид Аe, Le и номера операторов )арифм. выраж.логич. выраж.типоператоры7Ae1 (рис.1)Le1 (рис.2)booleanwhile Le doфайлыassign, rewrite, write

Рис.1. Логическое выражение ae1

Рис.2. Логическое выражение le1

2. Внешняя спецификация программы

Итак, необходимо написать транслятор текстов программы Паскаля в текст программы на языке С. В начале нужно при помощи текстого редактора создать текст программы на языке Паскаль, имеющего соответствующий тип. При запуске созданного транслятора нам выводится зарос на ввод имени входного текстового файла:"Входной файл:" . В случае ошибки при открытии файла мы получим предупреждение: "Извините файл с таким именем не существует, либо заблокирован".

Выходной файл транслируется из открытого нами файла, имя которого также вводится на запрос программы: "Выходной файл:". Также как и при открытии файла, в случае некорректного ввода имени файла, на экран будет выведено сообщение: "Ошибка ввода!". С помощью этого мы получим возможность многократного ввода, избежим возможного нанесения вреда данным и потери обработанной информации. После ввода имени выходного файла транслятор создаст текстовый файл на внешнем носителе, в котором будет содержаться результат трансляции входного файла. Основной результат работы программы будет храниться в выходном файле в виде текста программы, пригодного для компиляции, а также выводится на экран.

Также на экран будет выведена статистика о количестве всех оператор в исход