[<>] ~~TOC wide~~ ====== Глава тринадцатая. Программисты шутят ====== \\ Я думаю, очень важно, чтобы в научной работе всегда оставалось место для шутки и развлечения. Когда вычислительная техника и программирование только зарождались, в нашей работе было много весёлого и забавного. —//А.Перлис, профессор Йельского университета// {{anchor:n131}} ====== XIII.1. Проза ====== \\ А что касается мистера Френкеля…, то он начал страдать от компьютерной болезни — о ней сегодня знает каждый, кто работал с компьютерами. Это очень серьёзная болезнь, и работать при ней невозможно.Беда с компьютерами состоит в том, что вы играете с ними. Они так прекрасны,столько возможностей — если чётное число, вы делаете это, если нечётное, делаете то, и очень скоро на одной–единственной машине можно делать все более и более изощрённые вещи, если только вы достаточно умны. —//Р.Фейнман// //Программирование очертя голову// (абсолютно серьёзный доклад на совершенно серьёзную тему) Уважаемые товарищи, с сожалением приходится констатировать,что широкое распространение вычислительной техники и обучение информатике приводит к учащению заболеваний ПОГ. //Программирование очертя голову// (ПОГ) —"детская" болезнь, возникающая в начальный период обучения программированию после того как человек овладевает основами какого–либо языка программирования и составляет первую в своей жизни программу. ПОГ наблюдается у людей различного возраста. Но, к счастью, тяжёлая форма болезни — редкость. У большинства начинающих программистов ПОГ протекает почти незаметно,не причиняя никаких страданий ни больному, ни окружающим. Интересно, что у женщин обычно наблюдается лёгкая форма заболевания, причём женщины старше 40 лет — даже имунны (по крайней мере, у них ещё не отмечено ни одного случая заболевания). Опасности заболеть ПОГ в тяжёлой форме особенно подвержены юноши переходного возраста, а наиболее серьёзные последствия зафиксированы у пожилых мужчин (как и в случае других детских болезней). //Течение// болезни ПОГ описывается и измеряется не количеством дней, а числом составленных программ. Инкубационный период — 3–4 программы. Если после создания 10–20 программ симптомы болезни затухают, можно констатировать лёгкую форму и, что особенно существенно, приобретение устойчивого иммунитета. Если же внешние признаки ПОГ проявляются и после 20 программ, случай — тяжёлый. Остановимся подробнее именно на таком случае. //Симптомы//. Первый видимый (или вернее слышимый) признак заболевания проявляется в том, что больной (или ОГ–программист), находясь в состоянии либо эйфории, либо депрессии, непрерывно говорит о своей последней программе. Депрессивное состояние наблюдается,когда программа в очередной раз оказывается неверной, хотя больной по меньшей мере дважды в день объявляет, что неисправна машина. В состоянии эйфории, когда, по мнению ОГ–программиста, текст программы исправлен, больной пытается всем объяснить, в чем же состояла последняя ошибка. Несчастный! Он искренне уверен, что ошибок в программе больше нет! Он ещё не понимает,что обречён на бесконечный поиск. При сложившейся картине болезни в процессе сверхоперативной борьбы с ошибками (известным методом проб и ошибок) программа становится непонятной даже для автора, а сам ОГ–программист теряет в тяжёлых случаях способность логического, а в особо тяжёлых — любого мышления. К симптомам ПОГ относится и отсутствие интереса (или потеря его) к литературе по программированию, презрение к системным, структурным,продуманным и дисциплинированным методам программирования. Нередки случаи, когда больной "изобретает колесо". Стремление при любой возможности демонстрировать уверенную и умелую работу с машиной,головокружительные трюки (от которых нет никакой практической пользы), речь, пестрящая жаргонными словами, такими, как "принтить", "листить" и т.п.,— тоже признаки тяжёлой болезни. У ОГ–программистов наблюдается покраснение глаз, бледность лица, дрожь в руках и голосе, особенно, когда речь идёт об ЭВМ и программировании. В очень тяжёлых случаях — разрушение зубов и выпадение волос. __Лечение__. Наука ещё не знает вполне эффективных средств борьбы с ПОГ. Можно посоветовать хорошо продуманный начальный курс программирования, а также … длительное пребывание на свежем воздухе. Полезно время от времени насильно удалять ОГ–программиста от машины. Например, в подходящий момент вывернуть электрические пробки. Однако необходимо следить, чтобы при этом не пропало слишком много трудов ОГ–программиста,так как его реакции совершенно непредсказуемы. Способность мыслить изолированного от машины больного восстанавливается довольно быстро.Если перед ним каким–то чудом окажется текст программы, в которой он при помощи машины двое суток отчаянно пытался найти ошибку, то вполне вероятно,что теперь он обнаружит её в течение 10–15 минут. Благотворно действует на больного знакомство с парой новых языков программирования. Иногда полезно доверить ОГ–программисту большую и сложную задачу. Решая её, больной скоро поймёт, что его знания недостаточны. Это будет способствовать выздоровлению или … обострению болезни. Люди, страдающие болезнью ПОГ, для общества не опасны. После выздоровления они опять становятся его полноценными членами, а из некоторых выходят даже неплохие программисты. //Профилактика//. Предупреждение ПОГ крайне затруднительно, особенно у учителей информатики. Более того, ОГ–программист, занимающий эту должность, заражает обучаемых. Учитель, страдающий ПОГ даже в лёгкой форме, испытывает непреодолимое отвращение к методике обучения программированию и общепризнанным методам обучения. Обычно он учит отдельным командам и трюкачеству с их помощью, а также знакомит со своим богатым опытом на поприще бессистемного поиска ошибок. Он уверен,что программирование — учение о командах языка программирования (наглядно: лесоводство — учение о большом количестве отдельных деревьев). Распространению ПОГ способствует нехватка учебников и справочников по программированию. До сих пор издательства ещё не поняли в полной мере своей ответственности в этом вопросе. В прессе, на радио и по телевидению необходимо ограничить количество выступлений, подстрекающих на ПОГ,при этом увеличив число компетентных выступлений квалифицированных специалистов. Большие надежды в профилактике болезни возлагаются на профсоюзные, комсомольские и спортивные организации. Несомненно, что при решительной помощи общественности тяжёлая форма болезни ПОГ будет окончательно предотвращена. ===== Спаянный коллектив ===== \\ Не в совокупности ищи единство, но более — в единообразии разделения. —//Козьма Прутков// //Спаянный коллектив// Микродрама в системной магистрали \\ Перевод с машинного Действующие лица: П.П., Программа Пользователя М., Монитор П., Принтер Т.К., Телеграфный Канал Т., Терминал Б., Буфер (Происходит прерывание от Программы Пользователя.) П.П. Эй, Монитор! М. Что? П.П. Цифру "6" напечатать надо. М. Эй, Принтер! П. Я занят. П.П. Тогда, Монитор, дай ещё памяти. М. Нет памяти, пиши на диск. Диск! (Диск поднимает флаг готовности.) Д. Вызывали? М. Записать надо. Д. Есть! Т.К. Монитор! Для Вас получен байт. М. Жди. Диск, записал? Д. Нет свободного места. М. Телеграфный Канал! Давай свой байт. Т.К. Уже пришёл следующий, старый я стёр. М. Программа, это тебе прислали байт? П.П. Нет. (Монитор засовывает байт в буфер.) М. Терминал! Пользователь что–нибудь нажимал? Т. Нет. М. Программа! Работай дальше. П.П. Не могу, цифру "6" напечатать надо. М. Принтер! П. Я занят! Т.К. Монитор! Для Вас получен байт. М. Давай. Программа, это твой байт? П.П. Нет. М. Буфер! Б. Я переполнен. (Монитор выбрасывает байт.) М. Принтер! П. Свободен. М. Печатай цифру "6". П. Есть. М. Программа, работай дальше. (Программа работает, проходит одна миллисекунда.) П.П. Эй, Монитор! Цифру "7" напечатать надо. --- Газета "За науку"(МФТИ) 10.10.86 ===== Диалог ===== \\ Мой способ шутить — это говорить правду.\\ На свете нет ничего смешнее. —//Б.Шоу// — Серёжа, дорогой, как тебе нравится моё новое платье? Элегантное? \\ "Какой ужас! Элементарную программу не могу составить". \\ — Сергей, ты считаешь, что можно не отвечать мне? Какой ужас! \\ "Считаешь, считаешь — не получается. Что–то в программе". \\ — Я для тебя ноль… \\ "Неужели деление на ноль? Быть не может". \\ — Ты не можешь уделить мне одну минутку. Ты вообще не видишь меня, смотришь как через стекло. \\ "Причём здесь стек…" \\ — Все, моя чаша терпения переполнилась. \\ "На переполнение не похоже". \\ — Я знала, что ошибаюсь, ещё когда мы регистрировались. \\ "Ошибка в регистрах!… Конечно, не из того беру". \\ — Ты никогда не понимал меня. Я измучилась. \\ "Все понятно. Эх, если бы иметь машину,умеющую по–настоящему вести диалог с человеком, разве бы я мучился". \\ — Раз ты этого хочешь, я ухожу. Ты не любишь меня. Все. Кончено. \\ — Галинка, милая. Все. Ура! Кончено. Готова программа. Теперь мы заживём. \\ "Не готова я уходить". \\ — Поторопился и ошибся. Еле исправил. \\ "Не стоит торопиться". — Понимаешь, не из того регистра. \\ "И до регистрации он точно такой же был. Не говорит,не говорит,потом скажет слово, другое… Много ли женщине для счастья надо?" \\ — Серёжа, дорогой, как тебе нравится моё новое платье?… ===== Сказка ===== \\ Поиск истины способен изрядно позабавить. —//В.Говард// 1. Хотите ли вы узнать историю трёх маленьких шустрых горошин? Если да, перейдите к 4; если нет, перейдите к 2. \\ 2. Может быть, вы предпочитаете историю трёх длинных жердей? Если да, перейдите к 16; если нет, перейдите к 3. \\ 3. Может быть, вы предпочитаете историю о трёх простых скромных кустиках? Если да, перейдите к 17, если нет, перейдите к 21. \\ 4. Жили–были когда–то три маленькие горошины, одетые во все зелёное. Они мирно спали в своём стручке. Личики у них были совсем кругленькие, а маленькие носики тихо и ровно посапывали. Если вы предпочитаете другое описание, перейдите к 9; если вас все устраивает, перейдите к 5. \\ 5. Они не видели снов. Эти маленькие существа вообще никогда не видят снов. Если вы предпочитаете, чтобы они видели сны, перейдите к 6; иначе перейдите к 7. \\ 6. Они видели сны. Эти маленькие существа все время видят сны, и ночи скрывают их чудесные сновидения. Если вы хотите узнать эти сны,перейдите к 11; если вам это безразлично, перейдите к 7. \\ 7. Их маленькие ножки были укутаны в тёплые носки, а с рук они никогда не снимали чёрных шерстяных перчаток.Если вы предпочитаете перчатки другого цвета, перейдите к 8; если этот цвет вас удовлетворяет, перейдите к 10. \\ 8. Они никогда не снимали голубых шерстяных перчаток. Если вы предпочитаете перчатки другого цвета, перейдите к 7; если этот цвет вам подходит, перейдите к 10. \\ 9. Жили–были три маленькие горошины, которые обошли весь свет, бродя по дорогам. К вечеру утомлённые и усталые, они очень быстро уснули. Если вы хотите знать, что будет дальше, перейдите к 5, иначе перейдите к 21. \\ 10. Всем трём снился одинаковый сон,они в самом деле нежно любили друг друга; словно отражённые в трёх зеркалах, они видели похожие сны. Если вы хотите узнать их сон, перейдите к 11, иначе перейдите к 12. \\ 11. Им снилось, что они уселись ужинать в харчевне и, открыв крышку кастрюли, они увидели, что это был суп из чечевицы. От ужаса они проснулись. Если вы хотите знать, почему они проснулись в ужасе, поищите в Энциклопедии слово "чечевица", и не будем об этом больше говорить; если вы считаете бесполезным углублять этот вопрос, перейдите к 12. \\ 12. "Ой–ой–ой!"- вскрикнули они, открыв глаза. "Ой–ой–ой! Что за сон мы увидели". "Это не к добру", —сказала первая горошина. "Да , —сказала вторая,-это так, я боюсь". "Не тревожьтесь , — сказала третья, которая была самая умная, — надо не нервничать, а разобраться. Я сейчас попробую вам все объяснить". Если вы хотите сразу же узнать толкование этого сна, перейдите к 15; если, напротив, вы хотите узнать, как на это прореагировали две другие горошины, перейдите к 13. \\ 13. "Не заговаривай нам зубы",—сказала первая. "С каких это пор ты научилась толковать сны? Да, с каких пор?" —прибавила вторая. Если вы тоже хотите знать, с каких пор, перейдите к 14, иначе перейдите все—таки тоже к 14, иначе вы ничего не узнаете больше. \\ 14. "С каких пор?"— вскричала третья. Разве я знаю? Да,я умею. Сейчас увидите!" Если вы хотите увидеть, перейдите к 15, если нет, то тоже перейдите к 15; но вы ничего не увидите. \\ 15. "Хорошо, посмотрим!"— сказали сестры. "Мне не нравятся ваши насмешки",— ответила тогда третья горошина. — И вы ничего не узнаете. Кстати, пока мы здесь все довольно живо обсуждаем, не уменьшились ли ваши страхи? Или, может, совсем рассеялись? Тогда стоит ли копаться в глубинах вашего подсознания мотыльковых? Пойдёмте скорее к фонтану, умоемся и порадуемся этому весёлому утру в чистоте и добром здравии! "Сказано–сделано: они вылезли из своего стручка, опустились осторожно на землю и затем быстро и весело добрались до фонтана. Если вы хотите знать, что было у фонтана, перейдите к 16; если вы этого не хотите, перейдите к 21. \\ 16. Три большие длинные жерди смотрели, что они делают. Если три большие жерди вам не нравятся,перейдите к 21; если они вас устраивают, перейдите к 17. \\ 17. Три простых скромных кустика смотрели, что они делают. Если вам не нравятся три простых скромных кустика, перейдите к 21; если они вам подходят, перейдите к 18. \\ 18. Видя, что они так на них глазеют, три шустрые маленькие горошины смущённо отвернулись. Если вы хотите узнать что они потом сделали,перейдите к 19; если вы этого не желаете, перейдите к 21. \\ 19. Они быстренько побежали к своему стручку,укрылись в нем и снова заснули. Если вы хотите знать продолжение, перейдите к 20; если вы этого не желаете, перейдите к 21. \\ 20. А продолжения то и нет, потому что сказка кончилась. \\ 21. И в этом случае сказка тоже кончилась. --- Р.Кено ===== Типы программистов ===== \\ Смех — это солнце: оно прогоняет зиму с человеческого лица. —//В.Гюго// Хотя программистов все ещё мало, среди них есть уже свои типы. Я попытался охарактеризовать самые яркие из них. //Классификация// с точки зрения подхода к работе Программист — "//штамповщик//" — добросовестный ремесленник в лучшем смысле этого слова. Работает, руководствуясь плотницким правилом "Десять раз отмерь, один отрежь". Программирование для него — честное ремесло. Что ни программа - то те же самые тщательно сработанные двери. Программист — "//богемщик//" — бывает всесторонним художником. Программирование для него — конёк и средство выражения. Его программы полны красок и тонов. Что ни программа — то произведение искусства. Что ни программа — то своя "Неоконченная симфония". Программист — "//стрелок//", иногда называемый "очумелым" — продукт современной цивилизации. К программированию относится как к бою, его оружие — терминал. Что ни программа — то игра в тотализатор. Что ни программа — прыжок в воду. //Классификация// с точки зрения профессии Программист — "//рутинер//" — является результатом обычной профессиональной отупелости. Его не радуют плоды его работы, он не переживает каждый проход программы через компьютер, знает, что беганьем вокруг стола событий не ускорит. Взгляд на новый компьютер обрадует его не более, чем взгляд на новый кухонный гарнитур. Считает, что программировать умеет, и обычно так оно и есть. Программист — "//любитель//" — хотя и работает в своей специальности уже лет 20, все ещё не забыл тех счастливых минут, когда был сам себе и компилятором, и перфоратором, и оператором в те времена, когда первый в республике "УРАЛ-1" выдавал свои исторические результаты. В нём ещё горит юношеское волнение, когда через машину проходит именно его программа, а за каждый результат он боится, как за собственного ребёнка. Часто думает, что программировать не умеет, но на самом деле все обстоит не так плохо. Программист — "//дилетант//" — в сущности счастливый человек: все время чем–то восхищён, удивлён. Компьютер работает! Компьютер стоит! Солнышко светит! Он постоянно в движении, постоянно в деле. Все в поле его зрения, ничто не ускользнёт от его глаз, ничто чуждое ему не чуждо. Он убеждён, что умеет программировать, но, как всегда, снова ошибается. //Классификация// с точки зрения характера Программист — "//флегматик//" считает своим девиз "лучшее — враг хорошего". Он не разволнуется, если за неделю до окончания проекта выяснится, что можно было бы начать сначала и это было бы лучше. Знает, что хорошо закончить лучше, чем хорошо начать. Программист — "//сангвиник//" мечется от здравой неудовлетворённости. Свою жизнь проживает в собственных программах, и пока они несовершенны, спокойного сна у него не будет. Отличается кипучей активностью и хроническим недосыпанием. Программист — "//холерик//" всем не доволен. Одержим стремлением к полному совершенству, прогрессивности и полноте всего, поэтому переделывает уже переделанное и не доделывает недоделанное. Сомнения в его проекте рассматривает как наглость, а в ответ на вопрос, когда будет готов проект, впадает в обморочное состояние. Подсчитаны 27 различных комбинаций типов программистов. Некоторые из них выглядят явно абсурдными. Остановимся хотя бы на трёх крайностях: "//Штамповщик//" — "//рутинер//" — "//флегматик//" — обычно любим своими шефами. Работает добросовестно, надёжно, непогрешимо. В случае необходимости может проявить себя и как способный бухгалтер. "//Богемщик//" — "//любитель//" — "//сангвиник//" — программист, каких поискать. В нем, как говорится есть "искра божия", около него целый штаб помощников. Если его не свалит инфаркт, всегда готов для направления в психиатрическую лечебницу. "//Стрелок//" — "//дилетант//" — "//холерик//" — известен в своём кругу под прозвищем "деятельный болван". Совершенно не важно, что он делает в программировании. Он все равно не знает, как это делать. --- И.Демнер (журнал "Vega a technika mladezi") ===== Формулы аутотренинга для пользователей ЕС–1060 ===== Я совершенно спокоен… \\ Зависание приятно мне… \\ Расслабляются руки… ноги… туловище… \\ Расслабляется голова… Голова совсем расслабла… \\ После зависания это ощущение пройдёт… \\ Я зависаю вместе с операционной системой… \\ Зависают мои руки… ноги… туловище… \\ Зависает голова… Голова совсем зависла… \\ После зависания это ощущение пройдёт… \\ Зависание приятно мне… \\ Мне нравится работать на ЕС–1060… \\ Частые зависания способствуют регулярным занятиям аутогенной тренировкой… \\ Аутогенная тренировка благотворно действует на мою нервную систему… \\ Я совершенно спокоен… \\ Ничто не отвлекает меня… \\ Не отвлекают мысли о работе — ведь я и так на работе… \\ Я нахожусь на работе и погружен в состояние полного покоя… \\ Ощущение зависания постепенно проходит… \\ Все больше нарастает ощущение работы ЭВМ… \\ Словно лёгкий ветерок в области лба… \\ Это лёгкий сквознячок из машинного зала… \\ По моему телу пробегает дрожь… \\ Мои пальцы готовы в любую секунду побежать по клавиатуре, чтобы первым ворваться, запустить задачу, захватить ресурсы ЭВМ… \\ Я весь, как сжатая пружина… \\ Внимание… Рестарт!!! --- И.Сидисидзе ===== Новогодний рецепт ===== \\ Изучая Поваренную книгу, программист может \\ узнать много интересного и полезного. —//Д.Кнут// Приближается Новый год. Как быстро изготовить программный продукт? Напишите небольшую программу на Фортране, 200–300 перфокарт разбейте на модули, по 50 операторов каждый. Добавьте 2–3 подпрограммы на Ассемблере, отперфорируйте. После этого все тщательно перемешайте и медленно пропустите через транслятор при температуре машинного зала. Повторите процедуру несколько раз,до полного исчезновения ошибок. Обработайте редактором связей и запустите на счёт. Получите листинг. Если обнаружится ошибка — отключите диагностику. Продокументируйте. Программный продукт готов к употреблению. ===== Удивительное рядом! ===== \\ Вот уж и радио изобрели — а счастья все нет… —//И.Ильф// ^ Нажимаемые клавиши ^ Результат ^ |CTRL+>+?|print| |CTRL+|+M+T+D|print| |CTRL+;+4|print| |CTRL+;+5|auto| |CTRL+F+D+X+B|auto| |CTRL+;+;|goto| |CTRL+W+O|goto| |CTRL+|+M+T+D+Y|%%run"COM:"%%| |SHIFT+4+7+8+9|%%run"COM:"%%| |CTRL+W+[+S|%%save"COM:"%%| |SHIFT+5+7+8+9|%%save"COM:"%%| |CTRL+W+O+S|%%load"COM:"%%| |SHIFT+6+7+8+9|%%load"COM:"%%| |CTRL+>+?+BS|print run| |CTRL+8+9+=|CAPS| |CTRL+;+2|CAPS| |CTRL+;+3|РУС| |CTRL+8+9+^|РУС| |CTRL+;+2+3|CAPS+РУС| |CTRL+8+9+=+^|CAPS+РУС| |CTRL+BS+H+^|CTRL+STOP| |SHIFT+4+9|%%"цифры"run"COM:"%%| |SHIFT+5+9|%%"цифры"save"COM:"%%| |SHIFT+6+9|%%"цифры"load"COM:"%%| Читателю предлагается продолжить данный список на компьютере [[msx:msx_1]] и составить аналогичный на компьютере [[msx:msx_2]] ! ===== Теория ошибок ===== \\ Ошибки так же неисчерпаемы, как и атом. //Аксиома//. В любой программе есть ошибки. //Закон пропорциональности//. Чем больше программа необходима, тем больше в ней ошибок. //Следствие//. Ошибок не содержит лишь совершенно ненужная программа. ==== Фундаментальный закон теории ошибок ==== На ошибках учатся. Следствие 1. Программист, написавший программу, становится учёным. Следствие 2. Чем больше программист делает ошибок, тем быстрее он становится учёным. Следствие 3. Крупный учёный–программист никогда не пишет правильной программы. //Замечание//. На то он и учёный. //Указание начинающему программисту//. Если вы с первого раза сумели написать программу, в которой транслятор не обнаружил ни одной ошибки, сообщите об этом системному программисту. Он исправит ошибки в трансляторе. //Закон находимости ошибок//. Программист может обнаружить ошибку только в чужой программе. //Следствие//. Ошибке не все равно, кто её обнаружил. //Совет начинающему программисту//. Никогда не исправляйте найденные ошибки, ибо это повлечёт за собой появление неизвестного числа ненайденных. Лучше опишите их в сопроводительной документации как особенность программы. //Определение//. Будем называть //языком ошибок// правила, в обход которым пишутся программы. ==== Язык ошибок ==== Ошибки могут следовать друг за другом. От перестановки двух эквивалентных ошибок результат не меняется (коммутативность эквивалентных ошибок). Две последовательные ошибки можно объединить в одну более сильную. Одинаковые ошибки необязательно делать каждый раз, достаточно сделать одну, а затем обращаться к ней по мере необходимости из любого места программы. Ошибки могут образовывать циклы. Наиболее устойчивый из них — бесконечный. Ошибки могут вызывать друг друга и сами себя (рекурсивность ошибок). Ошибки допускают многократное вложение друг в друга. Две одинаковые вложенные ошибки называются чётной ошибкой и ошибкой не являются. //Свойство чётности ошибок//. Если написанная программа сработала правильно, то это значит, что во время её работы выполнилось чётное число ошибок или программист не понял задание. //Формулировка вышеприведённого свойства, предназначенная для политиков.// Ошибка, повторенная дважды, перестаёт быть ошибкой. ==== Взаимодействие ошибок с базовой операционной системой ==== Во время исполнения программы ошибки имеют наивысший приоритет. Прервать исполнение ошибки может только другая, более активная ошибка. Запросы операционной системы к ошибкам ошибками могут игнорироваться. Запросы ошибок к операционной системе игнорироваться не могут. При работе с файлами ошибки могут пользоваться файловой системой базовой ОС и её ошибками. На ЭВМ с параллельной архитектурой может выполняться несколько ошибок одновременно. ==== Системные программы ==== Системные программы облегчают процесс написания прикладных программ и их ошибок. //Определение. Тестирование// — это процесс нахождения ошибок в тесте. Хороший тест должен содержать ошибки, компенсирующие их нехватку в тестируемой программе. Языковый редактор, призванный уберечь программиста от синтаксических ошибок, позволяет вносить в программу весьма хитроумные ошибки, которые не удаётся обнаружить ни транслятором, ни отладчиком. Обычный текстовый редактор таких возможностей не предоставляет. Программа–транслятор, предназначенная для перевода программ с языка высокого уровня на машинный язык, при переводе порождает ошибки. Ошибки, которые содержались в исходном описании, переводятся безошибочно. Заключительный совет тем, кто до него добрался. До начала работы над проектом следует тщательно продумать все необходимые ошибки и связи между ними. Это значительно упростит работу над ошибками в самом проекте. --- В.Тихонов ===== Из записной книжки программиста ===== \\ Смешную фразу надо лелеять, холить, ласково поглаживая по подлежащим. —//И.Ильф и Е.Петров// * Прежде чем написать программу — убедись, что существует ЭВМ, способная её переварить. * Чтобы овладеть искусством программирования, нужно в первую очередь научиться владеть собой. * Научись писать коротко сложные программы, и тогда ты сможешь изредка позволять себе писать длинно простые. * Если ты не видишь очевидных ошибок в своей программе, не отчаивайся, — скорее всего, ты близок к тому, чтобы стать настоящим программистом. * Помни, что несколько лишних операторов в программе не принесут такого вреда, как отсутствие двух–трёх необходимых. * Если, по–твоему, программа составлена правильно, это ещё не значит, что с этим согласится машина. * Помни, что употребление в программе бранных слов и выражений не всегда является действенным способом заставить её работать. * Если программа заработала, не расстраивайся — долго это продолжаться не будет. * Занимаясь улучшением работающей программы, помни, что это верный способ сделать её хуже. * Если машина вышла из строя ещё до того, как программа стала выдавать результаты, — не унывай, — скорее всего, они были бы ошибочными. * Нет ничего более интересного и загадочного, чем с ошибками составленная, но безошибочно работающая программа. * Вкладывая в программу всю свою душу, не забывай, что её ещё будут эксплуатировать. * Если планируешь написать большую, сверхсложную и, самое главное,безошибочно работающую программу — подумай сначала о своих близких. * Программа — высокая поэзия, результаты её работы — грубая проза. * Основной вопрос программирования: что сложнее — программа или написавший её программист? * Каждая программа — отражение достоинств и недостатков её составителя. * Не разговаривай с друзьями и близкими на алгоритмическом языке — тебя могут неправильно понять. * Утреннее машинное время возьми себе, дневное раздели с другом, а вечернее отдай врагу. * Надпись на дверях машинного зала: "//Оставь надежду всяк сюда входящий//". * Если вы не умеете программировать — не отчаивайтесь, скорее всего, это не самый лучший из ваших недостатков. * ТЗ для программиста: "Пойди туда, не знаю куда,найди то,не знаю что". * Программист не стареет, — устаревают его программы… * Если твои близкие не программируют, стыдись! Ты позоришь звание программиста! * Программисты, как и ЭВМ, бывают 1, 2, 3, 4–го и т.д. поколений… * Если с твоей программой может свободно работать совершенно посторонний человек, то либо ты альтруист, либо тебе есть ещё чему поучиться в жизни… * В чем разница между системным программистом и программистом вообще? Первый, как правило, работает на машину, а второй заставляет машину работать на себя. * С юмором написанная программа зачастую лишь подтверждает отсутствие чувства юмора у заказчика. * Каждая новая программа — это, как правило, хорошо забытая старая. * На каждые тридцать правильных операторов записывай один неправильный — это делает жизнь разнообразнее! * Помни: войти в подпрограмму, как правило, гораздо легче, чем из неё выйти! * Не давайте далеко заплывать плавающей запятой! * Учти: вложенные циклы не должны скрипеть при работе… (Ю. Шихонин) * Стоит ли писать программу, если заранее знаешь, с какого оператора она начнётся и каким закончится? * Надо ли материально поощрять специалиста,если ему и так дана возможность попрограммировать? (Е.Корженевский) * Создав систему, посмотри — не операционная ли она! * Категорически запрещается сушить супервизор на интерфейсе! * Помни, что ЭВМ женского рода! (Г.Юдин) \\ Ум современного молодого человека рано изнашивается усвоением чужих мыслей и теряет способность к самодеятельности и самостоятельности. —//В.Ключевский// ===== Поговорки ===== - Семеро одного дисплея не ждут. - Каждому программисту ЭВМ выдаёт то, чего он заслуживает (из опыта). - Что у заказчика на уме, то у программиста на языке. - Не спрашивай старого программиста, спрашивай бывалого. - Лучше с хорошим программистом метку потерять, чем с плохим найти. - Алгоритмический язык до Новосибирска доведёт. - Хороша верёвка длинная, а программа короткая. - Алгоритмам учиться — всегда пригодится. - Снявши оператор вывода, по ответу не плачут. - В чужой ВЦ со своим транслятором не ходят. - Массив не припасёшь — памяти не будет. - Программу циклом не испортишь. - Ячейка память бережёт. - С миру по ячейке — программисту банк данных. - Лучше микрокалькулятор в руках, чем персональный компьютер в мечтах. - Кто как программирует, тот так и ест. - Маленький алгоритм лучше большого безделья. - Отольются заказчику слезы программиста. - Дурной FORMAT печати покоя не даёт. --- Б. Медведев ===== Фразы ===== Болеющие душой за дело внедрения в школу компьютеров, скорее выздоравливайте: вы очень нужны! Глобальная учебная цель оправдывает убогие программные средства. "Где, укажите, педагогики отцы, которых мы должны принять за образцы?" (почти по Грибоедову) Почему портфель ученика стал тяжелее, если компьютер призван избавить людей от рутинной работы, облегчить школьнику учение? --- Т. Драгныш {{anchor:n132}} ====== XIII.2. Поэзия ====== \\ …грянул оглушительный аплодисман. —//Ф.Достоевский. Бесы// - Вот БЭСМ, \\ Которой владеет ВЦ. \\ А это ввод, \\ Который умеет читать перфорацию, \\ А стало быть, может ввести информацию \\ В БЭСМ, \\ Которой владеет ВЦ. \\ А это колода, \\ Которую ставят на вход того ввода, \\ Который умеет читать перфорацию, \\ А стало быть, может ввести информацию \\ В БЭСМ, \\ Которой владеет ВЦ. \\ А вот лаборантка, младая и пышная, \\ Которая карту засунула лишнюю \\ В большую и важную очень колоду, \\ Которую ставят на вход того ввода, \\ Который умеет читать перфорацию, \\ А стало быть, может ввести информацию \\ В БЭСМ, \\ Которой владеет ВЦ. \\ А это АВОСТ, \\ К которому путь неизбежен и прост, \\ Когда лаборантка, младая и пышная, \\ Вдруг карту засунет заведомо лишнюю \\ В большую и важную очень колоду, \\ Которую ставят на вход того ввода, \\ Который умет читать перфорацию, \\ А стало быть, может ввести информацию \\ В БЭСМ, \\ Которой владеет ВЦ. --- И.Липкин - Вот зал, в котором работает JEC \\ A вот смешной нецветной телевизор, \\ Который является главным призом \\ В зале, в котором работает JEC. \\ А это парень весёлый, пригожий, \\ Который буквально лезет из кожи, \\ Чтобы занять нецветной телевизор, \\ Который является главным призом \\ В зале, в котором работает JEC. \\ А это — серьёзная строгая дама, \\ Которая хочет отладить программу, \\ Которая видеть спокойно не может \\ Парня, который лезет из кожи, \\ Чтобы занять нецветной телевизор, \\ Который является главным призом \\ В зале, в котором работает JEC. \\ А это — шеф и начальник программы, \\ Который главнее серьёзной дамы, \\ Которая хочет отладить программу, \\ Которая видеть спокойно не может \\ Парня, который лезет из кожи, \\ Чтобы занять нецветной телевизор, \\ Который является главным призом \\ В зале, в котором работает JEC. \\ А вот оператор в голубенькой блузке. \\ Она начинает перезагрузку… \\ После чего не работает JEC. --- Слова народные Примечание. JEC — терминальная система коллективного пользования на ЕС ЭВМ. {{anchor:n133}} ====== XIII.3. Словари ====== \\ Если Вам непонятно какое–то слово в техническом тексте, не обращайте на него внимания. Текст полностью сохраняет смысл и без него. —//А.Блох// ===== Словарь часто употребляющихся терминов ===== __Программозой__ — эра появления первых программистов. __Программазм__ — увлечение программированием нового начальника отдела программирования. __Депрограммизация__ — никто не программирует, кроме программистов, и все заняты делом. __Программизация__ — процесс, обратный депрограммизации. __Программаж__ — состояние сотрудников в период программизации. __Программариум__ — служебное помещение программистов. __Программодром__ — пространство, выделенное для свободного полёта математической мысли, обычно — место для курения в отделе программирования. __Программистика__ — совокупность доктрин, утверждающих иррациональную исключительность программирования вообще и необходимость свободного режима работы программистов в частности. __Программурка__ — кошка, обитающая в программариуме. __Программины__ — ритуал сдачи готовой программы. __Программулька__ — доза валерианки или другого напитка,принимаемая на программинах. __Надпрограммье__ — техническая документация на неработающую программу. __Программотека__ — коллекция макулатурных изданий, приобретённая за сданную во Вторсырье программную документацию. __Программиня__, __программисс__ — незамужняя программистка. __Суперпрограмма__ — программа, написанная во время варки супа. __Суперпрограммистка__ — автор суперпрограммы. __Суперпрограммист__ — человек, который под видом программирования отлынивает от домашних дел. __Программыня__ — жена суперпрограммиста. __Программушек__, __программушечка__ — дети программистов. ===== Ещё один весёлый словарик ===== \\ Главным образом он любил слова, обычно не встречающиеся в словарях. —//Г.Лихтенберг// Приходится констатировать, что наш отечественный словарь информатики и вычислительной техники сильно замусорен словами иностранного происхождения, чисто техническими или узкоцеховыми терминами, а то и просто жаргоном. За примерами далеко ходить не надо: программирование, информатика, компьютер, ассемблер, алгоритм, дамп, опция, интерфейс, драйвер — и так далее и тому подобное. Нами разработан оригинальный понятийный аппарат, который нагляден, образен и легко доступен для понимания. Предлагаем его Вашему вниманию. //Жевало// — устройство ввода перфокарт //Зависало// — операционная система //Запоминало// — ОЗУ //Казало// — дисплей //Крутило — запоминало// — диск //Моргало// — курсор //Нажимало// — клавиатура //Пробивало// — перфоратор //Рисовало// — графопостроитель //Ругало// — транслятор //Считало// — процессор //Ходило — приставало// — пользователь ---- [<>] {{tag>Humor msxbdpl}}