Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Программное управление — основа автоматизации вычислительного процесса

Читайте также:
  1. ECCO — датская обувная компания, основанная в 1963 году Карлом Тусби в Бредебро.
  2. ERP и управление возможностями бизнеса
  3. III. Особенности учебного процесса.
  4. III. СТРУКТУРА И УПРАВЛЕНИЕ СНО
  5. III. Участники образовательного процесса
  6. IV. Управление, руководство, кадры
  7. IV. УЧЕБНО-МЕТОДИЧЕСКОЕ И ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ УЧЕБНОГО ПРОЦЕССА.

1 Ведение

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

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

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

Основными свойствами правильно построенного алгоритма являются:

- результативность — алгоритм должен давать конкретное конструктивное ре­шение, а не указывать на возможность решения вообще;

- достоверность — алгоритм должен соответствовать сущности задачи и форми­ровать верные, не допускающие неоднозначного толкования решения;

- реалистичность — возможность реализации алгоритма при заданных ограни­чениях: временных, программных, аппаратных;

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

- детерминированность (определенность) — алгоритм должен содержать набор точных и понятных указаний, не допускающих неоднозначного толкования;

- дискретность — допустимость расчленения алгоритма на отдельные этапы с возможностью последовательной их реализации на машине;

- экономичность — алгоритм должен обеспечивать необходимую и достаточную точность решения задачи.

Алгоритм должен быть понятен (доступен) пользователю и/или машине. Доступ­ность пользователю означает, что он должен отображаться посредством конкретных формализованных изобразительных средств, понятных пользователю. В качестве таких изобразительных средств используются следующие способы их записи: сло­весный, формульный, табличный, операторный, графический, макроязык програм­мирования:

- при словесном способе записи содержание последовательных этапов алгоритма описывается в произвольной форме на естественном языке;

- формульный способ основан на строго формализованном аналитическом зада­нии необходимых для исполнения действий;

- табличный способ подразумевает отображение алгоритма в виде таблиц, исполь­зующих аппарат реляционного исчисления и алгебру логики для задания под­лежащих исполнению взаимных связей между данными, содержащимися в таб­лице;

- операторный способ базируется на использовании для отображения алгоритма условного набора специальных операторов: арифметических (А), логических (Р), печати (П), ввода данных (В) и т. д.; операторы снабжаются индексами и между ними указываются необходимые переходы, а сами индексированные операторы описываются чаще всего в табличной форме;

- графическое отображение алгоритмов в виде блок-схем — самый распростра­ненный способ. Графические символы, отображающие выполняемые процеду­ры, стандартизованы. Наряду с основными символами используются и вспо­могательные, поясняющие процедуры и связи между ними;

- алгоритмы могут быть записаны и в виде команд какого-либо языка програм­мирования. Если это макрокоманды, то алгоритм читаем и пользователем-про­граммистом, и вычислительной машиной, имеющей транслятор с соответству­ющего языка.

Языки, представляющие алгоритмы в виде последовательности читаемых програм­мистом (не двоично-кодированных) команд, называются алгоритмическими язы­ками. Алгоритмические языки подразделяются на машинно-ориентированные, процедурно-ориентированные и проблемно-ориентированные.

Машинно-ориентированные языки относятся к языкам программирования низко­го уровня — программирование на них наиболее трудоемко, но позволяет созда­вать оптимальные программы, максимально учитывающие функционально-струк­турные особенности конкретного компьютера. Программы на этих языках, при прочих равных условиях, будут более короткими и быстрыми. Кроме того, знание основ программирования на машинно-ориентированном языке позволяет специа­листу подробнейшим образом разобраться с архитектурой компьютера. Именно последнее в большей степени и обусловливает целесообразность ознакомления с машинно-ориентированным языком, каковым и является язык ассемблер, при изу­чении вычислительных систем. Большинство команд машинно-ориентированных языков при трансляции (переводе) на машинный (двоичный) язык генерируют одну машинную команду.

