On Saturday 11 November 2006 20:29, John Andersen wrote:
> On Saturday 11 November 2006 19:17, Randall R Schulz wrote:
> > Programmers are applied mathematicians. The basis of all software
> > is mathematical logic of one sort or another.
>
> Grossly over stated.

Not overstated in the slightest. It is exactly and completely true.


> Very little of programming is mathematical.
> The logic involved is usually no more than find the RED ball.

The foundations of all programming is symbolic logic. Not necessarily 
first-order predicate logic, but a variety of logics nonetheless.


> Programming is mostly moving stuff around, getting it from here
> and putting it there.  More akin to organizing your closet than
> math.

It all requires complete and precise characterization, without which 
programs could never be made to do a particular thing. Computers don't 
understand what we have them do, so we have to tell them with perfect 
precision in a completely formal language what it is we want them to 
do. The essence of those characterizations, going back to Turing and 
beyond, originates in symbolic mathematics. Mathematics, after all, is 
not primarily about numbers, but really about symbols (of which numbers 
a kind--or kinds) and patterns.

Moving data from one place to another requires a formal specification 
just as does a regular expression match, a sort or a neural network 
simulation.

The only problem with current logical formalisms is how low-level they 
are. An FOPC characterization of something as simple as the C 
library "memcpy" function requires pages of mathematical logic.

Few programmers realize just how very much they're saying when they 
write a few simple lines of C or Java. In fact, that kind of leverage 
is absolutely essential as our ambitions w.r.t. to size and complexity 
of information systems grows ever larger.


> I once debated this very issue with the head of the Math Department
> at college.  He insisted programming belonged in the Math department.
> I insisted it belonged in the business department.

The people who do the best software are those that understand the formal 
and theoretical underpinnings of computing. In rare cases, you find 
individuals with a sufficient intuitive grasp that they can craft good 
software with realtively little overt understanding of computing 
theory, but for the most part, to exploit the nature of computation 
requires a good understanding of the principle of operation.

There's a pretty good comparison, I think, with medicine. If you don't 
understand the anatomical and physiological bases of normal human 
function and ways in which it breaks down or is impaired in disease, 
you cannot be a competent, effective doctor.

At my alma mater, CS grew out of the math department, and I'm glad for 
it.


> This was before the advent of Computer Science departments, which
> took the wind out of both of our sails.

The domain of computation and of engineered information processing 
system is easily big enough to constitute a separate domain of study 
and justify separate departmental home in academia.


Randall Schulz
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to