ВУЗ:
Составители:
- 45 -
дительности программного обеспечения. В этой связи возникла необходимость
отказа от подобной концепции перезаписи памяти и соответствующего алго-
ритма организации вычислительного процесса.
8.2 Функциональное программирование
Вычислительная модель, в которой программа рассматривается как мно-
жество определений функций, называется функциональной моделью. Для опи-
сания функциональных моделей используются два метода: первый основан на
использовании аппликативного
языка, а второй - на использовании языка с од-
нократным присваиванием. Отличительной чертой этих моделей является то,
что в основу их положена простая и четкая математическая модель, называемая
«лямбда-исчислением».
Рассмотрим основные понятия «лямбда - исчисления». В выражении
f(x),
которое
используется обычно для представления функции, не ясно: то ли
оно означает функцию f, то ли ее значение при заданном значении параметра х.
Поэтому для четкого описания функции f было введено выра
жение
λxf(x).
To
есть, когда выражение
М
хотят рас
сматривать как функцию от
х,
следует
использовать запись
λхМ.
Получение выражения
λxM
из выражения
М
назы-
вают «лямбда - абстракцией». Таким обра
зом, выражение
λx(x+y)
является
функцией от
х,
а не от у. При этом х называется связанной переменной, а у -
свободной переменной. Если f = λхМ, то подстановка выражения А в х внутри М
называется применением А к f и записывается как fA. Вычисление выражения в
этой модели носит название редукции.
Примерами языков программирования, реализующими вычисления на
основе функциональных моделей являются для
аппликативного языка «чис-
тый» Лисп, предложенный Маккарти, FP Бэкуса и др., к языкам с однократным
присваиванием относятся Id Арвинда , VAL Аккермана и Денниса др.
8.3 Потоковое программирование
Основная идея потокового программирования или модели вычислитель-
ного процесса по потоку данных основана на рассмотрении операции обработ-
ки данных, активируемой этими данными. Действительно реальное выполнение
некоторой операции
возможно только тогда, когда мы получаем исходные дан-
ные для этой операции. Тем самым данные, передаваемые из одной операции к
другим, активируют соответствующие операции.
- 45 -
дительности программного обеспечения. В этой связи возникла необходимость
отказа от подобной концепции перезаписи памяти и соответствующего алго-
ритма организации вычислительного процесса.
8.2 Функциональное программирование
Вычислительная модель, в которой программа рассматривается как мно-
жество определений функций, называется функциональной моделью. Для опи-
сания функциональных моделей используются два метода: первый основан на
использовании аппликативного языка, а второй - на использовании языка с од-
нократным присваиванием. Отличительной чертой этих моделей является то,
что в основу их положена простая и четкая математическая модель, называемая
«лямбда-исчислением».
Рассмотрим основные понятия «лямбда - исчисления». В выражении
f(x), которое используется обычно для представления функции, не ясно: то ли
оно означает функцию f, то ли ее значение при заданном значении параметра х.
Поэтому для четкого описания функции f было введено выражение λxf(x). To
есть, когда выражение М хотят рассматривать как функцию от х, следует
использовать запись λхМ. Получение выражения λxM из выражения М назы-
вают «лямбда - абстракцией». Таким образом, выражение λx(x+y) является
функцией от х, а не от у. При этом х называется связанной переменной, а у -
свободной переменной. Если f = λхМ, то подстановка выражения А в х внутри М
называется применением А к f и записывается как fA. Вычисление выражения в
этой модели носит название редукции.
Примерами языков программирования, реализующими вычисления на
основе функциональных моделей являются для аппликативного языка «чис-
тый» Лисп, предложенный Маккарти, FP Бэкуса и др., к языкам с однократным
присваиванием относятся Id Арвинда , VAL Аккермана и Денниса др.
8.3 Потоковое программирование
Основная идея потокового программирования или модели вычислитель-
ного процесса по потоку данных основана на рассмотрении операции обработ-
ки данных, активируемой этими данными. Действительно реальное выполнение
некоторой операции возможно только тогда, когда мы получаем исходные дан-
ные для этой операции. Тем самым данные, передаваемые из одной операции к
другим, активируют соответствующие операции.
Страницы
- « первая
- ‹ предыдущая
- …
- 43
- 44
- 45
- 46
- 47
- …
- следующая ›
- последняя »
