Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
234 Кб
Скачать
☆

59.Программирование. Принципы создания компьютерных языков (логическое, функциональное, объектно-ориентированное, процедурное).

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

Процедурное Программирование

Развитие процедурных языков определялось особенностями вычислительной машины Дж. фон Неймана; способы представления знаний и задач, а также методов их решения были ориентированы на экономию ресурсов. При этом интеллектуальный комфорт пользователя был проигнорирован. Программа разрабатывается в терминах тех действий, которые она должна выполнять. Основная единица программы — процедура — последовательность операторов, выполняющая определенный вспомогательный алгоритм. Процедуры могут вызывать другие процедуры, вместе они работают по определенному алгоритму, ведущему к решению задачи. Кроме понятия оператор в основе процедурного языка лежит понятие операнд — данные, которые обрабатываются при помощи операторов. Типы операндов: простой, массив, структуры.

Типы операторов: присваивания, условных операций, итерации.

Программа, написанная на процедурном языке, явно указывает способ получения результата, но не сам результат.

Существует большое число процедурных языков программирования. Это —Algol, Fortran, Pascal, С, Basic и др.

Функциональное программирование

Применение ЭВМ для решения задач искусственного интеллекта и обработки текстов привело к созданию функциональных языков. Эти языки имеют хорошо проработанное математическое основание — a–исчисление. Функция в математике — отображение объектов из множества величин (области определения функции или домена) в объекты другого множества (область значений функции). Обобщением этого теоретико-множественного понятия функции, которое делает его фактически одним из вариантов понятия алгоритма, и является a–исчисление. Функциональный стиль программирования основан только на использовании процедур-функций (в отличие от процедурных языков, где основным понятием является процедура-оператор. Первым языком функционального программирования является созданный в начале 1960-х годов язык ЛИСП (LISP — LISt Processing). В отличие от процедурных языков, в которых действия в основном выражаются в виде итерации — повтора какого-либо фрагмента программы несколько раз, в ЛИСП вычисления производятся с помощью рекурсии — вызова функцией самой себя, а основная структура данных — это список.

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

Логическое программирование

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

Объектно-ориентированное программирование

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

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

60. Основные принципы архитектуры фон Неймана

Принцип однородности памяти 

Команды и данные хранятся в одной и той же памяти и внешне в памяти неразличимы. Распознать их можно только по способу использования; то есть одно и то же значение в ячейке памяти может использоваться и как данные, и как команда, и как адрес в зависимости лишь от способа обращения к нему. Это позволяет производить над командами те же операции, что и над числами, и, соответственно, открывает ряд возможностей. Так, циклически изменяя адресную часть команды, можно обеспечить обращение к последовательным элементам массива данных. Такой прием носит название модификации команд и с позиций современного программирования не приветствуется. Более полезным является другое следствие принципа однородности, когда команды одной программы могут быть получены как результат исполнения другой программы. Эта возможность лежит в основе трансляции — перевода текста программы с языка высокого уровня на язык конкретной вычислительной машины.

Принцип адресности 

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

Принцип программного управления 

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

Принцип двоичного кодирования 

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]