Mathematics - The Systematic Reasoning
I remembered the way my mathematic teachers taught maths in class. Although none of them explained why we must learn maths, as it was the way supposed to be, they taught me systematic problem solving. I began to appreciate the beauty of mathematics when I started immersing myself in programming. The algorithm development and language constructs which are based on mathematics fascinate me with its beauty.
A good programming language teaches us systematic discipline and systematic reasoning. The first programming language which I learned was Commodore BASIC. I hated that. I learned half way (as the matter of fact, 2 days) and I switched to Apple Basic. In the mid 1980s, Apple II was the most popular home computer after Commodore VIC 20. Apple II that ran Apple DOS caught on the wagon very fast. The most common programming tool on Apple II was of course Apple BASIC. That was my first programming language and I had written many programs with it.
Then I was exposed to FORTRAN 77. The language construct was pretty much like Apple BASIC. I caught on with FORTRAN pretty fast. Then under some influences from friends whom I met at the computer center, I learned Apple Pascal. We challenged one another to increase the boot speed of Apple DOS. We rewrote Apple DOS with Apple Pascal and evidently increased the booting speed of Apple DOS.
Pascal is a very structured language (compared to Apple BASIC and FORTRAN 77) invented by Professor Niklaus Wirth to teach students programming and systematic reasoning. The structural construct of the language enable the programmer to think of the problem in a structural approach. Pascal cultivates structural discipline in solving programming problems. Pascal has provided me most of the necessary training in systematic discipline and systematic reasoning in solving problems.
When CP/M was introduced on Apple II, I was able to use UCSD Pascal on CP/M enabled Apple II machines. It won’t be long before IBM and IBM compatibles (8086) stirred up a turmoil with MS-DOS. Then, Turbo Pascal (by Borland) emerged. Turbo Pascal was the lightest and fastest compiler at that time. I became addicted in writing computer programs with Turbo Pascal.
Then I caught on with C and C++ and began to develop software with Borland’s Turbo C/C++ compiler. When MS Windows became a de-facto standard on every desktop computers, I dwelled into Borland’s Delphi (based on Object Pascal) to develop GUI applications.
During Apple CP/M era, I was exposed to Ada. I discovered Ada compiler by accident in another computer shop. I bought the program without thinking twice. Of course, it was a pirated copy. There was no copyright law then. But thanks to the pirated Ada compiler, otherwise I would not know such beautiful programming language has ever existed!
In 1995, I started to learn Ada when books were available. In no time, I fell in love with Ada until today. Whenever I was told or perhaps requested to look at computer programs written in any other languages, e.g. PHP, Visual Basic, C/C++ and etc., I feel that represent an insult to mind trained in systematic reasoning as in Pascal papers which Professor Wirth wrote.
Ada and Pascal are very alike because Ada developers had adopted Pascal’s structural language construct. Both Ada and Pascal clearly represent logical expression without any difficulties. Both languages are constructed heavily based on mathematic concepts and thus enforce systematic discipline and systematic reasoning.
Comments
4 Responses to “Mathematics - The Systematic Reasoning”
Leave a Reply


Listen to my podcast
You and I have something in common: My first programming language was FORTRAN 95. It was taught as the first language in my university. After that we learned Pascal, Modula-2, C, C++ then Ada.
It is no doubt that Ada is the best programming language for software development.
I have two books about Modula-2 and PL-1 but I never learn both languages. The interest sparkled after I learned Pascal but quickly died off.
But I did some Prolog and learned about formal reasoning. Although I did not really put Prolog into practical use, I still quite like the language. I tried to interface some Prolog with Ada many years back. Because of lacking the support and information, I gave up the idea.
My first language was Pascal, followed by C, C++ and Eiffel. I learned Ada myself with Adrian’s help.
I look at both Lisp and Prolog and mingled with them for a while but never went deeper.
Among all the languages I know, I prefer Ada and Pascal. Ada being my top priority choice of language.
I remembered in the course of Compiler Design, we had analysis of Pascal semantic mathematically. It was very interesting course as we learned how mathematic concepts turn into a programming language and semantic. Both Ada and Pascal are mathematically most beautiful.
龙
I agree with you that Ada (and Pascal) is mathematically most beautiful.
No wonder you learned Ada with such an amazing speed (5 days, as I can remember). You already have the mathematic foundation and understanding of Pascal.