В этой статье не процитировать какие - либо источники . ( декабрь 2009 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Парадигмы программирования |
---|
|
Программирование на уровне значений относится к одной из двух противоположных парадигм программирования, определенных Джоном Бэкусом в его работе над программами как математическими объектами , а другая - программированием на уровне функций . Бакуса первоначально использовался термин программирования на уровне объектов , но этот термин теперь склонен к путанице с объектно-ориентированного программирования .
Программы уровня значений - это программы, которые описывают, как комбинировать различные значения (например, числа, символы, строки и т. Д.) Для формирования других значений до тех пор, пока не будут получены окончательные значения результата . Новые значения создаются из существующих путем применения различных функций преобразования значений, таких как сложение, конкатенация, инверсия матриц и т. Д.
Обычные программы фон Неймана относятся к уровню значений: выражения в правой части операторов присваивания предназначены исключительно для создания значения, которое затем должно быть сохранено.
Связь с типами данных [ править ]
Подход к программированию на уровне значений предполагает изучение пространства значений в рамках операций по формированию значений и алгебраических свойств этих операций. Это то, что называется изучением типов данных , и оно продвинулось от сосредоточения внимания на самих значениях и их структуре к первоочередной заботе об операциях формирования значений и их структуре, как это задается некоторыми аксиомами и алгебраическими законами, то есть , к алгебраическому изучению типов данных .
Связь с языками лямбда-исчисления [ править ]
Языки, основанные на лямбда-исчислении (такие как Lisp , ISWIM и Scheme ), на практике являются языками ценностного уровня, хотя их конструкция не ограничена.
Чтобы понять, почему типичные программы лямбда-стиля в первую очередь относятся к уровню значений, рассмотрим обычное определение функции отношения значения к значению, например
f = λ x . E
здесь x должен быть переменной-значением (поскольку аргумент f является значением по определению), а E также должен обозначать значение (поскольку результат f является значением по определению). Как правило, E - это выражение, включающее применение функций формирования значений к значениям переменных и констант; тем не менее, несколько функций формирования значений, имеющих как аргументы функции, так и аргументы значения, действительно существуют и используются для ограниченных целей [ необходима цитата ] .
Если термин « значения» определен как включающий сами переменные-значения, то представление программирования на уровне значений представляет собой одно из построений значений путем применения существующих программ (операций / функций формирования значений) к другим значениям. Программирование в стиле лямбда строит новую программу из значения результата путем лямбда-абстрагирования переменных значения.
См. Также [ править ]
- Программирование на функциональном уровне (контраст)
- Парадигмы программирования