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

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

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



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

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

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

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

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

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

Ставрополь,2011

Содержание

1. Описание задания для курсового проекта

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

. Выбор метода решения

. Описание функций и переменных транслятора

5. Разработка алгоритма

. Кодирование алгоритма программы транслятора на языке Си++

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

Выводы

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

1. Описание задания для курсового проекта

Цель: спроектировать транслятор с языка Паскаль на язык Си, произвести отладку и документирование данного проекта.

Данная цель дает возможность использовать знания диiиплины "Программирование на языке высокого уровня".

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

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

По заданию на данный проект нужно: составить транслятор на языке Си для перевода программ с языка Паскаль в текст программы на языке Си.

Допустимые операторы в исходном тексте, типы переменных, определяются по вариантам.

должны быть приведены синтаксические диаграммы для данных операторов, в соответствии с которыми будет производиться анализ операторов исходного текста и их конвертирование (по согласованию с преподавателем синтаксис некоторых сложных операторов может быть упрощен);

должны быть описаны возможные и обязательные использования пробелов в исходном тексте;

исходные данные и результат хранятся в текстовых файлах, их имена должны запрашиваются транслятором;

если обнаружена синтаксическая ошибка оператора: в выходной файл вносится комментарий об ошибке;

обработка отдельных операторов описываются как подпрограммы;

оформить вывод комментарий из исходного файла в выходной;

ключевые слова операторов в программе на языке Си записываются только строчными буквами, а в программе на языке Паскаль они могут быть записаны и строчными и прописными;

в виде идентификаторов используются любые буквы;

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

Так же нужно учитывать, что при формировании текста можно не использовать правило отступа.

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

Название задачи

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

Данная задача актуальна из-за некоторых проблем, связанных с использованием разных языков программирования для написания программ, как например Delphi или Паскаль. Для людей знающих всего несколько языков, не включающих выше перечисленные, данная проблема будет стоять особенно остро. Язык Си и Си++ на наше время являются наиболее известными, поэтому именно этот язык мы используем для трансляции заданной программы. Кроме того, язык Си и Си++ так же наиболее эффективный и перевод программ именно на этот язык упрощает роботу с программой. Транслятор дает возможность обеспечить более дешевую разработку программы без затраты в дальнейшем на человеческие ресурсы.

Описание

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

Сама программа будет реализовывать транслирование по типу:

чтение из исходного файла - весь файл представляет собой одну большую символьную строку, с которой мы будем работать в дальнейшем;

проверка строки на ключевые слова, описанные как массив ключевых слов;

проверка на функции;

проверка на операторы;

проверка на комментарии;

вывод текста в выходной файл: число операторов в исходной программе, число операторов в полученной программе, число ошибочных операторов в полученной программе.

Адрес исходного и выходного файла вводятся пользователем с клавиатуры.

Входная информация

По заданному условию путь к исходным данным задает пользователь. Файл будет иметь формат текста (txt), однако разрешение файла указывать не обязательно.

Заданный адрес будет обрабатываться программой и при указании несуществующего файла - выдается сообщение об ошибке. Программа не продолжает работу.

("Имя исходного файла:");

scanf("%s",s);

где s- массив типа char.

Выходная информация

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

модуль #include - как статичный элемент разработки прогр