Программирование на уровне ценности - Value-level programming

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

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

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

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

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

Связь с языками лямбда-исчисления

Лямбда-исчисление на основе языков (например, Лисп, Я ПЛАВАЮ, и Схема ) находятся на практике языки ценностного уровня, хотя они не ограничены дизайном.

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

ж = λИкс.E

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

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

Смотрите также