
During
W.W.II, in the dark age before the PC, a large electronic adding machine
was built out of vacuum tubes and miles of wire. It was used to quickly
compute math tables for firing long range artillery weapons.
Numbers could be set up on the machine with mechanical switches for a given problem. To use it to solve a different problem required rewiring the machine. That adding machine became the computer, the problem solved became the program, and the rewiring process became know as programming. Today's computers are still only adding machines. They only subtract by adding negative numbers. We don't have to use toggle switches to input our numbers anymore, but the computer still uses only groups of "one's" and "zero's" inside. The "one's" and "zero's" used in the computer instructions are known as machine code. Each type of computer has its' own set of instructions. The Apple instruction set is not the same as an IBM instruction set. A short hand notation called machine language is used to represent each instruction. A machine language program is the step by step process that the computer uses to do something. A machine language program to print a number on the printer takes many instructions that have to be done in the correct order. Assembly language combines groups of machine instructions in one statement, so that you don't have to know all the steps that the computer has to use to do something. The problem with assembly language is that it is still tied to one computer. The IBM assembly language will not work for an Apple computer. Higher level languages such as BASIC, COBOL, FORTRAN, and C/C++ are to a large extent computer independent. The same program should have the same results on any computer but some computers may add their own flavor or extensions to the definitions of the language. The computer independence is achieved by a separate compiler program for each computer. The compiler program for the IBM computer takes the higher level program instructions and translates them into the correct machine language instructions needed by the computer. These instructions generated by the compiler are known as the object code and the object code is the program that the computer actually runs. Most compiler programs also include an error catching program called a debugger. The debugger name is supposedly from fixing dark age computer malfunctions by cleaning the insect "bugs" out of the computer relays. I have had ants get into my air-conditioner relay outside, so it could be a true story. "Discover Programming C/C++ for Windows 95/NT" ($79 list) by MetroWerks of Austin, TX (1-800-377-5416) has the compiler, a debugger, five books with an ACROBAT reader, how to do it tutorials, and an internal web site all on one CD-ROM. There is an old saying to the effect that you can't judge a book
by its cover. That saying can be applied to the cover of "Discover Programming."
The cover states "Have you ever wanted to learn to program? Now you can.
Discover Programming provides everything you'll need to learn how." The
package contains everything you will need, but it is not meant for real
beginners. When I started going through the documentation, I found this
statement about the tutorials provided with the software package:
Actually, the compiler is easy to use and the first programming book "Learn C under Windows 95/NT" by Dave Mark hasn't been too bad for the first five chapters. I do feel that a beginner would have to go though it several times for the definitions to match up with the words and their meanings. There are three more books on programming:
My installation of the package went allright after a stumble in my first attempt. The printed installation manual said that a minimal hard disk requirement was 70 megs of space. So I made 77 megs free on one of my partitions and found out that the system really wanted 80 megs free. The on-line docs also said 80 megs. I don't know why as it only used 9,634,140 bytes to install 248 items. Then I installed three of the books and I started learning "C." The program also requires at least a 486 with 16 megs of RAM to run. To properly evaluate the package would require a match up of how well the compiler and debugger work. Is the generated program short and fast, and how well does the compiler catch programming errors and how well does the debugger explain the errors so that you can fix them. All of that in relation to the other products on the market. Another good test will be to see how well I can program after I go through all the books and not just the first five chapters. I was unable to evaluate the tech support available as Metrowerks will not include a registration card with their evaluation copy of a program. They do have a web site at www.metrowerks.com You can leave e-mail at the site and order any of their products on-line. I did not find it in stock locally. The package advertises a 30 day money-back guarantee and free tech support. Overall, it looks as if I should be able to learn C/C++ with this package. In the big picture, for a professional programmer, this package looks to be an inexpensive way to evaluate Metrowerks IDE and the CodeWarrior tools without spending $399 for the whole package. The complete IDE includes several front ends so that you can use JAVA, PASCAL, and several others to generate program code for several computers. With the complete IDE you should be able to write a program in "C++" and generate a marketable program for a MAC, IBM, and other platforms. Check at www.metrowerks.com for more information. Bob, W6TVJ, knows CDC Cyber 6XXX, 7X machine language, and some DEC microcode. He can also BASIC and FORTRAN. Now he is trying to get some "C" to go along with our San Antonio sand. |