[TYPES] Declarative vs imperative

Mark Janssen dreamingforward at gmail.com
Tue Apr 23 00:23:54 EDT 2013

On Mon, Apr 22, 2013 at 8:51 PM, Vladimir Lifschitz <vl at cs.utexas.edu> wrote:
> Nikhil writes,
>> a C program is a specification for a hundred different machine code
>> algorithms that manage memory, register allocation etc.
> According to Mark,
>> A C program is not a specification in any sense
> They obviously use the the same word, "specification," in different ways.
> Mark talks about formally specifying the computational problem to be
> solved (and so do I).  Of course a C program is not a specification in
> this sense.  Algebraic and differential equations are specifications, as
> well as pure LISP programs and ASP programs.  Nikhil and Uday talk about
> specifying a class of computational procedures that differ from each other
> by low-level details such as register allocation.  That usage indeed makes
> the notions of specification and implementation relative.  What is a
> specification will depend then on how large the classes are, what level of
> detail we are willing to disregard.

Yes, I think the key "articulation" point for that word/concept (of
"specification") is the distinction where one can say that they are
*commanding* the computer (i.e. imperatively) vs. merely *telling* the
computer something ("procedurally") -- a subtle but significant
difference, but the latter always has a layer of
specification/definition where there is a translation from a
higher-level domain to another, lower-level domain.  The key point for
me (within the realm of physical hardware and Turing Machines), is
that there is a point where this "ladder" of going form high-level to
lower-level "bottoms out" and there is no more room for interpretation
-- the electrical signals which are governed by the laws of physics.

The symbolic computing crowd seems to be completely different that all
of that and is not addressed in the above.  There the "low-level" ends
at the symbols themselves, not logic gates.


implies that there is a "bottom", where this "bottoms-out" -- the
machine instructions themselves.  There is a point, where the Once one
sends the binary codes to the CPU one is commanding -- there is no
room for interpretation

Using the term "specification" in relation to a "computer program" (
> --Vladimir

Tacoma, Washington

More information about the Types-list mailing list