Файл: Брага, В. В. Основы технологии машинной обработки статистической информации [учеб. пособие].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.10.2024
Просмотров: 135
Скачиваний: 0
приятии будет 87; значит, данные о численности работающих рас положены в 87 ячейках ОЗУ. Необходимо определить общую чис ленность работающих. Для этого не надо 87 раз повторять коман ду операции сложения. Все операции сложения выполняются при помощи одной команды сложения, за которой последует команда «—20», которая укажет, что нужно выполнить подряд 87 команд сложения. В этой команде также будет указано, из каких ячеек надо последовательно выбрать числа, т. е. шаг переадресации, ко торый будет задан в специальной индексной ячейке.
§ 4. ПРИНЦИПЫ АВТОМАТИЗАЦИИ ПРОГРАММИРОВАНИЯ
С момента появления первых электронных машин и примерно до 1955 г. программирование осуществлялось исключительно вруч ную, на машинном языке. Как мы уже отмечали, этот метод про граммирования имеет ряд недостатков: длительность изучения ма- - шинного языка, трудоемкость составления, отладки и внесения из менений в программы.
В больших и сложных программах, особенно в программах об работки статистических и других экономических данных, где коли чество команд достигает нескольких тысяч и даже десятков тысяч, особенно очевидным становятся многие существенные недостатки программирования на машинном языке. Во-первых, перевод отно сительных адресов в действительные значительно снижает произ водительность труда программиста, является дополнительным источником ошибок. Исправления, выявленные в процессе отладки программы, значительно изменяют программу. Кроме того, затруд нено одновременное программирование различных блоков программ разными программистами. Программа, написанная в машинных ко дах, неудобна для чтения и, наконец, может быть решена только на данном типе ЭВМ.
Для устранения этих недостатков были созданы искусственные языки, отличающиеся от машинного языка и более или менее близкие к обычному языку. Такие языки называются алгоритми ческими. Они, как и машинный язык, подчиняются точным прави лам программирования. Разница в том, что этих правил гораздо меньше и они более естественны, чем правила обычного програм мирования. Операции алгоритмического языка более укрупненные', каждая такая операция (или символ) соответствует ряду машин ных операций.
Автоматизированное программирование имеет определенные преимущества по сравнению с ручным, так как алгоритмические языки более удобны для освоения. При автоматизации програм мирования сокращается время программирования и отладки про граммы. Программа на алгоритмическом языке гораздо короче, ее легче написать, ошибок здесь меньше; поэтому отладка такой про граммы не занимает много времени. Автоматизация программиро вания позволяет снизить число специалистов, занятых программи-
49
рованием. Это очень важно, особенно если учесть, что выпуск ЭВМ увеличивается большими темпами, а для того чтобы полностью ис пользовать одну машину, ее должны обслуживать 30—40 програм мистов.
Программа, составленная на алгоритмическом языке, может быть с некоторыми изменениями перенесена на ЭВМ другого типа, имеющую транслятор с данного языка. В настоящее время суще ствуют сотни алгоритмических языков. Наиболее широко приме
няются так называемые |
универсальные языки. Они используются |
во многих странах, для |
многих типов машин и являются междуна |
родными. Как правило, алгоритмические языки ориентированы на определенный класс задач.
Для инженерных, математических и научных задач в качестве основного взяты языки «Алгол-60», который был принят в I960 г., и ФОРТРАН. На базе АЛГОЛА создаются и развиваются алгорит мические языки для решения экономических задач. К ним отно сятся, например, алгоритмические языки «Алгэм», «Алгэк», создан ные в нашей стране. Язык «Алгол» совершенствуется. Для эконо мических задач широко используется также алгоритмический язык «Кобол».
Сейчас разработаны алгоритмические языки более высокого уровня, такие, как PL-1, АЛГОЛ-68. Эти языки универсальные, они могут применяться для описания задач различного типа, но исполь зуются только для ЭВМ высокого класса. В нашей стране приме няется также язык символического кодирования (ЯСК), авто код «Инженер» (АКИ), Макрокод. АКИ вначале был разработан для решения инженерных задач, однако в дальнейшем были созда ны варианты АКИ, которые достаточно успешно применяются для решения экономических и статистических задач. Некоторые алго ритмические языки могут применяться лишь для одного типа ЭВМ.
Система автоматического программирования состоит из двух важнейших составных частей: языка, способа записи задачи; транс лятора, программы, транслирующей эту запись в программу на машинном языке.
Каждый язык имеет широкий набор правил, символов и обо значений, которые подлежат одинаковому толкованию. Принцип программирования на алгоритмическом языке заключается в сле дующем. Задача, записанная на алгоритмическом языке в виде сим волов, переносится на машинный носитель (перфокарты или пер фоленты) и вводится в ЭВМ.
В машине алгоритмическая программа рассматривается другой программой — транслятором. На разработку транслятора затрачи вается несколько лет. Транслятор состоит из десятков тысяч ко манд. Программа-транслятор составляется один раз и хранится по стоянно в памяти машины. Программа-транслятор воспринимает алгоритмическую программу и переводит ее на машинный язык, т. е. .машинная программа автоматически составляется непосред ственно электронной вычислительной машиной.
50
Для этого в машине происходит анализ конструкций алгорит мического язьжа и их разложение на элементарные операции. Каж дой процедуре алгоритмического языка присваивается группа ма шинных команд. Одновременно машина проверяет, правильно ли составлена алгоритмическая программа. Все обнаруженные ошибки транслятор печатает. В программу можно вносить изменения. После завершения трансляции исходной программы получается машинная программа, которая размещается в памяти машины и используется для решения задачи. В случае необходимости машин ную программу можно напечатать или вывести на перфоленту.
КОБОЛ - программа на
|
|
бланках |
|
|
|
|
|
Перфорация |
программы |
|
|
|
|
на |
перфокартах |
|
|
|
|
|
|
Исходные данные |
|
|
|
|
|
на |
перфокартах |
ЭВМ |
|
|
|
|
|
|
|
Ввод |
КОБОЛ-программы |
|
|
Печать |
|
В 36 M |
|
Ввод исходных дан |
|
6 |
|
X |
|||
ошибок |
|
ных |
В ЭВМ |
||
КОБОЛ - |
|
Программа - |
транслятор |
|
|
программе |
|
X |
|
|
|
|
|
|
|
|
|
|
|
Машинная |
программа |
|
|
|
|
|
X |
исходных |
|
|
|
Обработка |
|
||
|
|
данных |
|
|
|
Печать результатов решения
Рис. 5. Блок-схема решения задачи при |
помощи алгоритмической программы |
на языке |
КОБОЛ |
После этого можно приступать к решению задачи на машине. Од нако следует учесть, что на решение задачи, записанной на алго ритмическом языке, уходит больше машинного времени, чем на ре шение той же задачи, спрограммированной на машинном языке. Программа-транслятор занимает большой объем запоминающего устройства ЭВМ. Решение задачи на ЭВМ при помощи алгоритми ческой программы на языке КОБОЛ показано на рис. 5.
Программа для электронных вычислительных машин может со ставляться на различных алгоритмических языках в зависимости от наличия соответствующих трансляторов. Выбор какого-либо ал-
51
горитмического языка зависит от особенностей конкретной задачи. Каждый транслятор может работать только с программой на одном алгоритмическом языке. Программа может вводиться с раз личных машинных носителей. Отладка исходных программ осу ществляется по специальной методике. Систему автоматизации
программирования можно видеть на схеме (рис. 6).
Внедрение ЭВМ третьего поколения ставит новые проблемы в организацию обработки экономической информации, так как пред полагает широкое использование различных программ решения
|
Программы |
на алгоритмическом |
языке |
|
\ |
|
|
|
|
|
|
|
|
|
ЯСК АКИ |
АЛГОЛ |
ФОРТРАН |
АПГЗМ |
АЛГЭК |
кобол |
ЭВМ |
|
|
|
|
|
|
I |
|
|
|
|
|
|
Прог |
Прог- |
Прог |
Прог |
Прог |
Прог |
Прог |
рамма- |
рамма- |
рамма |
рамма |
рамма |
рамма |
рамма |
тран |
тран-. |
тран |
тран |
тран |
тран |
тран |
слятор |
слятор |
слятор |
слятор. |
слятор |
слятор |
слятор |
Машин |
\ |
\ |
\ |
Машин |
Машин |
\ |
Машин |
Машин |
Машин |
машин |
|||
ная |
ная |
ная, |
\ |
|||
ная |
ная |
ная |
ная |
|||
прог |
прог |
прог |
прог |
прог |
прог |
прог |
рамма |
рамма |
рамма. |
рамма |
рамма |
рамма |
рамма |
* |
* |
• 1 |
! |
* |
t |
* |
Решение
1
Результаты решения
Рис. 6. Система автоматизации программирования
конкретных задач на алгоритмических языках, программ-трансля торов, программ, обеспечивающих многопрограммный принцип ра боты машины, библиотек стандартных программ. Полный набор программ, обеспечивающих решение задачи на машине, представ ляет собой систему математического обеспечения ЭВМ.
Система математического обеспечения машины включает опе рационную систему и систему программирования. Под операцион ной системой понимается набор программ, которые организуют не прерывную многопрограммную работу машины без вмешательства
оператора. Система программирования |
обеспечивает подготовку |
|
программ для решения задачи на алгоритмических |
языках. |
|
Операционная система — часть математического |
обеспечения; |
она создается для облегчения работы программистов и операто ров. Операционная система может быть ориентирована на различ-
52