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