Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Связь с типами данных [ править ]

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

Связь с языками лямбда-исчисления [ править ]

Языки, основанные на лямбда-исчислении (такие как Lisp , ISWIM и Scheme ), на практике являются языками ценностного уровня, хотя их конструкция не ограничена.

Чтобы понять, почему типичные программы лямбда-стиля в первую очередь относятся к уровню значений, рассмотрим обычное определение функции отношения значения к значению, например

f = λ x . E

здесь x должен быть переменной-значением (поскольку аргумент f является значением по определению), а E также должен обозначать значение (поскольку результат f является значением по определению). Как правило, E - это выражение, включающее применение функций формирования значений к значениям переменных и констант; тем не менее, несколько функций формирования значений, имеющих как аргументы функции, так и аргументы значения, действительно существуют и используются для ограниченных целей [ необходима цитата ] .

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

См. Также [ править ]

  • Программирование на функциональном уровне (контраст)
  • Парадигмы программирования