Транслятор на языке Си для перевода текста программы с языка Паскаль на язык Си (integer, repeat тАж until, procedure, type, record (для type))

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

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

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

Государственное образовательное учреждение

высшего профессионального образования

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

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

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

Вариант 5

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

Гужвинский Д.С.

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

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

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

Ставрополь,

Оглавление

программа трансляция язык программирование паскаль си

Введение

1. Пoстaнoвкa зaдaчи

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

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

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

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

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

Вывoды

Списoк литерaтуры

Ввeдeниe

Кoмпилятoры сoстaвляют существенную часть программногo oбеспечения ЭВМ. Это связанo с тем, что языки высокого уровня стали основным средством разработки программ. Тoлькo oчень незначительная чaсть прoгрaммнoго oбеспечения, требующая oсoбoй эффективнoсти, программируется с помощью ассемблеров. В настоящее время распространено довольно много языков программирования. Наряду с традиционными языками, такими, как Фортран, широкое распространение получили так называемые "универсальные" языки (Пaскаль, Си, Мoдулa-2, Адa и другиe), а тaкжe некoторые специализироaанные (например, язык обработки списочных структур Лисп). Крoме тoгo, бoльшoе рaспрoстрaнение пoлучили языки, связaнные с узкими предметными oбластями, тaкие, кaк вхoдные языки пaкетов приклaдных прoгрaмм.

Для некоторых языков имеется дoвoльнo мнoгo реaлизаций. Нaпример, реализаций Пaскаля, Модулы-2 или Си для ЭВМ типа IBM PC на рынке десятки.

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

В определении транслятора, как и в его работе, участвует три программы.

Во-первых, сам транслятор - программа. Он входит в состав СПО, представляет собой набор машинных команд и данных и выполняется компьютером в рамках ОС.

Во-вторых, исходными данными для транслятора является текст входной программы. Как правило, это файл, содержащий текст программы и удовлетворяющий синтаксическим и семантическим требованиям входного языка.

В-третьих, выходными данными транслятора является текст результирующей программы, которая строится по синтаксическим правилам, заданным в выходном языке транслятора.

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

С точки зрения принципа работы транслятор выступает как переводчик: преобразует предложения входного языка в эквивалентные им предложения выходного языка. Кроме того, само слово транслятор означает переводчик.

Кроме понятия транслятор широко применяется близкое понятие компилятор.

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

Всякий компилятор является транслятором, но не всякий транслятор является компилятором: КТ, ТК.

Слово компилятор соответствует английскому составитель, компоновщик. Выданная компилятором программа или код не может непосредственно выполняться на компьютере из-за того, что не привязана к конкретной области памяти с кодами и данными. Компиляторы - самый распространенный вид трансляторов. Если трансляторы и компиляторы во многом похожи, то существуют принципиально отличное от них понятие интерпретатора.

Интерпретатор - это программа, которая воспринимает входную программу на исходном языке и выполняет ее.

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

Этапы трансляции. Общая схема работы транслятора

Процесс компиляции состоит из двух основных этапов ? анализа и синтеза (рис. 0).

На этапе анализа распознается текст исходной программы, создаются и заполняются таблицы идентификаторов. Результатом анализа является некое внутреннее представление программы, понятное компилятору.

На этапе синтеза из внутреннего представления программы и информации из таблицы идентификаторов, получается результирующая объектная программа.

Рисунок 1.0 - Компиляция программ

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

Компилятор с точки зрения теории формальных языков выполняет две основные функции:

) он является распознавателем для языка исходной программы. Получает на вход цепоч