Скачиваний:
12
Добавлен:
20.05.2014
Размер:
551.42 Кб
Скачать
  1. Задание на курсовую работу

Написать конвертор на языке C (Си) для перевода программ на языке Pascal (Паскаль) в текст программы на языке C. Языки, а также допустимые операторы в исходном тексте, синтаксис арифметических и логических выражений определяются в соответствии с номером варианта. Для всех допустимых операторов в задании на курсовую работу должны быть приведены синтаксические диаграммы, в соответствии с которыми будет производиться анализ операторов исходного текста и их конвертирование (по согласованию с преподавателем синтаксис некоторых сложных операторов может быть упрощен). Необходимо описать возможное и обязательное использование пробелов в исходном тексте.

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

Алгоритмы обработки отдельных операторов и других элементов исходного языка (константа, переменная, выражение) должны быть оформлены в виде подпрограмм.

Комментарии предусмотреть во всех вариантах. Комментарий не может располагаться внутри оператора. Для ключевых слов операторов в программе на языке C используются только строчные буквы, а в программе на языке Pascal‑ строчные и прописные. В идентификаторах возможны любые буквы‑ они конвертируются без изменений. Между отдельными лексемами может быть любое количество пробелов (точнее, пробельных символов‑ пробелов, табуляций и переводов строки). В одной строке исходного текста может быть несколько операторов или только часть одного оператора.

При формировании выходного текста можно не учитывать правило отступа.

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

    1. Дано

Атрибут

Комментарий

fname1

Имя файла, содержащего исходный текст программы на языке Pascal.

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

    1. Требуется

Атрибут

Комментарий

fname2

Имя выходного файла, содержащего конвертированный текст программы на языке C.

koper1

Число операторов в исходной программе (сообщение, выдаваемое программой конвертирования)

koper2

Число операторов в полученной программе (сообщение, выдаваемое программой конвертирования)

ker

Число ошибочных операторов в полученной программе (сообщение, выдаваемое программой конвертирования)

Примечание: Длина строки входного файла не более 80 символов. Имена файлов fname1, fname2 должны удовлетворять требованиям системного программного обеспечения ЭВМ.

    1. Связь (примеры конвертирования)

В таблице представлены примеры преобразования синтаксиса исходного текста на языке Pascal в эквивалентный текст на языке C.

п/п

Синтаксис оператора на языке Паскаль

Результат конвертирования на языке Си

1.

Оператор присваивания

v1 := ae1;

v1 = ae1;

2.

Оператор repeat..until:

repeat

оператор [оператор] ...

until le1;

do {

оператор [оператор] ...

}while(!le1);

3.

оператор if:

ifle1then

оператор

[ else

оператор ];

if (le1)

{оператор}

else

{оператор}

4.

операторные скобки begin

...

end

{

...

}

Если операторные скобки begin ... end определяют тело программы (если это первый begin в программе), то открывающая фигурная скобка вставляется после оператора void main (void), а закрывающая - в конец текста (при наличии точки после end).

5.

programMax;

voidmain(void)

Соседние файлы в папке v29