>> Programs written in high-level languages are *precisely* >> specifications that result in the system generating the program,
> Whilst I agree that the distinction between specification and > programming languages is not completely clear cut, there is > nevertheless a fundamental difference between specification and > programming. > In a programming language, you tell the computer what you want it to > do, normally by way of sequential statements and loops. You do not > tell the computer what you are trying to achieve. [...] This is really just arguing over what words should be used for creating software using such languages. You call it "specification" (versus "programming"), others call it "declarative programming" (versus "imperative programming"). Personally, I think the latter is the more useful way of looking at it. Complexity cannot, ultimately, be hidden; build a specification language powerful enough to build a whole application and it will have complexity enough that writing useful specifications in it demands the kind of mental discipline that is usually thought of as programming - and provides the same kind of capability for expressing error. (The errors will be at a higher level, because the language is higher level, but they will occur if the thing being built is nontrivial.) /~\ The ASCII der Mouse \ / Ribbon Campaign X Against HTML [EMAIL PROTECTED] / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B