- •1.1Внутренняя обработка данных
- •1.1.1Логические основы эвм
- •1.1.2Функциональное строение эвм
- •1.1.3Понятие программы
- •1.1.4Архитектура эвм
- •1.1.5Производительность эвм
- •1.2Внешняя обработка данных
- •1.2.1Алгоритмы и структуры данных
- •1.2.2Программирование и языки программирования
- •1.2.3Процедурное программирование
- •1.2.4Функциональное программирование
- •1.2.5Логическое программирование
- •1.2.6Объектно-ориентированное программирование
- •2.Аппаратное и программное обеспечение
- •2.1Классификация эвм
- •2.2Аппаратные компоненты персональных эвм
- •2.2.1Структура пэвм
- •2.2.2Системная шина
- •2.2.3Центральный процессор
- •2.2.4Внешняя и внутренняя память
- •2.2.5Внешние устройства
- •2.2.6Внешние запоминающие устройства
- •2.2.7Внешние устройства ввода-вывода
- •2.2.8Видеосистемы
- •3.Вычислительные сети
- •3.1Понятие вычислительной сети
- •3.2Локальные вычислительные сети
- •3.2.1Архитектура локальной сети
- •3.2.2Аппаратные компоненты локальной сети
- •3.3Глобальная сеть Internet
- •3.3.1Общая характеристика глобальной сети Internet
- •3.3.2Адресация и маршрутизация в сети Internet
- •3.3.3Службы сети Internet
- •3.4Архитектура вычислительного процесса
- •3.4.1Архитектура приложения
- •3.4.2Централизованная архитектура
- •3.4.3Распределённая архитектура
- •3.4.4Архитектура «Клиент-сервер»
- •3.4.5Многозвенная архитектура
- •Список используемых сокращений
- •Использованная литература
- •Предметный указатель
- •Содержание
- •Александр Юрьевич Платов
- •603950, Н.Новгород, ул. Ильинская, 65.
1.2.4Функциональное программирование
Функциональное программирование – это способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени функции, а единственным правилом композиции – оператор суперпозиции функции. В такой программе нет ни ячеек памяти, ни операторов присваивания, ни циклов, ни передачи управления. Другими словами в функциональном языке программист формулирует не «что надо сделать», как в процедурном языке, а «что надо получить».
Роль основной конструкции в функциональном языке играет выражение. Любой функциональный язык имеет следующие элементы:
классы констант, используемые в функциях;
набор базовых функций, которые программист может использовать без предварительного определения;
правила построения новых функций из базовых;
правила формирования выражений на основе вызова функций.
Переменные в функциональных языках обозначают не ячейки памяти, а объекты программы. Всё это позволяет отнести функциональные языки к языкам сверхвысокого уровня.
Самым старым функциональным языком является LISP (List Processing). Он создан группой авторов под руководством Дж. Маккарти в 1959 г. Цель его создания состояла в удобстве обработки символьных данных. В настоящее время он рассматривается как основной язык программирования систем искусственного интеллекта. Кроме того, имеются реализации языка для решения специфических задач (например, AutoLISP в системе AutoCAD).
Пример
В следующей LISP-программе определена функция перевода градусов в радианы.
; перевод градусов в радианы
( defun dtr (a)
(* pi (/ a 180.0))
)
command dtr 180
После выполнения последней функции на экран монитора будет выведено число 3.159.
Другим примером языка функционального программирования может служить язык Forth, созданный Ч. Муром в 1971 г., который применяется в основном для программ управления оборудованием в реальном масштабе времени. Forth, подобно языку С, представляет собой низкоуровневый язык, неориентированный на какую-либо конкретную ЭВМ. Центральным понятием языка Forth является слово. Программа пишется путём составления определений новых слов, для которых используются ранее определённые слова, пока не будет определено главное слово, которое нужно ввести, чтобы исполнить основную программу. Фактически программа является расширением самого языка за счёт включения в него новых слов.
Пример
В следующей Forth-программе определено новое слово для умножения на 2:
: TIMES2 2 * . ;
5 TIMES2
В первой строке определено слово TIMES2, причём знак : означает начало определения, а знак ; - конец определения.
Во второй строке слово применяется. На экране монитора будет высвечено число 10.
В системах управления базами данных широко используется язык запросов SQL. По существу SQL является также функциональным языком программирования.
1.2.5Логическое программирование
Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами. Процесс выполнения программы является процессом установления общезначимости логической формулы, построенной из программы по правилам семантики некоторого языка. В логическом программировании нужно определить факты, на которых основывается алгоритм, и не определять последовательности шагов, как в процедурном программировании, которые требуется выполнить.
Наиболее известным языком логического программирования является Prolog (Programming in Logic), созданный в 1973 г. французским учёным А. Кольмероэ.
Программа на Prolog состоит из фактов, правил и вопроса. На вопрос программа пытается ответить, либо «yes», либо «no».
Пример
eats (cats, mice).
Это факт, который сообщает, что кошки питаются мышами.
eats (X, Y):- eats (X, Z), eats (Z, Y).
Это правило, по которому следует, что если Z питается X и Z питается Y, то X питается Y.
Формально это верное правило, хотя по отношению к реальности оно может быть бессмысленным.
Далее можно поставить вопрос:
? - eats (cats, Y).
Тогда будет получен ответ: Y == mice.
