Programación a nivel de valores

A programación a nivel de valores é uns dos dous paradigmas contrastantes identificados por John Backus no seu traballo sobre os programas como obxectos matemáticos; o outro é a programación a nivel funcional. O termo inicialmente utilizado por Backus foi o de programación a nivel de obxectos, pero na actualidade ese termo traería confusión coa programación orientada a obxectos.

 Características 
Os programas a nivel de valores describen como combinar diferentes valores (por exemplo, números, caracteres etc.) para formar novos valores ata obter o resultado final. Os novos valores obtéñense como resultado da aplicación de operacións que transforman valores noutros valores, por exemplo, a suma, a concatenación, o investimento de matrices etc.

As linguaxes que seguen o estilo de Von Neumann son de nivel de valores: as expresións á dereita dunha asignación teñen por obxecto a creación do novo valor a asignar.

 Relación cos tipos de datos 
O enfoque de programación a nivel de valores préstase para o estudo dos valores baixo as operacións de formación de valores e das súas propiedades alxébricas.

 Relación coas linguaxes baseadas no cálculo lambda 
Segundo este punto de vista, as linguaxes baseadas no cálculo lambda (tales como Lisp, ISWIM e Scheme) son linguaxes a nivel de valores, aínda que o seu deseño non as restrinxe a iso.

Por exemplo, nunha definición típica no cálculo lambda da forma f = λx.E a variable x así como a expresión E denotan valores. Tipicamente, E é unha expresión que aplica funcións de formación de valores a variables e constantes.

 Punto de vista oposto 
Pola súa banda, os partidarios da programación funcional consideran as linguaxes baseadas no cálculo lambda como contentivos de ambos os paradigmas, dado que tanto as operacións de formación de valores como as operacións de construción de programas se expresan no mesmo formalismo, deixando que o usuario escolla que partes do seu programa deben ser escritas nun paradigma ou no outro.

 Véxase tamén 
 Outros artigos 
 Programación a nivel funcional
 Programación funcional
 Paradigmas de programación

Categoría:Paradigmas de programación