On Mar 28, 2010, at 9:00 AM, Costello, Roger L. wrote:
>
> RECAP
>
> Declarative programs describe the relationship of the output to the input.
> Declarative programs describe the problem.
> Declarative programs define reusable concepts; functions are typically the programming machinery used for defining concepts.
> Declarative programs assemble concepts to create bigger concepts, i.e., functional composition.
> Declarative programs allow the computer to devise its own execution plan, which may enable the program to be executed in any order or even in parallel.
> Declarative programs do _not_ have instructions or statements.
> Declarative programs do _not_ tell the computer what to do, i.e., how to solve the problem.
> Declarative programs do _not_ tell what values to put into particular memory locations.
> Declarative programs do _not_ have variables that vary.
> Declarative programs do _not_ impose a particular execution plan on the computer.
>
> /Roger
Functional programming is another name for this. See the paper, "Why Functional Programming Matters" http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html.
Another way to look at it is that declarative programming tends to look at programs as data, not as instructions... people with a declarative mindset tend to generate and manipulate programs, just as they would any other data.