[ The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list ]
On Mon, Apr 22, 2013 at 8:51 PM, Vladimir Lifschitz <[email protected]> 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. Mark 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 -- MarkJ Tacoma, Washington
