КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Алгоритмические языки.
Алгоритмические языки, представляющие алгоритмы в виде последовательности читаемых программистом (не двоично-кодированных) команд, подразделяются (Слайд 4): 1. Машинно-ориентированныеязыки относятся к языкам программирования низкого уровня — программирование на них наиболее трудоемко, но позволяет создавать оптимальные программы, максимально учитывающие функционально-структурные особенности конкретного компьютера. Программы на этих языках, при прочих равных условиях, будут более короткими и быстрыми. Большинство команд таких языков при трансляции (переводе) на машинный (двоичный) язык генерируют одну машинную команду. 2. Процедурно-ориентированныеи проблемно-ориентированные языкиотносятся к языкам высокогоуровня, использующим макрокоманды, которые при трансляции генерируют:
· процедурно-ориентированная макрокоманда - десятки машинных команд, · проблемно-ориентированная макрокоманда - сотни машинных команд.
Процедурно-ориентированные языки программирования — самые используемые (Basic, Pascal, C++, PL, ALGOL, COBOL и др.). При их использовании программист должен описывать всю процедуру решения задачи, тогда как проблемно-ориентированные языки (их называют также непроцедурными) позволяют лишь формально идентифицировать проблему и указать состав, структуры представления и форматы входной и выходной информации для задачи. В настоящее время значение такие языки потеряли актуальность. Доминируют пакеты прикладных программ и специальные приложения.
Все языки программирования (машинно-ориентированные и высокого уровня), для их восприятия компьютером требуют наличия программ перевода — трансляторов на машинный язык (Слайд 5). Транслятор (translator) — программа, преобразующая программу, написанную на одном языке, в программу, представленную на другом языке. Транслятор воспринимает предложения (операторы) одного языка и вырабатывает соответствующие предложения (операторы) другого языка. Если вторым является языкпроцессора, то транслятор именуют компилятором. Например, компилятор берет программу, написанную на языке С, и преобразует ее в программу на языке ассемблера Транслятор, который последовательно анализирует предложения языка и немедленно их выполняет, а не компилирует, называют интерпретатором. Т.о., алгоритм непосредственно воспринимается и исполняется компьютером, если он представлен в двоичном коде на машинном языке.
3. Команды.
Алгоритм решения задачи, заданный в виде последовательности команд на языке ЭВМ (в кодах машины), называется машинной программой.
Операционная частькоманды (КОП - код операции) - это группа разрядов в команде, предназначенная для представления кода операции машины. Адресная частькоманды (адреса) - это группа разрядов в команде, в которых записываются коды адреса (адресов) ячеек памяти машины предназначенных для оперативного хранения информации, или иных объектов, задействованных при выполнении команды. Часто эти адреса называются адресамиоперандов, то есть чисел, участвующих в операции. По количеству адресов (Аl, А2, АЗ,...), записываемых в команде, команды делятся на безадресные, одно-, двух- и трехадресные. Типовая структура трехадресной команды: Аl и А2 — адреса ячеек (регистров), где расположены соответственно первое и второе числа, участвующие в операции, АЗ — адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции. Типовая структура двухадресной команды: Аl — это обычно адрес ячейки (регистра), где хранится первое из чисел, участвующих в операции, и куда после завершения операции должен быть записан результат операции; А2 — обычно адрес ячейки (регистра), где хранится второе участвующее в операции число.
Аl —в зависимости от модификации команды может обозначать либо адрес ячейки (регистра), где хранится одно из чисел, участвующих в операции, либо адрес ячейки (регистра ), куда следует поместить число — результат операции. Безадресная командасодержит только код операции, а информация для нее должна быть заранее помещена в определенные регистры машины (безадресные команды могут использоваться только совместно с командами другой адресности). 4. Состав машинных команд.
Стандартный набор современных ПК содержит более 240 машинных команд, образующих группы по видам выполняемых операций (Слайд 7):
§ операциипересылки информации внутри компьютера; § арифметическиеоперации над информацией; § логическиеоперации над информацией; § операциинадстроками (текстовой информацией); § операцииобращения к внешним устройствам компьютера; § операциипередачиуправления; § обслуживающие и вспомогательныеоперации.
Операции передачи управления (ветвленияпрограммы) служат для изменения естественного порядка выполнения команд:
1. Операции безусловной передачи управлениявсегда обусловливают выполнение после данной команды, не следующей по порядку, а той, адрес которой в явном или неявном виде указан в адресной части команды, и делятся на: § команды передачи управления, передающие управление по заданному адресу и больше никаких действий не выполняющие; § команды передачи управления (команды вызова процедуры или подпрограммы) - кроме передачи управления процедуре еще запоминают в специальной стековой памяти адрес следующей команды (адрес возврата из процедуры); § безадресные команды передачи управления (команды возврата из процедуры), возвращающие управление по запомненному адресу возврата.
Вторая и третья команд безусловных передач управления работают совместно — одна передает управление процедуре, другая возвращает из нее. Важную роль в выполнении этих команд передачи управления играет специальным образом организованная область оперативной памяти — стековая память. Обращение к ячейкам этой памяти выполняется по принципу (FILO — firstinput, last output - первым вошел — последним вышел), т.е. последний записанный операнд первым считывается. Стековая память позволяет удобно реализовать процессы иерархического обращения ко многим процедурам, последовательно записывая и выдавая по принципу FILO адреса возврата каждой из них.
2. Операции условной передачи управлениявызывают тоже передачу управления по адресу, указанному в адресной части команды, но только в том случае, если выполняется некоторое заранее оговоренное для этой команды условие. Это условие в явном или неявном виде указано в коде операции команды. Последовательность подготовки и решения задачи на компьютере (Слайд 8):
1. Формулировка и формализованная постановка задачи. 2. Выбор математической модели и метода решения задачи. 3. Разработка алгоритма решения задачи, то есть последовательности процедур, которые необходимо выполнить для решения задачи. 4. Составление программы решения задачи, (запись алгоритма на языке, понятном машине). 5. Ввод программы в компьютер и ее отладка. 6. Ввод исходных данных и решение задачи на компьютере. 7. Анализ полученных результатов и выводы по результатам решения.
|