Jump to content

Talk:Declarative programming language

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by TheUser~enwiki (talk | contribs) at 14:28, 1 June 2005. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

IMO SQL isn't a programming language, rather a query language.

Makefiles

Is a Makefile declarative programming?

Wrong sentence

It is wrong: "Sometimes, functional programming languages are called declarative programming languages". Eduard Proydakov.

More precise clarification of "Declarative" required

In support of the previous discussion topic, there are a number of other definitions of what precisely constitutes "Declarative" that need to be considered.

See for instance Functional Programming is not [declarative]:

A pertinent quote from the preface to the first edition of SICP, which clearly defines the differing philosophies:

Underlying our approach to this subject is our conviction that "computer science" is not a science and that its significance has little to do with computers. The computer revolution is a revolution in the way we think and in the way we express what we think. The essence of this change is the emergence of what might best be called procedural epistemology--the study of the structure of knowledge from an imperative point of view, as opposed to the more declarative point of view taken by classical mathematical subjects. Mathematics provides a framework for dealing precisely with notions of "what is". Computation provides a framework for dealing precisely with notions of "how to".

And in section 1.1.7 (2nd ed.):

The contrast between function and procedure is a reflection of the general distinction between describing properties of things and describing how to do things, or, as it is some times referred to, the distinction between declarative knowledge and imperative knowledge. In mathematics we are usually concerned with declarative (what is) descriptions, whereas in computer science we are usually concerned with imperative (how to) descriptions.

I would hesitate to make the artificial division between Computer Science and Mathematics, though. Mathematics definitely has both the declarative - functions, and the imperative - formulas that define how to calculate functions (there may be recursive implications to formulas, which can themselves be defined in terms of functions, but this seems to be a dangerous route to go down and may lead into Gödel's incompleteness theorem territory).

Perhaps, it could be said that the current perception of the difference between Computer Science and Mathematics varies in the emphasis placed upon how important declarative versus imperative modes of conceptualizing are.