Откуда в программирование пришел термин «дебаг»?

Реклама
Грандмастер

Грейс Хоппер была прекрасным математиком и одним из первых «кодировщиков», так называли программистов. В середине ХХ века она, будучи офицером ВМС США, как и все, кто были «близки» к вычислительным машинам, работала в Гарварде в департаменте, который занимался получением баллистических таблиц для задач артиллерии.

Так что Грейс Хоппер считается одним из первых программистов мира в истории компьютеров: она работала на компьютере Марк I, бывшим, по сути, гигантским калькулятором.

Гигант Марк I был предназначен для вычислительных процессов получения артиллерийских баллистических таблиц, в уже написанном алгоритме были предусмотрены математические задачи (модули) общего характера. Хоппер и ее коллеги (к слову, женщин-программистов, занимавшихся кодированием, было намного больше, чем мужчин) справились с этим — они впервые применили подпрограммы.

Реклама

Под этим словом тогда подразумевалось многократное повторение одних и тех же вычислительных операций, и если программистам нужны были подпрограммы, написанные до них кем-то ранее, они попросту переписывали код к себе в блокнотики. Так что хотя термин «подпрограмма» был введен позже, считается, что впервые это определение, без которого в программировании никуда не денешься, стал применяться на машине Марк-1 в 1944 году.

А еще через год Хоппер и ее коллеги-программисты ввели еще одно фундаментальное понятие, к которому приходится прибегать всем программистам мира и сегодня. Его история такова…

Стоял жаркий летний день. Марк I рассчитывал таблицы с потрясающим машинным быстродействием — одна таблица в день, и это уже было большим прогрессом. Оставалось только менять параметры, переключая определенные рычажки, и получать новые данные. Программисты расслабились, и вдруг случился машинный сбой: Марк перестал громыхать и мигать лампочками. Все были в недоумении, что же явилось таинственной неисправностью в уже отлаженном режиме.

Реклама

Через 4 часа после тщательно проведенного анализа программисты обнаружили неисправность — это был мотылек, который замкнул контакты одного из реле. Они осторожно пинцетом вытащили тело погибшего насекомого и приклеили его в специальную тетрадь, напоминавшую бортовой журнал, он педантично заполнялся по приказу ВМС США, пока компьютер работал над задачей. Останки насекомого сопроводили надписью:

«Первый достоверный случай нахождения насекомого (bug) в реле. Реле 70 Панель F. Мотылек в реле».

Здесь имеет место игра слов: английское bug означает и мотылька, и насекомое.

Реклама

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

Термин дебаг (или дебуг, кому как нравится) так и прижился, его стали употреблять для поиска погрешностей в компьютере, а позже в программах.

Реклама