Не нашли нужный чертёж? Тогда просто закажите его у нас!
К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анные (например, язык обработки списочных структур Лисп).
110 1

Транслятор на языке Си для перевода текста программы с языка Паскаль на язык Си (integer, repeat … until, procedure, type, record (для type)) - диплом по программному обеспечению, программированию

550.00 RUB

715.00 RUB

К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анные (например, язык обработки списочных структур Лисп).

Если у вас есть промокод, то воспользуйтесь им.
На указанный E-mail будет отправлен архив с работой.

Работа будет доступна для скачивания после оплаты. Произвести оплату можно картами VISA и MasterCard.

Кр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).

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

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

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

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

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

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

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

Лексический анализ. Эту часть компилятора выполняет сканер, который читает литеры программы (символы) на исходном языке и строит из них слова (лексемы) исходного языка. На входе сканера (лексического анализатора) текст исходной программы, выходная информация передается для дальнейшей обработки на этап синтаксического разбора.

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

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

Подготовка к генерации кода − на этой фазе компилятор выполняет предварительные действия, непосредственно связанные с синтезом текста результирующей программы: идентификация элементов языка, распределение памяти и т.п. Эта подготовка ещё не ведёт к порождению текста на выходном языке.

Генерация кода − это фаза, на которой непосредственно порождаются команды, составляющие предложения выходного языка и текст результирующей программы в целом. Фаза генерации кода основная на этапе синтеза результирующей программы. Кроме этого, генерация обычно включает в себя и оптимизацию. Оптимизация − это процесс, связанный с обработкой уже порожденного текста и оказывающий существенное влияние на качество и эффективность результирующей программы.

Таблицы идентификаторов

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

Понятие прохода. Многопроходные и однопроходные компиляторы

Порядок выполнения фаз компиляции может меняться в разных вариантах компиляторов. В одних компиляторах просмотр текста исходной программы сопровождается выполнением всех фаз компиляции и получением результата − объектного кода. В других − над исходным текстом выполняются только некоторые фазы компиляции, и получается не конечный результат, а набор некоторых промежуточных данных, которые снова подвергаются обработке. Причем несколько раз. Реальные компиляторы транслируют текст исходной программы за несколько проходов. Проход − это процесс последовательного чтения компилятором данных из внешней памяти, их обработки и записи результата во внешнюю память. Чаще всего один проход включает в себя выполнение одной или нескольких фаз компиляции. В качестве внешней памяти могут выступать любые носители информации − ОП, накопители на магнитных дисках, лентах и т.д. При выполнении каждого прохода компилятору доступна информация, полученная в результате всех предыдущих проходов. Но, как правило, в первую очередь используется информация, полученная на проходе, непосредственно предшествующему текущему. Информация, получаемая компилятором при выполнении проходов, недоступна пользователю. Человек, компилирующий свою программу, видит только исходный текст программы и результирующую объектную программу. Очевидно, что цель разработчиков компиляторов − максимально сократить количество проходов. Это необходимо для увеличения скорости работы компилятора и уменьшения объема необходимой ему памяти. Идеал − однопроходный компилятор, получающий на вход исходную программу и сразу же генерирующий результирующую объектную программу.

work3.rtf
3.04 Мб

Школьные предметы


Отражение агрессии с Запада. Невская битва 1240 г. и Ледовое побоище 1242 г. ВОПРОСЫ: 1. Общий ход Невской битвы 1240 года. 2. Ледовое побоище и его историческое значение.
242 6
550.00 RUB
715.00 RUB
Отражение агрессии с Запада. Невская битва 1240 г. и Ле...
Никто, разумеется, не предполагал, что из пытливого мальчугана, увлекшегося в послевоенном детстве игрой, больше похожей на забаву, нежели на серьезное занятие, получится классный футболист и выдающийся тренер современности. .
114 4
550.00 RUB
715.00 RUB
Доклад: Лобановский Валерий Васильевич
Курсовой работе по инженерной компьютерной графике
170 5
550.00 RUB
715.00 RUB
Ролик Натяжной
Реферат по биологии
106 3
550.00 RUB
715.00 RUB
Серый варан
Реферат по литературе
180 1
550.00 RUB
715.00 RUB
Александр Дюма
Дипломный проект по микробиологии
задачи.
1)	Оценить влияние микробиологических препаратов на выживаемость и развитие пятнистой оранжерейной тли;
2)	Оценить влияние П-56-1 и S-100кр. на выживаемость хищной галлицы Aphidoletes aphidimyza Rond. на разных стадиях развития.
71 1
550.00 RUB
715.00 RUB
Оценка влияния микробиологических препаратов на тлей и...