Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Расширить язык и транслятор С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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!