programação em nível de valor - Value-level programming

Programação em nível de valor refere-se a um dos dois contrastantes paradigmas de programação identificados por John Backus em seu trabalho sobre programas como objetos matemáticos , sendo o outro de programação de nível de função . Backus usado originalmente o termo de programação no nível do objeto , mas esse termo agora é propenso a confusão com programação orientada a objetos .

Programas de nível de valor são aqueles que descrevem a forma de combinar diferentes valores (por exemplo, números, símbolos, cordas, etc.) para formar outros valores até que os últimos valores de resultados são obtidos. Novos valores são construídos a partir existentes pela aplicação de várias funções do valor em relação ao valor, tais como a adição, a concatenação, inversão de matriz, e assim por diante.

Convencional, programas de von Neumann são valor de nível: expressões no lado direito de instruções de atribuição estão preocupados exclusivamente com a construção de um valor que é, então, a ser armazenado.

Conexão com tipos de dados

A abordagem de nível de valor para programação convida o estudo do espaço de valores de acordo com as operações de formação de valor, e as propriedades de algébricas dessas operações. Isto é o que é chamado o estudo de tipos de dados , e avançou de se concentrar sobre os valores a si mesmos e sua estrutura, a uma preocupação primária com a formação de valor de operações e sua estrutura, como dado por certos axiomas e as leis algébricas, que é , para o estudo algébrica de tipos de dados .

Conexão com linguagens Lambda Calculus

Lambda cálculo baseados em línguas (como Lisp , ISWIM , e Scheme ) estão em reais prática linguagens de nível valor, embora eles não são, portanto, restrito por design.

Para ver porque típico estilo lambda programas são primariamente valor de nível, considere a definição usual de uma função valor-to-value, dizem

f = λx.E

aqui, x tem de ser uma variável de valor (uma vez que o argumento de f é um valor, por definição) e E deve denotar um valor demasiado (desde que 'f resultado s é um valor, por definição). Tipicamente, E é uma expressão envolvendo a aplicação de funções de formao de valor para variáveis e constantes de valor; no entanto, algumas funções de formao de valor que têm ambos existem argumentos da função e valor e são utilizados para fins restritos.

Se o termo de valores é definido para incluir as próprias variáveis de valor, em seguida, a exibição de nível valor de programação é um dos valores de construção através da aplicação de programas existentes (formador de valor operações / funções) para outros valores. Programação Lambda-style constrói um novo programa a partir do resultado de valor pelas variáveis de valor-abstraindo lambda.

Veja também