Процедурно-ориентированные и проблемно-ориентированные языки относятся к языкам высокого уровня, использующим макрокоманды. Макрокоманда при трансляции генерирует много машинных команд: для процедурно-ориентирован­ной макрокоманды это соотношение в среднем «один к десяткам машинных ко­манд», а для проблемно-ориентированной команды это «один к сотням машинных команд». Процедурно-ориентированные языки программирования — самые ис­пользуемые (Basic, Pascal, C++, PL, ALGOL, COBOL и еще десятки популярных языков). При их использовании программист должен описывать всю процедуру решения задачи, тогда как проблемно-ориентированные языки (их называют так­же непроцедурными) позволяют лишь формально идентифицировать проблему и указать состав, структуры представления и форматы входной и выходной ин­формации для задачи. В настоящее время эти языки разрабатываются слабо, ибо они, по существу, переродились в пакеты прикладных программ.

Все языки программирования, и языки машинно-ориентированные, и языки вы­сокого уровня, для их восприятия компьютером требуют наличия программ пере­вода — трансляторов на машинный язык.

Трансляторы бывают двух типов: трансляторы-компиляторы и трансляторы-интерпретаторы.

Компиляторы при трансляции переводят на машинный язык сразу всю программу и затем хранят ее в памяти машины в двоичных кодах. Интерпретаторы каждый раз при исполнении программы заново переводят в машинные коды каждую мак­рокоманду и передают ее для непосредственного выполнения компьютеру. В па­мяти интерпретируемые программы хранятся в виде исходных макрокоманд и по­этому в любой момент читаемы человеком.

Откомпилированные двоично-кодированные программы практически человеком не читаемы. Но их можно вызвать в специальную программу-отладчик (DEBUG и его разновидности), который переведет эти программы на язык ассемблер, то есть сделает их «человекочитаемыми» (еще один довод в пользу изучения языка ас­семблер).

Итак, алгоритм непосредственно воспринимается и исполняется компьютером, если он представлен в двоичном коде на машинном языке.

Алгоритм решения задачи, заданный в виде последовательности команд на языке вычислительной машины (в кодах машины), называется машинной программой. Команда машинной программы (иначе, машинная команда) — это элементарная инструкция машине, выполняемая ею автоматически без каких-либо дополнитель­ных указаний и пояснений.

Машинная команда состоит из двух частей: операционной и адресной.

КОП Адреса

 

 

Операционная часть команды (КОП — код операции) — это группа разрядов в ко­манде, предназначенная для представления кода операции машины.

Адресная часть команды (адреса) — это группа разрядов в команде, в которых за­писываются коды адреса (адресов) ячеек памяти машины, предназначенных для оперативного хранения информации, или иных объектов, задействованных при выполнении команды. Часто эти адреса называются адресами операндов, то есть чисел, участвующих в операции.

По количеству адресов (al, a2, аЗ,...), записываемых в команде, команды делятся на безадресные, одно-, двух- и трехадресные.

- Типовая структура трехадресной команды:

КОП а1 а2 а3

 

al и а2 — адреса ячеек (регистров), где расположены соответственно первое и второе числа, участвующие в операции, аЗ — адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции.

- Типовая структура двухадресной команды:

КОП а1 а2

 

al — это обычно адрес ячейки (регистра), где хранится первое из чисел, уча­ствующих в операции, и куда после завершения операции должен быть записан результат операции; а2 — обычно адрес ячейки (регистра), где хранится второе участвующее в операции число.

- Типовая структура одноадресной команды:

КОП а1

 

al в зависимости от модификации команды может обозначать либо адрес ячей­ки (регистра), где хранится одно из чисел, участвующих в операции, либо адрес ячейки (регистра), куда следует поместить число — результат операции.

Безадресная команда содержит только код операции, а информация для нее долж­на быть заранее помещена в определенные регистры машины (безадресные коман­ды могут использоваться только совместно с командами другой адресности). Наибольшее применение в ПК нашли двухадресные команды.

Пример двухадресной команды, записанной на языке символического кодирова­ния:

СЛ    

 

Эту команду следует расшифровать так: сложить число, записанное в ячейке 0103 памяти, с числом, записанным в ячейке 5102, а затем результат (то есть сумму) поместить в ячейку 0103.

В кодах машины любая команда содержит только двоичные цифры записанных объектов.


Дата добавления: 2015-12-07; просмотров: 112 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.011 сек.)