Классификация языков программирования представлена на рис. 8.1.
Класс машинно-зависимых языков представлен Ассемблером (макроассемблером). Он относится к языкам низкого уровня и применяется для написания программ, явно использующих специфику конкретной аппаратуры.
К машинно-ориентированным языкам относится язык СИ (разработан в 1972 г.). В нем объединяются достоинства низкоуровневых возможностей ассемблеров и мощных выразительных средств языков программирования высокого уровня. Язык СИ является одним из претендентов на роль основного языка программирования в САПР и ориентирован на разработку системных программ. Он, в частности, послужил главным инструментом для создания операционных систем для ЭВМ UNIX и MS DOS .
Язык Фортран является первым универсальным языком высокого уровня (с 1954 г.). Наиболее эффективен при численных расчетах, прост по структуре и удобен при выполнении программ. Несмотря на свои недостатки, этот язык получил большое распространение при разработке прикладных программ для решения научных задач. Самая популярная в настоящее время версия этого языка — Фортран-77.
Как программировать на русском языке | Алгоритмы
Идеи Фортрана получили развитие в языке PL/I (создан в 1964 г.). В нем сделана попытка преодолеть некоторые недостатки, свойственные языкам для больших ЭВМ, и использованы идеи структурного программирования. В настоящее время имеются различные версии этого языка: PL/M , PL/Z, PL/65 и др. Как язык программирования PL/M , в частности, значительно уступает конкурирующим с ним языкам Паскаль и Модула-2.
Язык Паскаль является одним из наиболее популярных языков программирования и применяется для разработки системных и прикладных программ, в частности, для персональных ЭВМ. Язык Паскаль создан вначале исключительно для учебных целей и изящно реализовал большинство идей структурного программирования.
Достоинства языка оказались столь значительными, что он приобрел огромную популярность для самых различных приложений.
В частности, компилятор Turbo Pascal , снабженный интерактивным редактором, позволяет создавать достаточно сложное программное обеспечение — системы управления базами данных, графические пакеты и т. д.
Развитием Паскаля являются языки Модула-2 (в Европе) и Ада (в США). Язык Модула-2 обладает лучшими средствами для обработки больших программных комплексов и позволяет более эффективно использовать особенности аппаратуры. Таким образом, этот язык призван заполнить ниши между Паскалем и СИ . По оценке специалистов, язык Модула-2 через несколько лет станет наиболее популярным среди всех языков программирования .
Язык Ада можно назвать наиболее универсальным среди созданных языков. Однако трансляторы с этого языка пока не получили достаточного распространения.
Язык Алгол — общепризнанный язык для публикации алгоритмов решения научных задач, построен на четких и полных определениях. Для Алгола характерны строгие, но негибкие структуры данных и программ. Алгол труден для реализации на большинстве ЭВМ, поэтому используются неполные варианты языка или его расширения.
Информатика 8 класс (Урок№14 — Запись линейных алгоритмов на языке программирования.)
Язык Кобол, разработанный для решения экономических задач, будучи широко распространен на больших и средних ЭВМ прошлых лет, на персональных ЭВМ почти не применяется. На ЭВМ имеются интегрированные системы, базы данных и другие типы прикладных систем, используемые в задачах экономического и управленческого характера.
Самыми распространенными на ЭВМ являются различные версии языка Бейсик, простота которого делает его превосходным средством для начинающих программистов. В языке встроены удобные функции для работы с экраном дисплея, клавиатурой, внешними накопителями, принтером, каналами связи. Это позволяет относиться к Бейсику как к продолжению аппаратуры ПЭВМ. Системы Бейсика работают в режиме интерпретации , что способствует сокращению характерного цикла в работе программиста: составление программы — пробное исполнение — исправление ошибок — повторное исполнение . Бейсик наряду с Паскалем принят во многих учебных заведениях как базовый язык для изучения программирования.
увеличить изображение
Рис. 8.1. Классификация языков программирования
Язык АПЛ применяется для обработки структурных данных (векторов, матриц) и использует иероглифическую запись программных текстов. Из-за большого числа иероглифов (около 100) его иногда называют китайским Бейсиком.
К классу проблемно-ориентированных языков можно отнести Лого, CPSS, Форт и Смолток.
Язык Лого — диалоговый процедурный язык , реализованный на принципе интерпретации и работающий со списками, текстами, графическими средствами и т. д. Язык очень перспективен для обучения, создания электронных игрушек и т. д.
Развитием проблемно-ориентированных языков является объектно-ориентированный подход (языки Смолток, Форт, Модула и Ада). Отличительными особенностями таких языков можно назвать модульность построения процедур, абстракцию данных, динамическую связку программ (позволяет отказаться от перекомпилирования всей программы при внесении изменений в отдельные модули) и использование механизма наследования иерархического типа.
К недостаткам таких языков относятся некоторая замедленность выполнения программ из-за их динамической связи и сложность трансляторов.
Язык Смолток предназначен для решения нечисловых задач при построении систем искусственного интеллекта. В языке Форт применены структурное программирование и очень компактный машинный код.
Для разработки систем искусственного интеллекта также используются функциональные языки Лисп, Пролог и СНОБОЛ. Эти языки ориентированы на обработку символьной информации, требуют больших массивов данных и стали применяться в ПЭВМ в связи с появлением дешевой полупроводниковой памяти, позволяющей довести объем ОЗУ до нескольких мегабайт . Языки этого класса относятся к так называемым языкам представления знаний.
Язык Лисп применяется для программирования интеллектуальных задач — общение на естественном языке, доказательство теорем , принятие решений и т. п.
Язык Пролог приобрел в последние годы большую популярность в связи с японским проектом создания вычислительных систем пятого поколения. Он предназначен для создания широкого класса систем искусственного интеллекта, в том числе и персональных экспертных систем.
При использовании САПР приходится не только решать задачи вычислительного характера и обработки данных, но и автоматизировать описание объектов, процессы ввода, вывода и редактирования данных, ввода графических изображений, схем, чертежей и т. п. Для этой цели служат языки проектирования .
Классификация языков проектирования приведена на рис. 8.2.
Языки проектирования делят на: входные, выходные, сопровождения, промежуточные и внутренние.
Входные языки служат для задания исходной информации об объектах и целях проектирования. Во входных языках можно выделить две части: непроцедурную, служащую для описания структур объектов, и процедурную, предназначенную для описания заданий на выполнение проектных операций.
Рис. 8.2. Классификация языков проектирования
Языки сопровождения служат для непосредственного общения пользователя с ЭВМ и применяются для корректировки и редактирования данных при выполнении проектных процедур . В диалоговых режимах работы с ЭВМ средства языков входного, выходного и сопровождения тесно связаны и объединяются под названием диалогового языка. Современные диалоговые языки широко используют средства машинной графики (графический диалог). Диалог с ЭВМ может быть пассивным, когда инициатор диалога — система и от пользователя требуются только простые ответы, и активным при двусторонней инициативе диалога. Наиболее распространенная форма пассивного диалога — это система встроенных, в том числе иерархических, директивных меню .
Недиалоговые системы языков сопровождения ориентированы на пакетный режим работы ЭВМ.
Промежуточные языки используются для описания информации в системах поэтапной трансляции исходных программ . Введение таких языков облегчает адаптацию программных комплексов САПР к новым входным языкам, т.е. делает комплекс открытым по отношению к новым составляющим лингвистического обеспечения .
Внутренние языки устанавливают единую форму представления данных (текстовой и графической информации) в памяти ЭВМ по подсистемам САПР . Принимаются определенные соглашения об интерфейсах отдельных программ, что делает САПР открытой по отношению к новым элементам программного обеспечения.
В качестве примера современного языка проектирования можно указать язык VHDL ( VHSIC — hardware description language ) — язык описания аппаратуры на базе сверхвысокоскоростных интегральных схем. Этот язык принят в качестве стандарта как инструментальное средство автоматизации проектирования СБИС, ориентированное на методологию нисходящего проектирования. Он является достаточно универсальным, чтобы охватить все аспекты проектирования изделий в области цифровой электроники.
Контрольные вопросы и упражнения
- Что включает в себя методическое обеспечение САПР?
- Входят ли в состав методического обеспечения документы, посвященные созданию САПР?
- На основе чего создаются компоненты методического обеспечения?
- Что составляет основу математического обеспечения САПР?
- Каковы пути совершенствования математического обеспечения?
- Назовите языки лингвистического обеспечения САПР.
- Для чего служат языки программирования?
- Для чего служат языки проектирования ?
- Для чего служат языки управления?
- Что называется исходной программой?
- Каково назначение исходной программы?
- Каково назначение языкового процессора?
- Что называется трансляцией?
- Что называется ассемблером?
- Что называется системой программирования?
Источник: intuit.ru
Тема 3. Языки и системы программирования.
Основные понятия и определения. Языки и знаки. Способы задания языков. Функции языка. Элементы языка: алфавит, лексемы, синтаксис и семантика языка. Модель передачи сообщений. Языки, участвующие в создании программы.
Особенности языков программирования. Характеристики языков программирования: уровень, мощность, концептуальная целостность, надежность, удобочитаемость, полнота, гибкость, мобильность, эффективность. Уровни языков программирования: машинный язык, язык ассемблера, язык высокого уровня. Взаимосвязь уровня и мощности языка.
Язык программирования Object Pascal. Элементы языка: алфавит, лексемы, лексические единицы, синтаксис, оформление. Константы и переменные, именование, объявление и использование. Данные и типы данных языка. Стандартные и определяемые пользователем. Простые и сложные типы данных. Организация действий над данными.
Ввод/вывод данных. Обработка данных: операции, приоритеты операций, выражения. Операторы языка: классификация и форматы операторов.
Стиль программирования. Правила хорошего стиля программирования в Object Pascal. Комментарии.
Основные понятия и определение системы программирования. Структура современной системы программирования. Классификация систем программирования: по ориентации на поддержку технологических процессов, по категориям, по предоставляемому интерфейсу, по функциональной ориентации в технологическом процессе.
Инструментальные системы программирования (инструментальные среды программирования, средства автоматизации разработки программ, интегрированные среды).
Трансляция программ. Трансляторы: интерпретаторы, компиляторы. Компилируемые и интерпретируемые языки высокого уровня. Выбор языка программирования. Критерии и факторы выбора.
Интегрированная среда программирования Delphi. Среда разработки и ее составляющие. Система окон разработки. Система меню. Окно конструктора форм, окно кода программы, окно инспектора объектов.
Свойства, события, методы.
Настройка интегрированной среды разработки Delphi. Проект. Характеристика проекта. Файл проекта. Файлы формы. Файлы модулей. Файл ресурсов. Параметры проекта. Создание и сохранение нового проекта.
Особенности сохранения проектов.
Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими данными при различных обстоятельствах.
Со времени создания первых программируемых машин человечество придумало уже более восьми с половиной тысяч языков программирования.
Как и обычный человеческий язык, язык программирования имеет свой алфавит – множество символов, используемых в языке.
Из этих символов составляются так называемые ключевые слова языка. Каждое из ключевых слов выполняет свою функцию, так же как в привычном нам языке нам языке слова, составленные из букв алфавита данного языка, могут выполнять функции разных частей речи. Ключевые слова связываются друг с другом в предложения по определённым синтаксическим правилам языка. Каждое предложение определяет некоторую последовательность действий, которые должен выполнить компьютер. Язык высокого уровня выполняет роль посредника между человеком и компьютером, позволяя человеку общаться с компьютером более привычным для человека способом.
Определения
Язык программирования — искусственный (формальный) язык, предназначенный для записи алгоритмов. Язык программирования задается своим описанием и реализуется в виде специальной программы: компилятора или интерпретатора.
Система программирования — программная система, предназначенная для разработки программ на конкретном языке программирования. Система программирования предоставляет пользователю специальные средства разработки программ: транслятор, (специальный) редактор текстов программ, библиотеки стандартных подпрограмм, программную документацию, отладчик и др.
Программа — последовательность машинных команд, предназначенная для достижения конкретного результата.
Декларативный язык программирования — язык программирования высокого уровня, построенный: на описании данных; и на описании искомого результата. Декларативные языки подразделяются на функциональные и логические языки.
Декларативный (непроцедурный язык — язык программирования, который позволяет задавать связи и отношения между объектами и величинами, но не определяет последовательность выполнения действий (например, языки Пролог, QBE);
Императивный (процедурный) язык — язык программирования, который позволяет в явной форме (при помощи задания выполняемых операторов) определять действия и порядок (последовательность) их выполнения;
Проблемно-ориентированный язык программирования — язык программирования, управляющие структуры и/или структуры данных которого отражают особенности класса решаемых задач.
Процедурно-ориентированный язык программирования — язык программирования высокого уровня, в основу которого положен принцип описания (последовательности) действий, позволяющей решить поставленную задачу. Обычно процедурно-ориентированные языки задают программы как совокупности процедур или подпрограмм.
Рекурсивное построение — в языках программирования — поименованная конструкция, использующая в своей структуре обращение к самой себе.
Семантика — в программировании — система правил истолкования отдельных языковых конструкций. Семантика определяет смысловое значение предложений алгоритмического языка.
Синтаксис — набор правил построения фраз алгоритмического языка, позволяющий определить, осмысленные предложения в этом языке.
Тип данных — характеристика набора данных, которая определяет: диапазон возможных значений данных из набора; допустимые операции, которые можно выполнять над этими значениями; способ хранения этих значений в памяти. Различают: простые типы данных: целые, действительные числа и др.; — составные типы данных: массивы, файлы и др.
Специализированный язык — язык программирования, ориентированный на решение определенного круга задач; Язык описания страниц [PDL — Page Description Language] — специализированный язык, предназначенный для печатающих устройств. Предусматривает возможность использования изображений в формате, независимом от параметров устройства отображения. Наиболее известным языком такого типа является PostScript.
Язык манипулирования данными, ЯМД [DML — Data Manipulation Language] — в СУБД — язык, предназначенный для обращения к базе данных и выполнения поиска, чтения и модификации ее записей;
Язык обработки списков — специализированный язык, предназначенный для описания процессов обработки данных, представленных в виде списков объектов;
Язык описания данных [DDL — Data Description Language] — язык, предназначенный для описания концептуальной схемы базы данных;
Язык описания хранения данных [DSDL — Data Storage Description Language] — язык, предназначенный для описания физической структуры ( схемы ) базы данных;
Язык описания страниц — система для кодировки документов, которая позволяет точно описать ее внешний вид после подготовки к выводу на печать или на дисплей. Примером использования такого языка служит PDF (Portable Document Format), разработанный Adobe для хранения и представления изображений страниц.
Язык представления знаний [KRL — Knowledge Representation Language] — декларативный или декларативно- процедурный язык, предназначенный для представления знаний в памяти ЭВМ (например, языки Лисп и Пролог );
Язык публикаций — язык, используемый для публикации алгоритмов и программ;
Язык спецификаций — декларативный язык для задания спецификаций программ;
Язык реального времени — язык, используемый для программирования задач, в которых критическим является время реакции ЭВМ на сигналы, требующие от неё немедленных действий (например, язык Ада);
Язык управления пакетом — набор команд, директив, квалификаторов и правил их использования для управления пакетной обработкой данных;
Язык управления заданиями — язык, на котором записывается последовательность команд, управляющих выполнением задания. В отличие от обычных языков программирования, в которых объектами описания являются элементы, связанные с решением отдельной задачи, в языках управления заданиями преобразуемыми объектами являются целые программы и выходные потоки данных, обработанных этими программами.
Общесетевой командный язык [CNCL — Common Network — Command language] — стандартный в рамках вычислительной сети язык диалогового (интерактивного) поиска данных, предназначенный для унификации работы пользователей с неоднородными базами данных, управляемых различными СУБД;
Системный язык — язык общения оператора ЭВМ с вычислительной системой, представляющий собой совокупность команд оператора и сообщений системы;
Язык общего назначения, универсальный язык — язык программирования, ориентированный на решение задач практически из любой области и объединяющий на единой методической основе наиболее существенные свойства и средства современных машино- и проблемноориентированных языков программирования (например, язык ассемблера , ПЛ/1 и др.);
Язык ориентированный на пользователя — слабоформализованный язык программирования, близкий к естественному языку ;
Язык меню — язык диалога пользователя с системой, основанный на использовании меню.
Дата добавления: 2016-07-05 ; просмотров: 2621 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Источник: poznayka.org
Лекция 6. Алгоритмический язык — это язык, используемый для формальной записи алгоритмов
Алгоритмический язык — это язык, используемый для формальной записи алгоритмов. Языки такого типа изучаются и используются в математической логике и в программировании. В математической логике исследуются универсальные алгоритмические языки, на которых можно описать любую процедуру, относимую к интуитивно понимаемому множеству алгоритмов. Примером такого языка может служить язык, на котором функционирует машина Тьюринга.
В программировании используется несколько типов алгоритмических языков, что определяется особенностями тех универсальных логических алгоритмических языков, которые были использованы при создании конкретного языка программирования. Например, язык ЛИСП опирается на идею реализации алгоритмов как последовательностей вычислений рекурсивных функций. Другой язык программирования — РЕФАЛ использует «универсальный» алгоритмический язык в виде схем нормальных алгоритмов Маркова, а в основе языка ПРОЛОГ лежит модель, заимствованная из логики предикатов первого порядка.
В самом общем случае языком программирования можно назвать фиксированную систему обозначений для описания алгоритмов и структур данных. Такой язык имеет два «лица». Одно из них обращено к человеку, использующему язык для записи своих программ, а другое адресовано ЭВМ, которая должна понимать эти программы.
Язык большинства современных ЭВМ достаточно беден и состоит из команд типа «выделить память определенного размера»; «выбрать из определенного места в памяти информацию»; «запомнить информацию в определенном месте памяти»; «сложить два числа»; «перейти к выполнению очередной команды, выбрав ее из определенного места в памяти» и т. п.
Как правило, команд — несколько сотен. Все они настолько просты, что могут быть эффективно реализованы аппаратурой. Набор команд функционально полон, и, в принципе, используя команды из этого набора (в программировании говорят, пользуясь заданной системой команд), можно описать любой алгоритм. Правда, такая запись для сложных задач будет настолько громоздкой, что у человека очень мало шансов сделать ее безошибочной.
Существует лишь два выхода из этого положения. Первый из них связан с созданием более сложных ЭВМ и, вследствие этого, с аппаратурой поддержки более мощных языков.
Второй путь — программное моделирование более мощного входного языка. Такой прием в программировании называют созданием виртуальной вычислительной машины, состоящей частично из аппаратуры, а частично из программного обеспечения. На практике обычно создается иерархия виртуальных ЭВМ, где каждый следующий уровень позволяет программисту использовать все более и более мощный входной язык. При этом конечно, требуются специальные программы-переводчики (трансляторы), функция которых — преобразование программ на входном языке виртуальной машины в эквивалентные программы, понимаемые аппаратурой ЭВМ. Такая трансляция может быть одношаговой или многошаговой, в зависимости от числа уровней в иерархии виртуальных ЭВМ.
Уже разработаны тысячи языков программирования, но лишь сотни из них реализованы хотя бы для одной ЭВМ. Однако даже среди этих сотен языков активно используются лишь несколько десятков.
Алгоритмический язык ПАСКАЛЬ назван в честь английского ученого Б. Паскаля. По своей идее это алголоподобный (от названия АЛГОЛ) язык, вобравший в себя все лучшие проектные решения предшественника. Но вместе с тем это качественно новый шаг, связанный, прежде всего, с тем, что здесь впервые была воплощена концепция абстрактных типов данных. Если раньше все данные, преобразования которых описывались в программе, относились к одному из заранее определенных типов (целые, действительные и т.п.), то в ПАСКАЛе были введены средства конструирования новых типов данных. Были в языке и другие важные нововведения, среди которых следует отметить интервальные типы данных, средства работы с множествами и некоторые другие.
Благодаря этим свойствам ПАСКАЛЬ стал не только интересным и мощным средством программирования широкого круга прикладных задач, но и языком, пригодным для обучения программированию как систематической дисциплине, основанной на фундаментальных понятиях, ясно и естественно отраженных в самом языке ПАСКАЛЬ.
Почти одновременно с ПАСКАЛем, в начале 70-х гг., был разработан и язык программирования СИ. Но если ПАСКАЛЬ шел больше от теории программирования, то язык СИ — типичный пример влияния практических потребностей системного программирования на разработку новых языков.
Изначально он создавался как инструментальное средство для реализации операционной системы UNIX на ЭВМ фирмы DEC, но популярность его быстро переросла рамки конкретной машины, операционной системы и задач системного программирования. И сейчас язык СИ можно по праву назвать одним из универсальных языков программирования. С одной стороны, в нем имеются средства определения новых типов данных, широкий набор операторов, характерных для языков высокого уровня, модульность и структурность, а с другой — в язык СИ включены средства программирования почти на уровне ассемблера (например, побитовые операции и работа с указателями). СИ-программы компактны и эффективны, но практическое использование языка требует от программиста осторожности, аккуратности и знания преимуществ и недостатков тех или иных конструкций.
Практически каждый из языков программирования фиксировал достижения самой дисциплины программирования и открывал в ней новые пути развития. Так, ФОРТРАН показал возможность «отрыва» от конкретной ЭВМ с ее фиксированной системой команд; АЛГОЛ — использование строгого и элегантного математического стиля для реализации сложных алгоритмов; ПАСКАЛЬ — конструирование новых типов данных, а СИ — интеграцию языка программирования с операционной обстановкой, в которой этот язык функционирует.
Если же говорить о языках обработки символьной информации, то следует отметить уже упоминавшиеся нами ЛИСП (List Processing Language), ПРОЛОГ (Programming in Logic) и РЕФАЛ (Алгоритмический язык рекурсивных функций).
Языки символьной обработки сыграли важную роль в программировании. С одной стороны, они позволили осуществить разработку и реализацию ряда практически важных систем аналитических преобразований, интеллектуальных программ и т. д., а с другой стороны, именно эти языки породили целый спектр исследований, результатом которых стала разработка и реализация языков представления знаний.
Современные пользователи наиболее часто используют язык объектно-ориентированного программирования Visual Basic. Это связано с широким распространением пакета программ Microsoft Office под Windows и предоставляемыми возможностями создания собственных приложений.
Активно входят в практику программирования языки для создания приложений, работающих в сетях.
Отметим, что существует также «прикладная» классификация языков программирования, согласно которой все они делятся на группы по областям применения.
6.3. ИНФОРМАЦИЯ И УПРАВЛЕНИЕ. УПРАВЛЯЮЩИЕ АЛГОРИТМЫ
В повседневной жизни мы всюду сталкиваемся с управлением и в самом общем виде понимаем под ним совокупность действий, осуществляемых человеком, группой людей или автоматическим устройством. Эти действия в идеальном случае представляют собой алгоритмы управления. Они направлены на поддержание или улучшение работы управляемого объекта в соответствии с имеющейся программой (алгоритмом функционирования) или целью управления. Управлять – значит влиять на ход какого-либо процесса или состояние некоторого объекта и его положения в пространстве. Управление является всегда целенаправленным действием, и цель его задается наперед.
С точки зрения кибернетики, управляющие алгоритмы состоят из следующих основных шагов:
1) орган управления получает информацию о цели управления и о состоянии (поведении) объекта управления;
2) орган управления формирует управляющие воздействия, подбирая их так, чтобы в результате свести к минимуму рассогласование между заданной целью и достигнутым на данном шаге результатом;
3) совершается управляющее воздействие над объектом;
4) анализируется состояние объекта;
5) совершается процедура выбора из двух возможностей:
– если в результате воздействия сведено к минимуму рассогласование между заданной целью и достигнутым на данном шаге результатом, т.е. достигнуты цели управления, происходит переход к п.6.;
– если в результате воздействия цели управления не достигнуты, происходит возвращение к п.2;
6) дается сигнал об окончании процесса управления.
Характерно, что описанный алгоритм является рекурсивным, так как независимо от целей управления и природы объектов функция управления является рекурсивной и всегда характеризуется наличием одного или нескольких замкнутых контуров.
С позиции теории систем к понятиям управления и управляющего алгоритма можно подойти следующим образом.
Основа любого сложного процесса — взаимодействие. Часто наблюдается несимметричное взаимодействие, когда выделяется управление – некоторая главная часть, которая в процессе взаимодействия преобразует подчиненные ей объекты. С точки зрения математики при парном взаимодействии выделение управления условно и зависит только от принятого соглашения. Однако во многих случаях явное выделение главной части, управляющей процессом взаимодействия, дает дополнительную характеристику исследуемого явления.
Систему с выделенным управлением называют управляющей системой. Для сложных систем характерно явное выделение состояний, в которых может находиться управление системы. Например, состояниями электронных часов являются «тройки»: час, минута, секунда. Такая система имеет 24´ 60´60 – 86400 состояний. Если часы показывают дату и месяц, число состояний — около 31 млн.
Для того чтобы проектировать сложные системы, используют принцип укрупнения состояний на разных уровнях детализации и другие приемы проектирования.
Выделение управления в принципе характерно для любого алгоритма, так как наличие информации всегда предполагает потенциальную возможность ее целенаправленной переработки. Поясним связь понятий управления и информации.
Капитан корабля не может без риска провести корабль по фарватеру, не имея информации о последнем. Физик не сможет составить уравнение, не зная всех входящих в него величин. Приезжий без плана города с трудом ориентируется в незнакомой обстановке. Вся наша жизнь состоит из постоянного решения задач с неполной информацией.
Чем больше информации, тем лучше можно управлять ситуацией. Во всех случаях информация выступает активным началом, позволяющим совершать необходимые действия. Иными словами, информация проявляется в процессе взаимодействия с неким устройством управления. Без управления информация мертва так же, как без информации не может правильно функционировать управление.
Управляющим устройством может выступать человек, машина, программа, общество и т.д. Человек, изучая закономерности мира, старается получить как можно больше информации — это дает ему возможность создавать наиболее оптимальные алгоритмы.
Управляющее устройство работает по определенному, управляющему, алгоритму. Другими словами, можно сказать, что взаимодействие управления и доступной информации задает алгоритм (рис. 10).
Рис.10. Схема алгоритма управления
По сути, предлагаемое определение управляющего алгоритма совпадает с понятием системы с обратной связью, в которой управляемые объекты являются информацией.
Взаимодействие управления и информации осуществляется следующим образом. Управление обладает возможностью получать некоторые сигналы от обрабатываемой информации и вырабатывать операции, преобразующие эту информацию. Реакция управления на те или иные сигналы описывается правилами управляющей системы. Под воздействием сигналов управление меняет свои внутренние состояния и вырабатывает преобразующие информацию операторы.
Рассмотрим, например, процесс чтения книги. Сигналами здесь служат слова, вызывающие у читателя зрительные образы, преобразованиями — простые операторы чтения — движение глаз по тексту. Различные устройства могут иметь разные возможности интерпретации сигналов и выполнения преобразующих операторов. Например, одна и та же музыка у разных людей вызывает разные чувства: некоторые могут даже плакать, когда другие остаются равнодушными. Один игрок в шахматы почти всегда выигрывает, другой проигрывает.
Важно, что определение управляющего алгоритма в виде взаимодействующей схемы «управление + информация» дает «энергетическое» толкование понятия информации. В физике энергия означает способность совершить работу. Информация означает способность совершить, управляемую работу. Чем больше накоплено энергии, тем проще что-то сделать.
Аналогично, чем больше информации, тем проще может функционировать управление. Управление относительно информации выступает в роли силы, прикладываемой к объекту. При вычислении совершается «работа». Аналогично тому, как делается в физике, эту «работу» можно вычислить, если известна «сила» каждой команды управления и мера «отрезка пути» – изменения порции информации при применении оператора управления. Отметим, что способы измерения информации, учитывающие функцию цели системы, все еще находятся в стадии изучения и разработки
Источник: studopedia.su