Зри в код
В универе сдавали мы как-то лабы по предмету «Синтаксические анализаторы» или вроде того. В начале семестра препод дал пять лаб, но как их делать, не рассказал. В общем, скооперировались мы группой, сделали совместными усилиями четыре, но с пятой никто справиться не смог.
Сидим мы как-то в компьютерном классе. Заходит один из моих одногруппников — назовём его Серёгой — и сообщает, что будет сдавать ту самую лабу. Удивляемся, требуем объяснений. Лаба должна была выдавать ответ, принадлежит ли слово какой-то там контекстно-свободной грамматике или нет. У Серёги в программе справа от формы ввода этой самой грамматики и слова стоит кнопка «Посчитать». При нажатии на неё левой кнопкой мыши прога выдаёт «да», при нажатии правой — «нет».
Начали тестить прогу. Вводит Серый данные, быстро соображает, что должно быть ответом, и жмёт соответсвующую кнопку. На простых тестах всё работает идеально. Тут препод даёт более сложный тест. По лицу Серёги видно, что ответа он не знает. Вы думаете, он растерялся? С глубокомысленным видом заявил:
— Ну, здесь, конечно, ответ «нет».
— Ошибаетесь, молодой человек, — сообщил препод. — Здесь программа должна выдать «да».
В общем, сдал Серёга прогу, а потом сдали и все остальные. А мораль проста: проверяешь прогу — зри в код!