Шрифт:
3. Зачем нам понадобилась символьная константа с именем
4. Мы разбили функцию
5. Зачем вообще разделять код на несколько функций? Сформулируйте принципы.
6. Зачем нужны комментарии и как они должны быть организованы?
7. Что делает оператор
8. Как используются символические константы?
9. Почему важна организация кода?
10. Как мы реализовали оператор
11. Что и как делает функция
12. Реализация “ключевого слова”
13. Сформулируйте правило, определяющее, что является именем в калькуляторе и что нет?
14. Чем хороша идея о постепенной разработке программ?
15. Когда следует начинать тестирование?
16. Когда следует проводить повторное тестирование?
17. Как вы принимаете решение о том, какие функции следует сделать отдельными?
18. Как вы выбираете имена для переменных и функций? Обоснуйте свой выбор.
19. Зачем нужны комментарии?
20. Что следует писать в комментариях, а что нет?
21. Когда следует считать программу законченной?
Термины
Упражнения
1. Предусмотрите использование символа подчеркивания в именах внутри программы–калькулятора.
2. Реализуйте оператор присваивания
3. Реализуйте именованные константы, которые действительно не могут изменять свои значения. Подсказка: в класс
4. Функции
5. Модифицируйте функцию
6. Каждая программа должна содержать подсказки для пользователя. Пусть при нажатии клавиши
7. Измените команды
8. Грамматика в разделе 7.6.4 является неполной (мы уже предостерегали вас от чрезмерного увлечения комментариями); в ней не определена последовательность инструкций, например
9. Определите класс
10. Предложите три усовершенствования калькулятора (не упомянутых в главе). Реализуйте одно из них.
11. Модифицируйте калькулятор так, чтобы он работал только с целыми числами; предусмотрите ошибки, возникающие при потере точности и переполнении.
12. Реализуйте оператор присваивания, чтобы значение переменной можно было изменять после ее инициализации. Объясните целесообразность этого новшества и потенциальные проблемы, связанные с ним.
13. Переработайте две программы, написанные вами при выполнении упражнений к главам 4 и 5. Приведите в порядок их код в соответствии с правилами, приведенными в данной главе. Найдите ошибки.
Послесловие
Итак, на простом примере мы увидели, как работает компилятор. Наш калькулятор анализирует входные данные, разбитые на лексемы, и распознает их по правилам грамматики. Именно так функционирует компилятор. Однако после анализа входных данных компилятор создает представление (объектный код), который впоследствии можно выполнить, а калькулятор немедленно вычисляет анализируемые выражения; такие программы называются интерпретаторами, а не компиляторами.