книги из ГПНТБ / Шор, И. Я. Пять бесед о вычислительной технике
.pdfсутствующих только глазело на это |
манды для выполнения арифмети |
||||||||||||
прекрасное устройство,... юная мисс |
ческих и логических операций, опе |
||||||||||||
Байрон разобралась в принципе его |
раций передачи информации, управ |
||||||||||||
работы и оценила его красоту»,-— |
ления. |
|
|
|
|
|
|||||||
вспоминает в своих мемуарах не |
Попытаемся составить |
программу |
|||||||||||
кая миссис де Морган. |
|
|
на машинном |
языке для |
решения |
||||||||
В названной |
уже |
единственной |
простого примера |
|
|
|
|
||||||
публикации |
Ады |
Лавлейс |
четко |
|
|
х у |
|
|
|
||||
сформулированы |
принципы |
постро |
|
z |
|
|
|
||||||
|
= —— |
|
|
|
|||||||||
ения команд программы («... необ |
|
|
л - |
+ у |
|
|
|
||||||
ходимо строго различать операции, |
|
|
|
|
|
|
|
||||||
объекты, над которыми операции со |
Но |
предварительно |
проследим, |
||||||||||
вершаются, и результаты опера |
как |
решит его |
школьник |
по |
дей |
||||||||
ций»), подняты вопросы об эконо |
ствиям: |
значение |
числителя |
||||||||||
мии рабочих ячеек памяти, да и сам |
1) |
найдет |
|||||||||||
термин «рабочие ячейки» введен ею. |
дроби ху, |
знаменатель |
дро |
||||||||||
|
|
|
|
|
|
|
2) |
определит |
|||||
Язык цифр |
|
|
|
|
|
|
би х+у; |
|
|
|
|
|
|
|
|
|
|
|
|
3) вычислит частное от деления |
|||||||
Ада Лавлейс предложила первую |
результата первого действия на ре |
||||||||||||
зультат второго. |
|
|
|
|
|||||||||
разновидность |
языка |
для общения |
Перейдем к машинному языку. |
||||||||||
с машиной — так |
называемый |
ма |
ЭВМ не понимает, что |
такое х, у, г. |
|||||||||
шинный язык. Он состоит из команд, |
Необходимо как бы «выписать ордер |
||||||||||||
понятие о которых было дано выше. |
на проживание» исходных |
данных |
|||||||||||
В распоряжении |
программиста |
це |
.г и у, результатов |
промежуточных |
|||||||||
лая система |
таких |
команд— |
ко |
действий (х+ у) и ху и окончатель- |
ного результата z в ячейках памяти |
Первая |
команда дает |
инструк |
||||||||||||||||
с адресами, которые не заняты. |
цию: |
сложить |
(01 — код |
операции |
|||||||||||||||
Например: |
|
|
|
|
|
сложения) |
содержимое ячеек |
0016 |
|||||||||||
|
|
|
|
|
и 0017 (т. е. х |
и у) |
и результат |
за |
|||||||||||
х «проживает» в ячейке по адресу 16 |
писать по адресу |
0019. Вторая |
ко |
||||||||||||||||
|
|
|
|
|
|
|
|
17 |
манда: разделить |
(04 — код |
опера |
||||||||
У |
|
|
n |
n |
|
п |
|
ции |
деления) |
содержимое |
ячейки |
||||||||
-V У |
|
|
и |
II |
|
я |
|
18 |
0018 (т. е. ху) |
на содержимое ячей |
|||||||||
X -|- У |
|
|
и |
и |
|
и |
|
19 |
ки с адресом 0019 |
(т. е. х+у) |
и ре |
||||||||
S |
|
u |
n |
n |
|
|
|
20 |
зультат запомнить в ячейке по адре |
||||||||||
Для |
выполнения |
первого |
деист- |
су 0020. |
|
решения приведенного |
|||||||||||||
вня запишем команду: |
|
|
|
Итак, для |
|||||||||||||||
|
|
|
примера на трехадресной ЭВМ необ |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
03 |
0016 |
0017 |
0018 |
|
ходимы три команды. Когда их вво |
||||||||||||
|
|
|
дят (например, |
печатают на машин |
|||||||||||||||
Мы уже знаем, . |
что процессор |
||||||||||||||||||
ке), то они записываются |
в ячейки |
||||||||||||||||||
ЭВМ |
выполнит |
ее |
так: |
содержи |
оперативного |
|
запоминающего |
ус |
|||||||||||
мое ячейки с адресом 0016 |
(т. е. х) |
тройства, |
адрес первой из которых |
||||||||||||||||
умножит |
(03 — код операции умно |
задает оператор в |
специальной |
ко |
|||||||||||||||
жения) на содержимое ячейки 0017 |
манде ввода. Если он указал |
|
100-ю |
||||||||||||||||
(т. е. у) |
и результат операции запи |
ячейку, то три команды запишутся |
|||||||||||||||||
шет в ячейку по адресу 0018. |
в 100, 101-ю и 102-ю ячейки. |
|
|
эти |
|||||||||||||||
Второе и |
третье действия |
маши |
Процессор |
будет выполнять |
|||||||||||||||
на выполнит по командам:10 |
|
|
команды |
в |
естественном |
порядке |
|||||||||||||
|
01 |
|
0016 |
|
0017 |
|
0019 |
их следования. В системе команд |
|||||||||||
|
|
|
|
ЭВМ |
имеются |
и такие, которые поз |
|||||||||||||
|
04 |
|
С018 |
|
0019 |
|
0020 |
воляют программисту нарушить |
ес |
71
тественный порядок их выполнения. ЭВМ решила задачу, но ответ она не отпечатает, если в 103-й ячейке па мяти не поместить команду вывода на печать содержимого ячейки 0020. Составление программы на ма шинном языке — дело кропотливое, хотя стремление создать возможно более короткую программу для слож ной задачи вызывает обычно спор тивный азарт. Стремление сокра тить время программирования при вело к созданию комплекса про грамм, облегчившего труд програм миста и называемого математичес ким обеспечением. Простейшая его
разновидность — стандартные про |
|
граммы |
(вычисление элементарных |
функций, |
решение алгебраических |
уравнений, вычисление определен ных интегралов, решение диффе ренциальных уравнений и пр.). Час
то стандартные программы |
поме |
щаются в п о с т о я н н у ю |
п а |
м я т ь ЭВМ, отличающуюся от опе ративной тем, что из нее можно только читать.
Преимущество стандартных про грамм легко понять из такого при мера.
Пусть задана система линейных алгебраических уравнений:
яиЛ'| + a12-VTo+ |
. |
. . |
+ a lnx ll = b[, |
|||
^21-Н |
<*22*2 "Ь |
. |
. . |
4“ |
п ^ п |
— Ь о, |
< * „ 1 * 1 |
" 1 " < * / | 2 * 2 Ь |
. |
. . |
+ |
С1ппХ п |
Ьп- |
Для ее решения |
|
достаточно |
отпе |
чатать на машинке коэффициенты я и,
й12, . . . , й[„, blt a<i[, а22, . . . , я2„"
b'ii. . . , |
^*//2» . . . |
1 |
^п1бук |
вы „су" |
(машина |
поймет это как |
обращение к стандартной программе решения системы линейных алгебраи ческих уравнений) и ответить на воп рос ЭЦВМ „п = “? („какой порядок системы уравнений?"). После этого ЭЦВМ отпечатает результат решения.
— числовые значения х и х 2, . . .. х п Укажем, что малой ЭЦВМ «Наи- рп-К» но плечу такая система из 28
уравнений.
72
|
|
ЭВМ понимает русские слова |
ЭВМ, мигая глазами-лампочками, |
||||||||
|
А как быть, если необходимо про |
тут же «отвечает»: |
|
|
|||||||
|
23 2 1975 г 1 «напри». |
1975 года, |
|||||||||
извести расчеты по громоздким фор |
(«Сегодня, 23 февраля |
||||||||||
мулам, да еще многократно, для раз |
вы первый |
обращаетесь ко мне. Я |
|||||||||
ных исходных данных, а с програм |
к вашим услугам»). |
|
|
||||||||
мированием |
Вы не |
знакомы? На |
«1 до» — печатает человек даль |
||||||||
помощь |
приходит |
автоматическое |
ше. «Напри» сразу же понимает его |
||||||||
программирование. |
|
|
и сама заканчивает мысль, быстро |
||||||||
|
....Перед нами ЭВМ кабинетного |
допечатывая «допустим» |
до конца. |
||||||||
типа. |
Это первая в |
СССР машина |
Читаем |
первую строку |
програм |
||||||
с |
автопрограммированием —■«Нап |
мы: |
|
|
|
||||||
ри». |
За |
пишущей машинкой сидит |
1 допустим д:=0,1 |
|
|||||||
человек, в руках у него лист бума |
|
|
|
|
|||||||
ги |
с |
труднообозримой |
формулой. |
«2 вы» — печатает |
оператор, «чис |
||||||
Проследим со стороны за его дей |
лим»— добавляет |
ЭВМ, |
подтвер |
||||||||
ствиями. |
|
|
|
клавиши |
ждая, что рабочий контакт нала |
||||||
|
Человек нажимает две |
жен. Напряженно вглядываясь в |
|||||||||
пишущей машинки. Читаем отпеча |
символы своей формулы на листе, |
||||||||||
танное: |
|
|
|
|
человек печатает ее. Вторая строч |
||||||
|
|
|
|
ап |
|
|
ка программы готова: |
|
|||
|
|
|
|
|
|
2 вычислим |
у = 385л3(ехр(— 8,6л:))/ |
||||
(в свободном |
переводе это означает: |
||||||||||
1(хп— 1,3* -I- 2,5). |
|
|
|||||||||
«Не откажите в любезности гово |
|
|
|||||||||
|
|
|
|
||||||||
рить со мной на языке автопрограм |
Далее на бумагу красивым шрифтом |
||||||||||
мирования») . |
|
|
|
ложатся строки: |
|
|
3 печатаем с 5 знаками х у
4 вставим х = х 4- 0,1
5 если л*<1,25 идти к 2 ■6 кончаем
исполним 1
Снова просмотрим строки про граммы: это не что иное, как крат кая запись на русском языке ин струкции машине. Машине предло жено д о п у с т и т ь , что л:= 0,1, н при этом значении х в ы ч и с л и т ь (/по формуле. Третий пункт велит о т п е ч а т а т ь с 5 знаками значение х и полученное в результате вычислении
значение у. |
После печати резуль |
тата ЭВМ |
предписано в с т а в и т ь |
х равным прежнему плюс 0,1 (уве личить х на 0,1),и е сли это значе ние х еще по-прежнему меньше за данного числа 1,25, то и д т и ко 2-й строке инструкции (повторить вы числение) .
Вычислив значение 1/прих=0,2, ЭВМ отпечатает эти значения хм у, а затем в с т а в и т значение х = 0,3 и т. д. Наконец, при х = 1,3, убедив
шись, что неравенство в пятой стро ке программы не выполняется, «Напри» не вернется к строке 2, а приступит к выполнению шестой строки — к о н ч и т вычисления.
Пока мы беседовали о програм ме, на бумагу легли аккуратно отпе
чатанные |
столбиком |
значения (/для |
||
Л'= 0,1; 0,2; 0,3; п т. д. |
до 1,2. |
|
||
Достаточно ввести |
в |
программу |
||
еще две строки со словами |
«х р а - |
|||
н и м » и |
« н а ч е р т и м |
», |
чтобы |
|
ЭВМ выбрала удобный |
масштаб и |
отпечатала по точкам график задан ной функции.
Каким же образом достигается такая простота общения с ЭВМ? Благодаря специальной программе, которая автоматически переводит привычные для нас слова и матема тические символы иа понятный ма шине язык цифр. Однако возмож ности автопрограммировання огра ничены. При составлении сложных алгоритмов используются универ сальные алгоритмические языки.
74
|
|
|
Язык для алгоритмов |
значенных для описания алгорит |
||||||||||
Бесконечные. полчища цифр на |
мов. Девиз алгоритмических языков |
|||||||||||||
достоин математиков: «То, |
что во |
|||||||||||||
перника мучили is кошмарных снах |
обще может быть сказано, |
может |
||||||||||||
не одного программиста, составляв |
быть сказано ясно, а о чем невоз |
|||||||||||||
шего сложные программы на ма |
можно |
говорить — о |
том |
|
следует |
|||||||||
шинном языке. Если на первых по- |
молчать». |
|
|
|
|
языков |
||||||||
цах программист получал |
радость |
Один из первых удачных |
||||||||||||
от общения с машиной на ее языке, |
такого |
рода — ФОРТРАН, |
|
детище |
||||||||||
то с усложнением задач труднообоз |
американской фирмы IBM. Из-за |
|||||||||||||
римые колонки цифр стали прегра |
своей |
простоты и несложности транс |
||||||||||||
дой общения даже между специа |
ляторов (автоматических перевод |
|||||||||||||
листами, оказались весьма неудоб |
чиков на машинный язык) |
это и се |
||||||||||||
ными для |
публикации |
и |
обучения |
годня |
наиболее |
распространенный |
||||||||
(тем более, что разные ЭВМ имели |
язык, особенно в западных странах. |
|||||||||||||
отличные друг от друга машинные |
Через несколько лет после ФОРТ |
|||||||||||||
языки), служили причиной ошибок. |
РАНА, в 1960 году, Международная |
|||||||||||||
А ошибки в программе обходятся |
конференция |
в |
Париже |
приняла |
||||||||||
порой весьма дорого. Так, из-за про |
универсальный |
язык |
АЛГОЛ-60, |
|||||||||||
пуска |
одного |
знака |
в программе |
признанный удобным |
средством |
ре |
||||||||
пришлось |
подорвать |
космическую |
шения |
задач |
вычислительного |
ха |
||||||||
ракету стоимостью около 20 млн. |
рактера. Он удобен также для пуб |
|||||||||||||
долларов, стартовавшую в 1962 го |
ликации |
алгоритмов |
и |
обучения |
||||||||||
ду с мыса Кеннеди (США) к Венере. |
программированию. |
|
|
|
|
|||||||||
Недостатки |
машинных |
языков |
В 1968 году коллективом ученых |
|||||||||||
привели |
к |
созданию |
универсаль |
разработан международный универ |
||||||||||
ных искусственных языков, |
предна |
сальный |
алгоритмический |
язык |
75
АЛГОЛ-68. При решении экономи |
люстрирует способность |
человечес |
||||||||||
ческих задач хорошо зарекомендо |
кого мозга отрабатывать одновре |
|||||||||||
вал |
себя |
предложенный |
фирмой |
менно ряд мыслей. Аналогичная |
||||||||
IBM язык КОБОЛ. Существует еще |
способность |
обрабатывать |
инфор |
|||||||||
целый ряд языков (ДЖОВИАЛ, |
мацию но |
нескольким программам |
||||||||||
АЛЬФА, АЛКОПОЛ, СНОБОЛ, |
в вычислительной технике получила |
|||||||||||
АПЗ, |
ЛИСП и другие). |
|
название |
мультипрограммирования. |
||||||||
|
|
|
|
|
Зачем нужен такой |
режим |
работы |
|||||
|
|
|
|
|
ЭВМ? |
|
|
|
|
|
|
|
Несколько |
программ |
одновременно |
При быстродействии современных |
|||||||||
машин нежелателен даже секунд |
||||||||||||
...Черный «Мерседес» мчится по |
ный простой не только самой ЭВМ, |
|||||||||||
но и отдельных ее |
устройств. |
На |
||||||||||
дороге к швейцарской границе. За |
пример, |
простаивает арифметичес |
||||||||||
рулем — штандартенфюрер |
Штир |
кое устройство при вводе информа |
||||||||||
лиц. Пастор Шлаг старательно, пы |
ции с перфокарт. При работе же в |
|||||||||||
таясь не упустить ни одной детали, |
режиме |
мультипрограммирования |
||||||||||
повторяет |
содержание |
порученного |
во время ввода исходных данных по |
|||||||||
ему задания. Пастору кажется, что |
одной |
программе |
арифметическое |
|||||||||
Штирлиц не слушает его. Штирлиц |
устройство может вести |
обработку |
||||||||||
и в самом деле думает о |
другом, |
информации |
согласно |
фрагменту- |
||||||||
его мысли заняты судьбой операции, |
второй программы. |
|
|
ЭВМ ис |
||||||||
выполняемой Плейшнером. Но ког |
На |
многопрограммных |
||||||||||
да пастор ошибается, |
Штирлиц тут |
пользуется и |
другой режим — раз |
|||||||||
же поправляет его... |
|
|
деление времени. Ряд пользовате |
|||||||||
Этот эпизод из фильма «Семнад |
лей ЭВМ одновременно |
вводят |
ин |
|||||||||
цать мгновений весны» хорошо ил |
формацию в |
машину с |
выносных |
76
пультов (например, телетайпов). ЭВМ выполняет ряд программ по следовательно маленькими порци ями. В связи с большим быстродей ствием машины у каждого пользова теля создается впечатление, что он имеет отдельную машину с достаточ но большой памятью и быстродей ствием.
* * *
Вы познакомились с устройством и работой электронных цифровых вычислительных машин.
Поговорим теперь о машинах дру гого типа — вычислительных маши
нах непрерывного принципа дей ствия.
Беседа третья
ОБ АНАЛОГИИ И АНАЛОГОВЫХ ВЫЧИСЛИ ТЕЛЬНЫХ МАШИНАХ
Можно ли, не выходя из стен ла боратории, без корабля и без моря синтезировать и исследовать при разных навигационных условиях систему автоматического управле ния курсом — авторулевой? А раз работать для нового самолета, су ществующего пока лишь в чертежах, автоматическую систему •— автопи лот, обеспечивающую высокие дина мические свойства при полете?
Положительно ответить на эти во просы помогает аналогия явлений в природе, о которой В. И. Ленин го ворил: «Единство природы обнару живается в «поразительной анало гичности» дифференциальных урав нений, относящихся к разным об ластям явлений».
Дифференциальные уравнения — это та основа, на которой базиру ется идея аналоговой вычислитель ной машины (АВМ). И тем не менее
78
в'настоящей, беседе мы попытаемся дать основные понятия об АВМ и построить модель движения, lit1 ис пользуя аппарат дифференциальных уравнений, а исходя только из ши роко известных каждому аналогий в окружающем нас мире.
Сила аналогии
~ Мама, мама, паровоз купа ется!— закричала маленькая Ляля, увидев впервые в жизни пароход. Этот и ряд других эпизодов из кни ги Корнея Чуковского «От двух до пяти» убедительно показывают, как на пути к познанию человек с дет ства призывает себе на помощь ана логию. Пусть порой ложную, осно ванную. на ассоциациях по случай ному признаку, но безусловно важ ную в развитии мировоззрения.
Аналогией пользуются все. Она нужна поэту: аналогия усиливает наше восприятие создаваемых им образов.
Ей лет четырнадцать; ее глаза Как на сережке пара спелых
вишен.; Она тонка, легка, как стрекоза; И в голосе ее трав шелест слышен.
(Валерий Брюсов)
Когда на бледном лбу горят лучом румяным Вечерних люстр огни, как солнеч
ный рассвет...
(Шарль Бодлер)
Аналогию используют в медицине: действие лечебных препаратов ис пытывают на животных, а затем применяют их для лечения челове ка, предполагая аналогичное дей ствие.
Аналогию призывает на помощь конструктор, придавая подводной лодке обтекаемую форму рыбы, а самолету — форму птицы.
Аналогия дала жизнь многим на учным открытиям. Так, Ом открыл
79