Файл: Брага, В. В. Основы технологии машинной обработки статистической информации [учеб. пособие].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