Транслятор для перевода текста программы с языка Паскаль на язык Си (integer, if Le then, записи (record)) - Программирование, компьютеры и кибернетика курсовая работа

Транслятор для перевода текста программы с языка Паскаль на язык Си (integer, if Le then, записи (record)) - Программирование, компьютеры и кибернетика курсовая работа




































Главная

Программирование, компьютеры и кибернетика
Транслятор для перевода текста программы с языка Паскаль на язык Си (integer, if Le then, записи (record))

Написание транслятора посредством языка Си, обрабатывающего конструкции integer, if Le then, записи (record), а также реализующего обработку new для выделения динамической памяти: разработка алгоритма реализации задачи, представление листинга программы.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Министерство образования и науки Российской Федерации Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования "Северо-кавказский государственный университет"
по дисциплине "Программирование на языке высокого уровня"
Рисунок 1.1 - Диаграмма арифметического выражения Ae3
Рисунок 1.2 - Диаграмма логического выражения Le1
vаr :; ,:; label ;
,; ;
{ комментарий 1 } (*комментарий 2*)
/*комментарий 1*/ /*комментарий 2*/
Приведем пример перевода программы с языка си на Паскаль
Таблица 1.2 - Вид программы на паскале и си
С точки зрения преобразования предложений входного языка в эквивалентные им предложения выходного языка транслятор выступает как переводчик.
Результатом работы транслятора будет результирующая программа, но только в том случае, если текст исходной программы является правильным - не содержит ошибок с точки зрения синтаксиса и семантики входного языка. Если исходная программа неправильная (содержит хотя бы одну ошибку), то результатом работы транслятора будет сообщение об ошибке.
В целом процесс компиляции состоит из двух основных этапов - анализа и синтеза. На этапе анализа выполняется распознавание текста исходной программы, создание и заполнение таблиц идентификаторов. Результатом его работы служит некое внутреннее представление программы, понятное транслятору. На этапе синтеза на основании внутреннего представления программы и информации, содержащейся в таблице идентификаторов, порождается текст результирующей программы. Результатом этого этапа является код на языке Си.
Важная функция компилятора состоит в том, чтобы записывать имена
переменных в исходной программе и накапливать информацию о разных атрибутах каждого имени. Эти атрибуты могут предоставлять информацию о выделенной памяти для данного имени, его типе, области видимости (где именно в программе может использоваться его значение) и, в случае имен процедур, такие сведения, как количество и типы их аргументов, метод передачи каждого аргумента (например, по значению или по ссылке), а также возвращаемый тип. Таблица символов представляет собой структуру данных, содержащую записи для каждого имени переменной, с полями для атрибутов имени. Структура данных должна быть разработана таким образом, чтобы позволять компилятору быстро находить запись для каждого имени, а также быстро сохранять данные в записи и получать их из нее.
Фазы связаны с логической организацией компилятора. При реализации работа разных фаз может быть сгруппирована в проходы (pass), которые считывают входной файл и записывают выходной. Например, фазы анализа -- лексический анализ, синтаксический анализ, семантический анализ и генерация промежуточного кода -- могут быть объединены в один проход. Оптимизация кода может представлять собой необязательный проход. Затем может быть еще один проход, заключающийся в генерации кода для конкретной целевой машины. Некоторые наборы компиляторов созданы вокруг тщательно разработанного промежуточного представления, которое позволяет начальной стадии для некоторого языка программирования взаимодействовать с заключительной стадией для определенной целевой машины. При наличии таких наборов можно создавать компиляторы для различных исходных языков и одной целевой машины, комбинируя различные начальные стадии с заключительной стадией для этой целевой машины. Аналогично можно разрабатывать компиляторы для различных целевых машин, комбинируя начальную стадию с заключительными стадиями для различных целевых машин.
Разработчики компиляторов, как и разработчики любого другого
программного обеспечения, могут с успехом использовать современные среды разработки программного обеспечения, содержащие такие инструменты, как редакторы языков, отладчики, средства контроля версий, профайлеры, средства тестирования и т.п. В дополнение к этим средствам общего назначения может использоваться ряд более специализированных инструментов, созданных для помощи в реализации различных фаз компилятора. в Качестве среды разработки мы будем использовать Visual Studio.
Структура программы и описание функций и операторов
trnslt - главная транислирующая программа
fcomm - подпрограмма проверяющая текст на наличие комментариев
frecord - подпрограмма обрабатывающая записи
fif - подпрограмма обрабатывающая структуру if then else
asign - подпрограмма обрабатывающая знаки присваивания
errors1 - подпрограмма обрабатывающая ошибки
lexAnalyser - подпрограмма реализующая лексический анализ
copy_w - подпрограмма копирующая строки из входного буфера в выходной
begin - подпрограмма обрабатывающая тело раздела
new - подпрограмма обрабатывающая выделение памяти под структуры в динамической памяти
fvar - подпрограмма обрабатывающая блок операторов после ключевого слова var
Таблица 4.1 - Таблица с ключевыми словами
Таблица 4.2 - Таблица с типами переменных
Таблица 4.3 - Таблица с типами слов
При этом, входным файлом является файл с программой, написанной на языке программирования Паскаль 3.pas.
Выходным же файлом является файл с текстом программы на языке Си 3.с.
А также на выходе работы программы мы получаем выходные значения количества операторов входного и выходного файла и наличие ошибки. Это можно наблюдать в главе 6, следующей за листингом программы.
· В., Е. (2006). c++ builder сборник рецептов. Москва: Кудиц-Образ.
· Эккель, Б. (2007). Философия C++. Санк-Петербург: Питер.
· Якушев, Д. (2006). Философия программирования на C++. Москва: Бук-пресс.
Написaние прoграммы, выполняющей трансляцию с языка программирования Пaскaль нa язык прoгрaммирoвaния Си и транслирующей конструкции, такие кaк integer, repeat … until Le, procedure, type, record для type. Обработка арифметических и логических выражений. курсовая работа [314,3 K], добавлен 03.07.2011
Создание приложения, исполняющего трансляцию программы из языка Паскаль в язык Си: разработка алгоритма реализации задачи, описание необходимых констант, переменных, функций и операторов, представление листинга программы и распечатка результатов. курсовая работа [305,9 K], добавлен 03.07.2011
Создание транслятора, обрабатывающего код программы на языке Паскаль и за счет эквивалентных операторов генерирующего программу на Си. Особенности внешней спецификации и работы лексического анализатора. Структура программы, вывод результатов на экран. курсовая работа [254,0 K], добавлен 02.07.2011
Методика разработки и частичная реализация транслятора для языка "С" с использованием языка "С++", производящего разбиение на минимальные неделимые конструкции языка исходной цепочки символов основываясь на лексике языка. Анализ работы программы. курсовая работа [841,3 K], добавлен 19.03.2012
Выбор метода проектирования транслятора с языка Паскаль на язык Си, разработка и кодирование алгоритма программы. Использование допустимых операторов в исходном тексте, определение типов переменных и синтаксиса логических и арифметических выражений. курсовая работа [1,0 M], добавлен 03.07.2011
Последовательность работ при разработке объектно-ориентированных программ. Виды синтаксических анализаторов и способы их применения. Описание алгоритма и анализ результативности работы программы, написанной на языке С, ее константы, переменные и функции. курсовая работа [441,7 K], добавлен 03.07.2011
Составление транслятора на языке С для перевода кода программы из языка Pascal в код программы на языке Cи. Распознавание и перевод конструкций: for, type, function, integer. Вешняя спецификация, описание, структура, текст программы; распечатка текстов. курсовая работа [287,8 K], добавлен 24.06.2011
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Транслятор для перевода текста программы с языка Паскаль на язык Си (integer, if Le then, записи (record)) курсовая работа. Программирование, компьютеры и кибернетика.
Никомахова Этика Эссе
Сочинение Осень На Белорусском Языке
Курсовая работа по теме Маркетинг-микс территорий в мировой и отечественной практике деятельности органов государственной и местной власти
Курсовая Работа На Тему Педагогическая Поддержка Детей, Находящихся В Трудной Жизненной Ситуации
Курсовая работа по теме Сучасні методи організації управління у світовій готельній індустрії
Реферат: Ультразвуковой металлоискатель
Реферат: История России в народной памяти
Эссе На Тему Особенности Современного Общества
Курсовая работа по теме Система стимулирования труда по целям и результатам 'РОСТ'
Развитие Скоростных Качеств В 15 Лет Реферат
Реферат: Финансовое обеспечение воспроизводственного процесса
Реферат Социальная Профилактики
Дипломная работа по теме Организация учета и контроля на предприятиях жилищно-коммунального хозяйства
Эмоции И Чувства Реферат По Психологии
Доклад по теме Искусство Древнего Египта. Среднее царство
Петербург В Произведениях Гоголя Сочинение
Эссе Начало Личности
Реферат по теме Корпоративный договор в ООО
Ответ на вопрос по теме Заболевания периферических вен
Реферат по теме Социальные проблемы молодежи в современном обществе
Создание компьютерной сети учебного класса школы на основе кабеля "витая пара" - Программирование, компьютеры и кибернетика дипломная работа
Протоколы и методы реализации VPN сетей - Программирование, компьютеры и кибернетика реферат
Погашення судимості - Государство и право курсовая работа


Report Page