On Saturday, November 11, 2006 @ 11:24 PM, Randall Schulz wrote:
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.
But isn't programming simply a set of instructions? Those instructions may be logical or completely illogical. Any mathematical calculations in a program are of course logical, by definition, though the logic behind the calculation may be completely illogical (wrong formula). I. e., the calculation itself is logical in that it provides the result that it was asked to give, though what it was asked to give by the programmer may have been totally illogical.
Very little of programming is mathematical. The logic involved is usually no more than find the RED ball.
I agree to some extent, though I think you grossly underestimate the logic that can be involved (i. e., it can certainly be much more complicated than "find the RED ball").
The foundations of all programming is symbolic logic.
I'd say an attempt at 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 can be quite a bit more complicated than organizing your closet, I promise you.
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.
I believe the foundation of programming is simply instructions, logical or illogical.
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
Greg Wallace --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org