egorius: (Default)
[personal profile] egorius

Эдмонд Николау, «Введение в кибернетику»

Представим себе положение человека, которому излагается последовательность определений и не говорится, зачем они вводятся, для решения каких задач предназначены. Это хорошо знакомая всем ситуация — есть такой стиль изложения математических результатов.

— Виталий Кауфман, «Языки программирования»

Очередная древность (год издания оригинала — 1964), извлеченная на свет божий из пыльных недр Дальней Книжной Полки. Книга написана в стиле, суть которого ясно характеризует эпиграф; в очень сжатый объем автор постарался уложить основные положения областей науки, на которые распространялся интерес современной ему кибернетики. Результат неизбежен: известные вещи кажутся пройденными по верхам, неизвестные — остаются непонятными.

Зато теперь я лучше понимаю название своего факультета. С вычислительной математикой все было ясно, но где потерялась кибернетика (опять-таки см. эпиграф)? Так вот, чуть ли не все дисциплины — теория множеств, математическая логика, построение моделей, теория вероятностей, теория игр, собственно программирование, вычислительные методы, распознавание образов и нейронные сети на АСВК, лингвистические опыты АЯ... — все это в широком смысле и есть кибернетика.

А. Л. Брудно, Л. И. Каплан, «Московские олимпиады по программированию»

Довольно скоро все заметили, что удержать в голове схему достаточно сложной программы трудно. Поэтому стали рисовать блок-схему программы. ... Но программы становились все сложнее, а блок-схемы все больше и непонятнее. Разобраться во всех стрелках и линиях было уже почти невозможно. Однако мучились и разбирались. ... Последней надеждой были цветные карандаши. Но когда кончились цвета, мы пришли к Брудно. И он сказал:
— Не рисуйте больше блок-схем. Пишите блок-программы.
...
Блочная программа — это такая программа, где каждая самостоятельная ее часть выделена в отдельную подпрограмму. ... Сравните эту программу с блок-схемой... Между ними только одна разница: блок-схема состоит из нарисованных прямоугольников, а блок-программа из команд. То есть ее можно закодировать и ввести в машину.

— А. С. Кронрод, «Беседы о программировании»

Случайно заметил, что автором сборника является тот самый Александр Брудно, о котором я читал в «Беседах...» — он, как я понимаю, уже в конце 50-х нащупал идею структурного программирования. Книжка интересна не столько задачами (о, ностальгия: составьте программу), сколько сопровождающими их лекциями о программировании для школьников: перебор вариантов, случайные числа, рекурсия (рекурсий следует избегать: они замедляют выполнение программы), структурное программирование, история вычислительной техники.

Занятное суждение о структурном программировании, никогда не думал о нем с такой стороны:

Структурированное программирование возникло не позже конца пятидесятых годов и рассматривалось в печати уже в середине шестидесятых, но была серьезная причина, задержавшая распространение нового метода. При программировании снизу-вверх программистская квалификация требовалась от исполнителей, а руководитель мог быть администратором. При программировании же сверху-вниз руководитель должен быть квалифицированным программистом.

Но старую закалку-то не спрячешь. Вот приводится программа для алгоритма Евклида:

10 input m, n
20 goto 40
30 if m<n then n=n-m else m=m-n
40 if m<>n goto 30
50 print m
60 end

Только программист в машинных кодах может такое написать, не вывихнув мозг.

Некоторые считают, что структурированная программа, и даже язык программирования ... не должны содержать операторов перехода (подобных goto). ... Мы этого не считаем. Признавая, что излишние операторы переходов служат указанием на неряшливость или низкую квалификацию программиста и затрудняют проверку программы, мы, тем не менее, не запрещаем операторов перехода. Причина этого в том, что нарочитое избегание операторов перехода отдаляет программу от естественного алгоритма решения задачи, а употребление операторов перехода не является единственным способом написания плохих программ.

Соглашаясь с автором, не могу не отметить неряшливость или низкую квалификацию программистов, готовивших ответы на задачи и перетащивших все goto из Фортрана и Бейсика в Паскаль и Си. За такое программирование следовало бы отрывать руки.

Date: 2012-03-04 03:13 pm (UTC)
From: [identity profile] 18cc.livejournal.com
Я вот недавно заказал себе "Введение в кибернетику" Росса Эшби (http://www.ozon.ru/context/detail/id/4508260/).
Начну как только закончу читать "Programmer's Stone" (http://en.wikipedia.org/wiki/Programmer%27s_Stone).

Date: 2012-03-04 09:13 pm (UTC)
From: [identity profile] egorius.livejournal.com
Программистский камень, занятно. Надо будет посмотреть.

Date: 2012-03-04 03:22 pm (UTC)
From: [identity profile] n1919.livejournal.com
настоящие программисты научились вместо goto использовать raise/throw

Date: 2012-03-04 09:14 pm (UTC)
From: [identity profile] egorius.livejournal.com
Употребление операторов перехода не является единственным способом написания плохих программ (:

Date: 2012-03-05 08:57 am (UTC)
From: [identity profile] hardsign.livejournal.com
Единственным способом программирования на Бейсике является извращение (ъ)

Date: 2012-03-06 09:32 pm (UTC)
From: [identity profile] egorius.livejournal.com
Три слова лишние, ага.

Date: 2012-03-04 05:34 pm (UTC)
From: [identity profile] pigdeon.livejournal.com
Кибернетика, в исходном определении Н.Винера, - это "наука об управлении и взаимодействии (частей) в живой природе и машинах".
CYBERNETICS••• Cybernetics, in its purest definition, is the science of control and communication in the animal and the machine. The word was devised by Norbert Wiener in the 1940s and is derived from the Greek word kybernetes , meaning "steersman." In his book The Human Use of Human Beings (1950)

Date: 2012-03-04 09:16 pm (UTC)
From: [identity profile] egorius.livejournal.com
Ну, мало что в исходном. Исходное определение как раз и не отвечает на вопрос о названии факультета.

Date: 2012-03-04 06:21 pm (UTC)
From: [identity profile] mr-parson.livejournal.com
по легенде, Кибернетика в ВМК появилась, когда Тихонов захотел добавить "красивое слово, значение которого все равно никому не известно".

А Каплан у меня семинары по паскалю в школе вел. Не напомнишь его полное имя-отчество? к стыду своему забыл.

Date: 2012-03-04 09:05 pm (UTC)
From: [identity profile] egorius.livejournal.com
О как!
Лев Исаакович.

Profile

egorius: (Default)
egorius

September 2025

M T W T F S S
1234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 16th, 2026 09:37 am
Powered by Dreamwidth Studios