Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Задания. Расширить язык и транслятор С0, реализовав в них следующие возможности



Расширить язык и транслятор С0, реализовав в них следующие возможности.

1) Запись числа в восьмеричной системе счисления, начиная с цифры ноль, например: 027 = 2*8 + 7 = 23.

2) Запись числа в шестнадцатеричной системе счисления, начиная с 0x или 0X, например: 0x4C = 4*16 + 12 = 76.

3) Запись служебных слов как малыми, так и большими буквами.

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

5) Использование поразрядных операций: конъюнкции &, дизъюнкции | и отрицания ~, как в языке C.

6) Использование логических операций: конъюнкции &&, дизъюнкции || и отрицания!, как в языке C.

7) Выдача текстовых сообщений об ошибках вместо числовых.

8) Использование оператора цикла с предусловием, как в языке C:

do оператор while (выражение);

9) Использование условного оператора, как в языке C:

if (выражение) оператор [ else оператор ]

10) Использование оператора цикла for, как в языке C:

for (выражение; выражение; выражение) оператор

Указание: удобно расположить объектные коды выражений в том порядке, как они записаны в операторе for, а необходимый порядок их выполнения обеспечить за счет меток и команд перехода, как делается при трансляции операторов if и while.

11) Использование оператора переключателя, как в языке C:

switch (выражение)

{ [ case число: [ оператор ] ]

default: [ оператор ]

}

12) Описание локальных переменных в начале составного оператора - блока, как в языке C.

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

13) Символьные константы вида: '*' = 42, 'A' = 65 и т. д.

14) Комментарии вида: /* [ символ ] ... */, как в языке С.

15) Строчные комментарии, как в языке С++, вида:

//[ символ ] ... конец-строки

16) Задание начальных значений в определении глобальных переменных, например: int a=5, b, x=-78;

Контрольные вопросы и упражнения

1. Какие подпрограммы компилятора С0 потребуется изменить для реализации возможности задавать имена входного и выходного файла?

2. Какие подпрограммы компилятора С0 потребуется изменить для выдачи тестовых сообщений об ошибках вместо номеров ошибок?

3. Какие подпрограммы компилятора потребуется изменить для трансляции комментариев, если они появятся в языке С0?

4. Какие подпрограммы компилятора потребуется изменить для трансляции символьных констант, если они появятся в языке С0?

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

6. Какие подпрограммы компилятора потребуется изменить для трансляции операторов do-while, если они появятся в языке С0?

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

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





Дата публикования: 2015-03-29; Прочитано: 242 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...