Trokhimenko et al., Programmable Microcalculators: Design and Use (1990, in Russian)
ПРОГРАММИРУЕМЫЕ
МИКРО-
КАЛЬКУЛЯТОРЫ
Устройство
и
пользование
Под редакцией Я. К. Т Р О Х И М Е Н К О
01dPC.su
МОСКВА , 5 0 6 1
«РАДИО И СВЯЗЬ»
1900 музей компьютеров
ББК 32.97
П78
УДК 681.31
А в т о р ы : Я. К. Трохименко, В. П. Захаров,
Н. П. Ромашко, В. А. Жижко, Ю. М. Польский
Рецензент докт. техн. наук. проф. В. П. Дьяконов
Редакция литературы по информатике
и вычислительной технике
Программируемые микрокалькуляторы: Устройство
П78 и пользование / Я. К. Трохименко, В. П. Захаров, Н. П.
Ромашко и др.; Под ред. Я. К. Трохименко. — М.: Радио
и связь, 1990. — 272 е., ил.
ISBN 5-256-00318-6.
Описаны структура, архитектура, элементная база и операцион-
ное программное обеспечение массовых программируемых микро-
калькуляторов (ПМК) серии «Электроника» (МК-46, МК-64, БЗ-34.
БЗ-54, МК-56, МК-54, МК-61, МК-52), а также перспективные ПМК
«Электроника-85» и «Электроника МК-72» и тенденции их дальней-
шего совершенствования. Рассмотрены особенности программирова-
ния ПМК, даны рекомендации по оптимизации программ, оценке
погрешностей вычислений н другие полезные сведения.
Для пользователей п разработчиков ПМК, а также специалистов,
использующих элементную базу ПМК.
„ 2404060000-010
П 145-90 ББК 32.97
046(01)-90
ISBN 5-256-00318-6 © Трохименко Я. К., Захаров В. П.,
Ромашко Н. П. и др., 1990
ПРЕДИСЛОВИЕ
Программируемые микрокалькуляторы (ПМК) завоевали призна-
ние широкого круга пользователей в учебных заведениях и различных
отраслях народного хозяйства как достаточно мощные индивидуаль-
ные вычислительные устройства, обеспечивающие возможность реше-
ния повседневных задач практически в любых условиях. В связи с про-
стотой эксплуатации, надежностью и низкой стоимостью машинного
времени ПМК незаменимы во всех случаях, когда решение задачи на
ЭВМ большей производительности экономически нецелесообразно или
практически неприемлемо.
Решение разнообразных задач с помощью ПМК рассмотрено в ряде
книг [1, 2, 5, 6, 8, 14—27| и других публикациях. В настоящей книге
кроме общих сведений о ПМК, освоенных промышленностью, достаточ-
но подробно описаны особенности их структуры, элементной базы, ар-
хитектуры, прикладного программирования и перспектив развития.
Эти сведения представляют интерес для пользователей, стремящихся
расширить свои знания о ПМК для их более эффективного использова-
ния, а также для многочисленных радиолюбителей и специалистов раз-
личного профиля, которые могут применять достаточно надежную, ма*-
логабаритную и недорогую элементную базу ПМК для создания раз-
личных вычислительных или управляющих устройств.
Авторы книги стремились изложить материал на уровне предпола-
гаемого круга читателей, ограничивая число используемых терминов и
давая их определения. Насколько удачным окажется выбранный стиль
изложения, могут судить читатели, все замечания которых будут с
благодарностью приняты авторами.
Глава 1
ОСНОВНЫЕ ОСОБЕННОСТИ ПРОГРАММИРУЕМЫХ
МИКРОКАЛЬКУЛЯТОРОВ
1.1. ЭВМ И МИКРОКАЛЬКУЛЯТОРЫ
Одной из основных характеристик ЭВМ является производитель-
ность, которая определяется емкостью памяти, обеспечивающей реше-
ние сложных задач без разбиения на более простые, а также быстродей-
ствием стандартных операций внутреннего обмена информацией. Про-
изводительность зависит от трудовых или эквивалентных денежных за-
трат на разработку, изготовление и применение ЭВМ. Практически их
оценивают по стоимости часа машинного времени, равной отношению
всех затрат на приобретение и эксплуатацию ЭВМ к числу часов ее ра-
боты за период амортизации. Стоимость машинного времени ЭВМ при-
мерно пропорциональна ее производительности.
Экономическая эффективность использования ЭВМ повышается при
специализации. Поэтому созданы универсальные ЭВМ, предназначен-
ные для решения разнообразных задач обработки информации по легко
сменяемым прикладным программам, и специализированные, предназ-
наченные в основном для управления производственными и другими
процессами. Применение ЭВМ определенной производительности эконо-
мически оправдано лишь в том случае, если рассматриваемую задачу
нельзя решить с меньшими затратами на ЭВМ меньшей производитель-
ности или без применения ЭВМ.
В связи с экономическими требованиями в каждом поколении созда-
ются ЭВМ различной производительности — от суперЭВМ, предназ-
наченных для решения наиболее сложных задач, до простейших ЭВМ
с минимальной стоимостью машинного времени. Так, еще в первом
(ламповом) поколении наряду с ЭВМ относительно высокой производи-
тельности были созданы настольные ЭВМ, предназначенные для авто-
матизации выполнения арифметических операций над числами по ко-
мандам, подаваемым нажатием клавиш. Такие ЭВМ в соответствии с их
назначением были названы калькуляторами *.
'Следует отметить, что английские глаголы to compute и to calculate оди-
наково переводят на русский язык — считать, рассчитывать, вычислять, но
второй из этих глаголов (связанный с латинским словом calculus, обозначавшим
в
древнем Риме «счетный камешек») по смыслу ближе к слову «считать». Кстати,
4
Во втором (транзисторном) поколении появились настольные каль-
куляторы, названные электронными клавишными вычислительными
машинами (ЭКВМ), которые вычисляли и элементарные функции.
Важное значение имело создание программируемых ЭКВМ, выполняв-
ших вычисления по прикладным программам, предварительно введен-
ным в память. Характерными их особенностями являлись одностроч-
ный индикатор для отображения результатов вычислений в виде от-
дельных чисел, ограниченная емкость памяти и отсутствие накопителей
информации для длительного хранения.
Разработка микросхем с большой степенью интеграции (число эле-
ментов на единицу площади кристалла) — БИС обусловила возмож-
ность существенного уменьшения размеров и повышения производи-
тельности ЭВМ. Эти возможности могли быть реализованы в первую
очередь при изготовлении ЭКВМ в связи с их относительной просто-
той и, следовательно, большей гибкостью производства. Поэтому впер-
вые массовое применение БИС и началось в производстве малогаба-
ритных ЭКВМ.
Одна из наиболее крупных в мире производителей малогабаритных
ЭВМ фирма Hewlett-Packard (США) в 1972 г. приступила к серий-
ному выпуску миниатюрных непрограммируемых ЭКВМ, получивших
название карманных калькуляторов или микрокалькуляторов, а уже
в следующем году начала серийное производство карманных програм-
мируемых микрокалькуляторов (ПМК).
Создание микрокалькуляторов знаменовало появление принципи-
ально нового класса носимых вычислительных средств. Массовое про-
изводство непрограммируемых и особенно программируемых микро-
калькуляторов обеспечило возможность автоматизации широкого кру-
га повседневных вычислительных задач и существенного повышения
производительности труда их пользователей. При этом ПМК, как и на-
стольные программируемые ЭКВМ, отличаются от универсальных
ЭВМ других классов в основном лишь малой производительностью,
связанной с низкой стоимостью машинного времени. Последнее
обстоятельство определяет и экономически оправданную область при-
менения ПМК — относительно несложные вычислительные задачи,
решение которых на универсальных ЭВМ других классов связано с
большими затратами вследствие большей стоимости машинного вре-
мени и затратами рабочего времени пользователя на доступ к ЭВМ и
ожидание результата решения задачи.
В соответствии с назначением ПМК основным требованием является
низкая стоимость, обеспечивающая доступность широкому кругу поль-
зователей. Это требование приводит к жестким ограничениям на ап-
паратурные затраты, определяемые количеством и стоимостью микро-
схем. Так как стоимость микросхем зависит от их технологии, то в
в отечественной литературе первые ЭВМ называли электронными счетными ма-
шинами (что сохранилось в названиях ЭВМ серии БЭСМ), хотя, строго говоря,
их следовало назвать логическими машинами, так как автоматизация вычисле-
ний основана на логических операциях.
5
ПМК первых поколений, как правило, использовались микросхемы,
изготовленные по относительно недорогой МОП-технологии. Дальней-
шее развитие полупроводниковой технологии привело к существен-
ному снижению стоимости микросхем при их массовом изготовлении.
Поэтому в наиболее совершенных и дорогих ПМК стали использовать
микросхемы, изготовленные по другим технологиям, и в первую оче-
редь по КМОП-технологии, особенностью которой являются дополни-
тельные (комплементарные) транзисторные структуры с различным ти-
пом проводимости. Микросхемы, изготовленные по этой технологии,
хотя и дороже микросхем, изготовленных по МОП-технологии, но
имеют большее быстродействие и потребляют значительно меньше энер-
гии. Последнее особенно существенно для носимых ПМК с автономным
питанием от аккумуляторов или сухих элементов.
Повышение степени интеграции микросхем обеспечило также соз-
дание полупроводниковых запоминающих устройств (ЗУ) большой ем-
кости и энергонезависимых ЗУ, сохраняющих информацию при выклю-
ченном питании. Это позволило значительно расширить емкость памя-
ти ПМК и комплектовать их встроенными или внешними накопителя-
ми информации на микросхемах, а также сменными модулями для по-
стоянного или временного хранения информации. В карманных ПМК
широкое применение нашли также экономичные жидкокристалличе-
ские индикаторы (ЖКИ).
Развитие ПМК связано с совершенствованием ЭВМ других классов.
С разработкой микропроцессорных наборов (комплектов совместно ра-
ботающих микросхем) упростилось создание прежде всего недорогих
управляющих микроЭВМ (микроконтроллеров). Так как управляемые
физические величины нельзя измерить с большой точностью, то быст-
родействие контроллеров повышают, обрабатывая небольшие порции
информации (слова) и используя упрощенные вычислительные про-
цедуры. Такие управляющие ЭВМ с «короткими» словами и процеду-
рами получили название мини-ЭВМ, непосредственно не связанное
вопреки существующему мнению с размерами ЭВМ. Простейшие мини-
ЭВМ собирают из микропроцессорных наборов или изготовляют в виде
однокристальных БИС (используемых и в ПМК), называемых иногда
микромини-ЭВМ — первый префикс (микро) указывает на технологию
изготовления, а второй (мини) — на особенности обработки информа-
ции.
Развитие микроэлектроники повлияло и на развитие универсаль-
ных ЭВМ высокой производительности. Стационарные ЭВМ этого клас-
са в связи с высокой стоимостью машинного времени окупаются лишь
при практически непрерывном решении достаточно сложных задач.
Поэтому такие ЭВМ первых поколений работали в пакетном режиме,
при котором последовательно решаются задачи по заранее заготовлен-
ному и отлаженному запасу (пакету) программ.
При работе в пакетном режиме отдельные задачи решаются быстро,
но время ожидания очереди может оказаться большим. Поэтому в сов-
ременных стационарных ЭВМ высокой производительности использу-
ь
ют режим разделения времени между множеством устройств ввода-вы-
вода информации — терминалами. Еще более эффективными оказались
иерархические вычислительные системы с центральной ЭВМ высокой
производительности и «интеллектуальными» терминалами в виде ЭВМ
меньшей производительности, которые, в свою очередь, могут работать
с несколькими терминалами пользователей. Развитием таких иерархи-
ческих систем явились сети ЭВМ различной производительности с об-
меном информацией по линиям связи, которыми при определенных ус-
ловиях могут служить телефонные или телеграфные линии.
Максимальная эффективность иерархических вычислительных сис-
тем достигается при возможности обращения пользователя к терми-
нальной ЭВМ с достаточно низкой стоимостью машинного времени и
достаточной мощностью для решения большинства задач пользовате-
ля, который при необходимости решения более сложной задачи может
обратиться через сеть к ЭВМ большей производительности.
Внедрение БИС, обеспечившее существенное повышение производи-
тельности настольных ЭКВМ и миниатюризацию универсальных ЭВМ
высокой производительности, привело к разработке индивидуальных
ЭВМ, которые могут использоваться и в качестве терминалов вычисли-
тельной сети. В зависимости от производительности, стоимости и наз-
начения такие микроЭВМ, получившие название персональных ЭВМ
(ПЭВМ), можно условно разделить на профессиональные, конторские
или учрежденческие, бытовые и карманные.
Профессиональные ПЭВМ (например, ЕС-1840, ЕС-1841, «Нейрон
И9.66», «Электроника-85»), предназначенные для решения наиболее
сложных задач квалифицированными специалистами, по производи-
тельности не уступают многим стационарным универсальным ЭВМ вы-
сокой производительности третьего поколения. Они снабжены ком-
плектом достаточно совершенных внешних устройств, включая нако-
пители информации большой емкости на жестких магнитных дисках,
печатающие устройства и графопостроители для документирования
результатов обработки информации, цветные или монохроматические
мониторы на электронно-лучевой трубке для отображения текстов при-
кладных программ, результатов диагностирования работы, а также ре-
зультатов обработки информации в алфавитно-цифровой или графиче-
ской форме.
Конторские или учрежденческие ПЭВМ (например, ДВК-2, «Элект-
роника ДЗ-28»), предназначенные для решения более простых задач
обработки информации и обучения основам программирования в учеб-
ных заведениях, комплектуются менее дорогими внешними устройст-
вами (в частности, накопителями информации на мягких магнитных
дисках или магнитной ленте) и по стоимости значительно отличаются
от профессиональных ПЭВМ.
Бытовые ПЭВМ (например, ПК-1 или БК-0010) предназначены
для использования в основном в домашних условиях совместно с бы-
товыми телевизором в качестве многострочного монитора и магнито-
фоном в качестве накопителя информации большой емкости. Такие
ПЭВМ обычно конструктивно оформляются в виде плоской коробки с
клавиатурой и разъемами для присоединения внешних устройств, ком-
плект которых, кроме бытовых приборов, может дополнительно со-
держать различные приспособления для преобразования и отображе-
ния информации.
Малогабаритные носимые (карманные) ПЭВМ по назначению сов-
падают с ПМК и чаще всего отличаются от них многострочным жидко-
кристаллическим индикатором и особенностями программного предста-
вления способа решения задачи. Однако по мере совершенствования
ПМК эти различия практически стерлись. Более того, на элементной
базе карманных ПМК разработаны настольные с разъемами для присое-
динения бытовых телевизора и магнитофона, являющихся отличитель-
ной особенностью большинства бытовых ПЭВМ.
Таким образом, уже сейчас нельзя провести четкую границу между
ПМК и простейшими ПЭВМ. В некоторых случаях различия между
ними связаны с использованием микропроцессорных наборов для
ПЭВМ и заказных БИС для ПМК, но все больше малогабаритных
ПЭВМ собираются на заказных БИС, в связи с чем н это различие сти-
рается. По этой причине многие малогабаритные ПЭВМ называют про-
граммируемыми микрокалькуляторами, и в будущем, вероятно, это
название сохранится за всеми малогабаритными ПЭВМ. Во всяком слу-
чае распространенное сокращение ПМК в равной мере приме'.имо как
к программируемым микрокалькуляторам, так и к персональным мик-
рокомпьютерам, внешне отличающимся в основном лишь входными
языками.
1.2. ОСОБЕННОСТИ ВХОДНЫХ ЯЗЫКОВ
Решение на ЭВМ любой задачи преобразования информации воз-
можно лишь после ее решения человеком и описания им способа реше-
ния задачи программой работы ЭВМ, составленной на «понятном» ма-
шине языке. Способ решения задачи отображают алгоритмом, состоя-
щим из последовательности описаний операций, приводящих к иско-
мому результату. Алгоритм представляют словесно-формульными опи-
саниями, схемами и программами.
Словесно-формульное описание алгоритма состоит из последователь-
ности однозначных словесно-формульных описаний отдельных опера-
ций (шагов алгоритма), обозначаемых порядковыми номерами. Описа-
ния операций в общем случае называют предписаниями, инструкциями
или операторами (правилами выполнения операций, обозначенными
специальными символами). Несмотря на разнообразие операций, вы-
полняемых при решении прикладных задач, все их описания относятся
к одному из двух основных типов операторов — присваивания или ус-
ловных переходов.
Операторы присваивания, отображающие операции с однозначным
результатом, описывают формулой
«пусть / : -- Л».
8
В арифметических (вычислительных) операторах присваивания симво-
лом / отображают имя (идентификатор) переменной, значение кото-
рой после выполнения операции равно числу А, значению перемен-
ной А или результату вычислений по выражению Л. Символ присваива-
ния : - часто заменяют знаком равенства, который в этом случае озна-
чает «равно после выполнения операции» *. Так, арифметический опе-
ратор «пусть х - х—1» означает, что в дальнейшем переменной х при-
сваивается значение, на единицу меньшее предыдущего, а оператор
«пусть у а — b In с» означает, что переменной у присваивается зна-
чение, равное результату вычислений в правой части формулы после
замены имен переменных их числовыми значениями. Ключевое слово
«пусть» может быть заменено другим (например, «примем» или «вычи-
слить») или опущено.
Операторы присваивания могут быть также логическими (на-
пример, «пусть х — не х») или отображать другие однозначные измене-
ния состояния. Такие операторы часто описывают словами естествен-
ного языка, но могут быть записаны и в стандартной форме оператора
присваивания. Так, оператор безусловного перехода «перейти к шагу
т» равнозначен оператору «пусть шаг т», а оператор прекращения
выполнения алгоритма («стоп», «конец», «прекратить вычисления» и
т. п.) по договоренности можно заменить, например, оператором
«пусть А - • 0», где символ А, отображающий состояние процесса, на-
зывают флагом.
Операторы условных переходов отображают операцию выбора сле-
дующего шага алгоритма в зависимости от выполнения заданного ус-
ловия. Основная форма этого оператора: «если <условие>, то перей-
ти к шагу ..., иначе— к шагу ...». Если при неудовлетворении проверя-
емого условия должен выполняться следующий по порядку шаг алго-
ритма, то обычно используют сокращенную форму оператора услов-
ного перехода
«если <Гусловие>, то перейти к шагу ...».
Операторы, являющиеся элементами (словами) алгоритма, имеют
самостоятельный смысл и различаются семантическим (смысловым)
уровнем, соответствующим сложности выполняемой операции. Так,
оператор «пусть X --- Л + flxC» отличается более высоким уровнем по
отношению к операторам равнозначной последовательности «пусть
X fi x С», «пусть X X + Ау>. Однако каждый из этих простых опе-
раторов является сложным по отношению к логическим операторам,
последовательности которых соответствуют выполнению арифметиче-
ских операций. Уровень сложности операторов должен выбираться
наиболее высоким из выполнимых исполнителем алгоритма — неоправ-
данное дробление операторов на более простые усложняет запись и вы-
*Символ присваивания : - не следует смешивать со знаком определения
(который также часто заменяют знаком равенства), означающим в семанти-
ческих формулах «равно по определению». Например, выражение / : сБук-
в а | Ц и ф р а > означает, что имя переменной / состоит из буквы и следующей за ней
цифры.
U
полнение алгоритма. Так, алгоритм ре-
шения квадратного уравнения для под-
готовленного исполнителя достаточно
представить одним оператором «решить
уравнение a jc +a,jt-|-a ~ 0», для менее
2
4 0
подготовленного исполнителя, напри-
мер, в виде формулы вычисления корней
«пусть хх,.г ах12а2±У(ах12аг)*—а0'а.г)у>.
Если же исполнитель не умеет находить
по этой формуле все возможные реше-
ния, то ее необходимо заменить более под-
робным словесно-формульным описани-
ем, например:
1. Пусть a — ау'2а2.
2. Пусть D a — aja2.
2
3. Если D < 0, то перейти к шагу 6.
4. Вычислить вещественные корни
дс, a - V"D, х2 a + J/"D.
5. Перейти к шагу 7.
6. Вычислить вещественную и мни-
Re =а мую составляющие комплексно-сопря-
Im Х/ 2 = женных корней Re дг, 2
a, 1тдг,
2
7. Закончить вычисления.
CZD
Для наглядности алгоритмы пред-
ставляют схемами (рис. 1.1), на кото-
рых операторы присваивания обознача-
Рис. 1.1 ют прямоугольниками, а операторы ус-
ловных переходов — ромбами с выходами
«Да» и «Нет», соответствующими удовлетворению и неудовлетворе-
нию проверяемого условия. Начало и конец алгоритма обозначают
овалами. Все обозначения операторов соединяют линиями, указываю-
щими на порядок выполнения операций.
Неразветвленные алгоритмы, не содержащие операторов условных
переходов, называют линейными. Если один из выходов оператора ус-
ловного перехода соединен с предыдущей частью алгоритма, то обра-
зуется замкнутая структура, называемая циклом, операции в котором
многократно повторяются до удовлетворения или неудовлетворения
условия, проверяемого оператором условного перехода.
Алгоритмы решения сложных задач для упрощения записи струк-
турируют, заменяя типовые структуры (линейные части алгоритмов,
циклы и т.д.) составными операторами, отображаемыми определенными
сочетаниями слов или символов. К ним относятся, в частности, операто-
ры цикла общего назначения «пока <Сусловие>, выполнять«^опе-
ратор;»), где описание операции называют телом цикла. Если опера-
ции в цикле повторяются для ряда значений переменной х, отличаю-
10
щихся постоянным приращением Л* в интервале (дс,, лг ), то используют
2
оператор цикла
«для х - JCj до х2 шаг Ах выполнять <оператор>».
Для целочисленных значений переменной х при шаге Лх 1 этот
оператор упрощают:
«для х xt до хг выполнять <оператор>».
Применение составных операторов упрощает запись и чтение алго-
ритма, если их смысл понятен исполнителю алгоритма, в связи с чем
обычно используют лишь стандартизованные описания сложных опе-
раций.
Исполнителем алгоритма может быть не только человек, но и авто-
мат (в частности, ЭВМ), содержащий устройства ввода, распознава-
ния и выполнения операторов алгоритма. В последнем случае алгоритм
решения задачи представляют программой на входном языке (языке
программирования) с определенным множеством символов алфавита,
из которых в соответствии с лексическими правилами формируются
слова (операторы), распознаваемые и исполняемые ЭВМ. Допустимое
множество операторов входного языка образует его словарный запас,
допустимые последовательности операторов в программе определяются
синтаксическими правилами входного языка.
В цифровых ЭВМ информация передается в двоичных кодах в виде
последовательности состояний, отображаемых 0 или 1. Сменные про-
граммы решения прикладных задач, называемые прикладными про-
граммами или программами пользователя, для первых ЭВМ также со-
ставлялись в двоичных кодах. В связи с большой трудоемкостью со-
ставления и ввода таких программ вскоре ЭВМ стали дополнять ас-
семблерами — устройствами, формирующими двоичные коды команд,
управляющие выполнением простейших операций, при вводе с клавиа-
туры легко запоминающихся сочетаний букв и цифр. Однако состав-
ление программ решения прикладных задач на языках ассемблеров
(мнемокодах) также достаточно трудоемко. Поэтому по мере расшире-
ния круга пользователей ЭВМ, не имеющих специальной подготовки по
вычислительной технике, обострялась необходимость в создании язы-
ков программирования высокого уровня, обеспечивающих непосредст-
венное отображение стандартизованных описаний алгоритмов решения
задач текстами программ работы ЭВМ.
Большинство языков программирования высокого уровня относится к груп-
пе алгоритмических (или процедурных) языков, отображающих способ решения
задачи последовательностью описаний выполняемых операций. Первым из наи-
более известных языков был разработанный в 1954 г. Фортран (formulae trans-
lation — перевод формул), различные версии которого используются до настоя-
щего времени. Большие надежды возлагались на язык Алгол (algorithmic lan-
guage — алгоритмический язык), предложенный в I960 г. как международный
стандарт для описания алгоритмов и программ решения математических задач.
В настоящее время этот язык, в отличие от Фортрана, используется редко и все
более вытесняется языками следующих поколений. Среди последних следует
отметить достаточно универсальный язык программирования PL/1 (program
J I
language — язык программирования) и его версию APL/1 с удобными средствами
доступа к памяти и обработки переменных различного типа. Среди специалистов
широкую известность приобрел также язык Паскаль, отличающийся четкими
грамматическими правилами и средствами обработки различных структур дан-
ных. Среди других языков второго поколения следует отметить Аналитик, разра-
ботанный в Институте кибернетики АН УССР с русскими ключевыми словами,
который, в частности, отличается возможностью представления чисел, содержа-
щих до 999 десятичных цифр, и преобразования математических выражений в
аналитическом (символьном) виде. Первые версии Аналитика предназначались
для машин МИР (Машины для Инженерных Расчетов), в настоящее время Ана-
литик используется и для программирования машин серий СМ ЭВМ и ЕС ЭВМ.
Внедрение ПЭВМ привело к появлению множества фирменных языков
программирования и различных версий традиционных языков, ориентированных
на ПЭВМ определенного типа. Наибольшее применение для программирования
ПЭВМ нашел язык высокого уровня Бейсик, название которого происходит не
от английского слова basic (основной), а является аббревиатурой BASIC от слов
Beginner All-purpose Symbolic Instruction Code — многоцелевой язык символь-
ных кодов для начинающих.
Основные преимущества Бейсика — наглядность представления алгорит-
мов решения задач и простота реализации диалогового режима пользователя с
ЭВМ. Алфавит основной версии языка Бейсик содержит 26 прописных англий-
ских букв от А до Z, десятичные цифры, разделительные знаки (точка, запятая,
точка с запятой, двоеточие, апостроф или кавычки, скобки), знаки отношений
( =, ф , > , < ) , знаки арифметических операций + , —, * (умножение),
г
/ (деление), t, (возведение в степень), а также знаки пробела и перехода на новую
строку (перевода каретки). Кроме того, алфавит включает символы вычисления
стандартных (встроенных) функций: тригонометрических SIN(X), COS(X),
T A N ( X ) , A T N ( X ) , натурального логарифма LOG(X), экспоненты Е Х Р ( Х ) , кор-
ня квадратного SQP(X), абсолютного значения ABS(X), целой INT(X) и дробной
FRC(X) частей, знака SGN(X) числа, а также RAN(X) — вызова квазислучай-
ного числа с равномерным распределением в интервале (0,1).
'Имена переменных в основной версии Бейсика формируются из буквы или
буквы и цифры, а порядок числа в показательной форме записывается после
буквы Е (exponent — порядок), например —8.5Е—2 или —.85Е —1, причем
дробная часть числа отделяется от целой, как и в большинстве других языков
программирования, точкой, а не запятой.
Для ввода последовательности (массива) чисел используется оператор
DATA ai, а , ..., а ,
2 п
где после имени оператора DATA (данные) записываются последовательность
чисел, отделяемых запятыми. Имена этим числам присваиваются оператором
READ / 2
/„,
где после имени R E A D (читать) записываются выбранные имена переменных,
отделяемые запятыми. Оператор DATA может быть считан несколькими опера-
торами R E A D с числом переменных, меньшим числа элементов массива данных,
содержимое которого при необходимости восстанавливают оператором R E S T O R E
(восстановить).
Числовые значения переменным можно также присваивать оператором при-
сваивания общего вида
LET /, = / = ... = 1т =• А,
2
после выполнения которого именам переменных ..., I присваивается зна-
m
чение числа А, переменной с именем А или результата вычислений по выраже-
нию А .
Оператор условного перехода
IF <условие> THEN <метка перехода>
после ключевого слова IF (если) содержит проверяемое условие, при удовлетво-
рении которого управление передается оператору, перед которым указана мет-
12
14
ка, записанная после слова T H E N (тогда). Для соединения ветвей алгоритм»
используют оператор безусловного перехода
GOTO < м е т к а п е р е х о д а >
Базовая версия языка Бейсик содержит также оператор цикла с заголов-
ком
FOR / = а! ТО a,, STEP а , 3
где после ключевого слова FOR (для) записывается имя переменной и равное ей
в начальном состоянии число alt после слова ТО — число, равное граничному
значению переменной, а после слова STEP (шаг) — число а3, равное приращению
переменной на каждой итерации. После заголовка цикла в программе записы-
вают операторы, отображающие выполняемые действия на каждой и.терации и
называемые телом цикла. Тело цикла оканчивается оператором N E X T У (сле-
дующее /).
Основным оператором вывода информации является оператор P R I N T (пе-
чатать), после имени которого записываются выводимый текст, заключенный н
апострофы или кавычки, и имена переменных, числовые значения которых вы-
водятся на дисплей или печать.
В программе каждый оператор записывается с новой строки и начинается с
метки в виде целого числа. Метки записываются в порядке возрастания чисел с
некоторым интервалом, обеспечивающим возможность ввода в режиме диало-
га промежуточных операторов, так как ЭВМ выполняет их не в порядке записи, а
в порядке возрастания меток. Наибольшая метка записывается перед операто-
ром END (конец) в конце программы, которая может содержать и операторы
STOP для временного прекращения выполнения программы.
Во многих версиях Бейсика можно опускать ключевое слово L E T (пусть)
и записывать несколько операторов в одной строке с общей меткой. В этом слу-
чае-запись программы упрощается и, например, алгоритм решения квадратно-
го уравнения на рис. 1.1 можно представить программой
5 DATA а0, alt аг
10 READ А 0 , A l , А2
15 А - — .5.А1/А2; D ^ A f 2 - A 0 / A 2
20 IF D < 0 THEN 40
25 XI = A — SQR(D); X2 A -SQR(D)
30 PRINT " R E A L ROOTS X l = " , X I , " X 2 • " , X 2
35 STOP
40 C=SQR(—D)
50 PRINT "COMPLEX ROOTS REX - - • " , A , "IMX= ",С
999 END
После выполнения этой программы при нажатии клавиши RUN (пуск) при
а — — 3 , « 1 ^ - 2 , Oi
0
I на дисплей или печать будет выведен результат
REAL ROOTS Xi=—3 X2==l
а при а0 — 5, а = 1, а = — I — результат
2 г
COMPLEX ROOTS REX----1 IMX-2
Для исправления или замены текста оператора достаточно ввести исправ-
ленный текст и нажать клавишу RUN. Аналогичные операции выполняют при
вводе дополнительного оператора с промежуточным значением метки, что обес-
печивает простоту реализации диалога пользователя с ЭВМ.
В ПЭВМ текст вводимой программы и результаты ее выполнения обычно
выводятся на экран дисплея, что существенно упрощает контроль вводимой про-
граммы и ее отладку.
Особенности входных языков ПМК первых поколений, также от-
носящихся к процедурным языкам программирования высокого
уровня, связаны с требованием минимума аппаратурных затрат.
При выполнении прикладной программы на алгоритмическом язы-
ке высокого уровня, подобного Фортрану или Бейсику, считывание
кодов оператора присваивания с формулой вида / = Л приводит к ав-
томатическому вызову из основной (оперативной) памяти в быструю
(сверхоперативную) память (где хранятся операнды) значений перемен-
ных, имена которых содержатся в выражении А. Результат выполне-
ния операции автоматически засылается в ячейку памяти, которой со-
ответствует выбранное имя / результата операции. Например, при вы-
полнении оператора X X + К из основной памяти вызываются зна-
чения переменных X и К и после их сложения результат засылается в
ячейку памяти, где прежде хранилось значение операнда X.
При таком обмене информацией между быстрой и оперативной па-
мятью емкость последней не всегда используется полностью, так как
оперативная память разбита на области для хранения кодов програм-
мы, данных различного типа и вспомогательной информации, и при за-
полнении одной из областей памяти вычисления прекращаются. Огра-
ниченная емкость памяти ПМК первых поколений заставила разработ-
чиков изменить способ обмена информацией между быстрой и основной
памятью в процессе обработки информации. Для полного использования
емкости памяти во входных языках ПМК предусмотрены специальные
операторы обращения к ячейкам (регистрам *) памяти данных. Так, для
вызова копии содержимого регистра памяти с адресом N используют
операторы FN, И П М (из памяти), П - + - xN или R C L J V (recall — выз-
вать), а для засылки результата операции в оперативную память—опе-
раторы РN, П/V, х —*• ПЛ или STOJV (storage — запасать). Эти опера-
Т
торы равнозначны соответственно операторам присваивания вида
«пусть х PJV» и «пусть P/V - л:», где символом л обозначена текущая
-
переменная, а символом (именем) P/V — содержимое регистра памяти
N. Таким образом, в отличие от алгоритмических входных языков,
при использовании которых обмен данными между быстрой и оператив-
ной памятью выполняется автоматически, во входных языках ЭКВМ
и ПМК для этой цели используются операторы обращения к памяти.
Быстрая память ПМК содержит не менее двух регистров, обычно
обозначаемых символами X и Y, причем содержимое регистра X (на-
зываемого входным) отображается на индикаторе. В прикладных про-
граммах на входных языках ПМК имена текущих переменных, содер-
жащихся в этих регистрах, не указываются (умалчиваются), а соответ-
ствующие операторы присваивания обозначают только символом опе-
рации. Например, оператор «пусть х sin х~» обозначается только
sin, а двухместный оператор «пусть х — у + *» — только знаком +•
Подобное компактное представление вычислительных (функциональ-
* Слово «регистр» («ряд» в дословном переводе с латинского), означающее упо-
р я д о ч е н н у ю запись, в вычислительной т е х н и к е используют для определения как
порций (слов) информации, отображаемой рядом д в о и ч н ы х разрядов, так и фи-
зических устройств для их хранения. Часть регистра также называют регистром,
а в с л у ч а я х , когда все регистры имеют одинаковое число разрядов, это же слово
используют и в качестве рабочей единицы измерения количества информации.
14
ных) операторов затрудняет чтение программы, но существенно упро-
щает конструкцию ПМК и сокращает время ввода программ.
Исходные значения переменных в ПМК вводят в быструю память
операторами набора десятичных цифр, разделительного знака (запя-
той или точки), изменения знака, обозначаемого символами ' — , + . —
или CHS (change sign —изменение знака), ввода порядка п, ВП, ЕЕ
или ЕЕХ (enter exponent — ввод порядка) при показательной форме
представления чисел, а также операторами набора констант (напри-
мер, числа л) и квазислучайных чисел с символами СЧ или RND
(random — случайный). Эти операторы используются как для предва-
рительной засылки исходных данных в память, так и для набора опе-
рандов в процессе выполнения программы.
Для примера приведем программу решения квадратного уравнения (рис. 1.1)
на входном языка ПМК Prograrmnable-59 фирмы Texas Instrument, записав ее
по строкам, близким к строкам программы на языке Бейсик, в предположении,
что коэффициенты а , а, и а предварительно занесены соответственно в ре-
0 2
гистры 0, 1 и 2:
RCLI ч RCL2 н- 2 +/— ST03
х — RCL0 ч- RCL2 =ST04
2
х<0? А
У х S T 0 5 + RCL3 = RCL3 —RCL5 - - R/S
LBLA У х R/S RCL4 + / — У х RCL3
R/S
Если корни уравнения вещественные, то после выполнения этой програм-
мы на индикаторе высвечивается значение одного из корней, а для вызова другого
достаточно нажать клавишу X Т. Если корни комплексно-сопряженные,
высвечивается символ ошибки (переполнения), после чего следует нажать кла-
вишу R/S (run/stop — пуск/стоп). Это приведет к высвечиванию вещественной
части корней, а при дополнительном нажатии клавиши X Т — модуля мни-
мой части корней.
В процессе выполнения этой программы в регистры 3 и 4 засылаются зна-
чения а = —ах12аг и D = а2 — а0'а2. Учитывая, что в регистрах О, I и 2 хра-
нятся исходные коэффициенты, эта программа отображает следующий алгоритм
решения задачи:
Пусть а = —а,/2а . 2
Пусть D = а — а / а .
2
0 2
Если D < 0, то перейти к шагу с меткой А.
Пусть х = а + "I/O; дс, = а — У Т ) .
2
Стоп.
А «Пусть х = I / O » .
Стоп.
Пусть I m j t | = У — D ;
i 2
Rejt — а. l i 2
Стоп.
Каждая строка такого описания содержит простой или сложный оператор,
соответствующий строке приведенной ранее программы на Бейсике. Это под-
тверждает высокий уровень входных языков ПМК, позволяющих, как и алгорит-
мические языки ЭВМ других классов, практически непосредственно отображать
словесно-формульные описания способов решения прикладных задач с выпол-
нениями операций над представлениями чисел без их разбиения на части, что
характерно для языков низшего уровня.
15
В дальнейшем для определенности процедурные языки программи-
рования высокого уровня, подобные Фортрану или Бейсику, будем на-
зывать алгоритмическими, а входные языки традиционных ПМК—
компактными.
В связи с сокращенными обозначениями операторов входные языки
ПМК иногда ошибочно относят к языкам ассемблеров. Однако програм-
мы на таких языках образованы послед