Транслятор для перевода программ с языка Паскаль в текст программы на языке Си
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
"Северо-Кавказский государственный технический университет"
КУРСОВОЙ ПРОЕКТ
по ди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. Внешняя спецификация программы
Итак, необходимо написать транслятор текстов программы Паскаля в текст программы на языке С. В начале нужно при помощи текстого редактора создать текст программы на языке Паскаль, имеющего соответствующий тип. При запуске созданного транслятора нам выводится зарос на ввод имени входного текстового файла:"Входной файл:" . В случае ошибки при открытии файла мы получим предупреждение: "Извините файл с таким именем не существует, либо заблокирован".
Выходной файл транслируется из открытого нами файла, имя которого также вводится на запрос программы: "Выходной файл:". Также как и при открытии файла, в случае некорректного ввода имени файла, на экран будет выведено сообщение: "Ошибка ввода!". С помощью этого мы получим возможность многократного ввода, избежим возможного нанесения вреда данным и потери обработанной информации. После ввода имени выходного файла транслятор создаст текстовый файл на внешнем носителе, в котором будет содержаться результат трансляции входного файла. Основной результат работы программы будет храниться в выходном файле в виде текста программы, пригодного для компиляции, а также выводится на экран.
Также на экран будет выведена статистика о количестве всех оператор в исход