Алгоритмы и языки программирования

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

После изучения главы вы должны знать:

Способы изображения алгоритмов решения задач.

2. Классификацию алгоритмических языков программирования.

3. Состав и структуру машинных команд.

4. Пример программы на языке символического кодирования.

5. Режимы работы компьютеров и их классификацию.

6. Систему и виды прерываний программ в ПК.

7. Адресацию регистров МПП.

8. Виды адресации ячеек основной памяти.

9. Состав системного программного обеспечения.

10. Операционные системы MS DOS и WINDOWS.

11. Состав прикладного программного обеспечения.

12. Назначение и состав прикладных программ для офиса.

13. Виды и назначение пакетов корпоративных прикладных программ.

 

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

Алгоритмы и языки программирования

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Алгоритм решения задачи, заданный в виде последовательности команд на языке вычислительной машины (в кодах машины), называется машинной программой.

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

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

КОП Адреса

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

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

По количеству адресов (а1, а2, а3, ¼), записываемых в команде, команды делятся на безадресные, одно-, двух- и трехадресные.

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

КОП а1 а2 а3

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

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

КОП а1 а2

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

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

КОП а1

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

Безадресная команда содержит только код операции, а информация для нее должна быть заранее помещена в определенные регистры машины.

Наибольшее применение в ПК нашли двухадресныекоманды.

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

СЛ

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

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








Дата добавления: 2016-04-02; просмотров: 1251;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.