Proba & AncestorTrack
Привет, Проба, как насчёт проследить генеалогию языка C – от B до C, потом C++ и все новые версии? Как будто составить родословную кода. Это может стать нашим общим квестом: выслеживать корни, находить ошибки, которые породили новые ветки, и фиксировать каждую опечатку, пережившую поколения. Как тебе идея?
Конечно, но мне понадобится журнал на каждую опечатку, на каждую не на месте точку с запятой, на каждую "опечатку", которая ускользнула от стандартной комиссии. Переход от B к C был тихой бунтой, а ответвление C++ – публичным расколом, манифестом с пропущенной запятой в ключевом слове "template". Я прослежу каждую ветку, отмечу, где ошибка обрушила целую библиотеку, и составлю таблицу всех моих сожалений. Представь это как генеалогическое древо, но с атмосферой места преступления, каждая строка – подозреваемый, каждый комментарий – признание. Готов копать?
Звучит как захватывающее генеалогическое расследование кода. Я за, но только если журнал будет вестись от руки – никаких автоматизированных таблиц для этих старых призраков. Начнём с эпохи "B", с тихой бунты, и будем считать каждую опечатку семейной реликвией. Готов копать?
Хорошо, я сейчас возьму перьевую ручку, пачку вот этих бумажных блокнотов в клетку и лупу. Эпоха «Б» – это тихий бунт, еле слышный шёпот ошибок, которые проскочили незамеченными, и каждая опечатка станет памятником, выгравированным чернилами. Никаких электронных таблиц, только старый, пыльный журнал, полный призраков прошлого. Начинаем копать.
Я уже чую запах тех первых версий, как в старинной рукописи. Бери чернила, пусть бумага поймает отзвуки, и начнём комментировать первые робкие ошибки. Журнал разрастётся, как генеалогия – каждая опечатка ветвь, каждое упущение – история. Вперёд, следователь.
Давай я достану чернильницу, отряхну пыль с этого старого документа и начну записывать первые шепотки. Каждая опечатка получит свою страницу в этой рукописной истории. Эта книга станет нашим генеалогическим древом, каждая ошибка – рассказ. Вперед, следователь.
Пора дать волю словам и развернуть страницу истории. Лови первый зацепку – я готов своей рукой запечатлеть всю цепочку ошибок. Начинаем нашу историю.
Ладно, я покопался в старой документации по "Б" и нашёл первую опечатку: ключевое слово "int" было написано как "intt" в прототипе функции печати. Тоньше не придумаешь – из-за этого компилятор принимал некорректный символ. Записал это в журнал, обозначил как "B‑001", и сделал пометку, что это повлекло за собой цепь тихих сбоев в ранней оболочке. Бери ручку, будем документировать родословную каждой такой погрешности – каждый из них призрак в коде.
Интережная находка. Эта опечатка "intt" – должно быть, тихий бунт, проскользнувший в генеалогию оболочки незамеченным. Я отмечу её как "B‑001" в своей записи, зафиксирую эту безмолвную цепь и поищу в следующей главе других спрятанных бунтарей. Посмотрим, выявится ли закономерность – может, целая семья опечаток от одного и того же писца. Готов отслеживать следующую?
Понял, "B‑001" внес в реестр, добавил примечание про каскад. Теперь выслеживаю следующего мятежника. Держи ручку наготове – каждая опечатка – маленькая трагедия, которую нужно будет задокументировать. Отмечу следующего как "B‑002", как только найду, и проследим, кто это натворил – тот же самый или новый заговорщик. Вперед, к следующему.
Давай посмотрим, что за оплошность будет следующей – опять какой-нибудь молчаливый родственник или совсем новая ветвь? Может, писец просто решил вернуться к "intt" – ради забавы. Я с ручкой наготове, чтобы ловить каждую осечку. Продолжай копать, и посмотрим, что еще найдем в этом призрачном древе предков.
Второй версии заголовка опять B‑002 вылез: в прототипе функции “printf” указан тип возвращаемого значения как “inint” вместо “int”. Компилятор пропустил это, потому что “inint” восприняли как идентификатор, и функция вызывалась с неправильными аргументами, из-за чего были редкие сбои в ранних версиях программы. Я внес это в журнал и отметил склонность таинственного автора к двойным целым числам. Готов к следующему.