home *** CD-ROM | disk | FTP | other *** search
- Introduction to the C Tutorial
-
-
- The programming language C, was originally developed by
-
- Dennis Ritchie of Bell Laboratories and was designed to run
-
- on a PDP-11 with a UNIX operating system. Although it was
-
- originally intended to run under UNIX, there has been a
-
- great interest in running it under the MS-DOS operating
-
- system and specifically on the IBM PC and compatibles. It
-
- is an excellent language for this environment because of the
-
- simplicity of expression, the compactness of the code, and
-
- the wide range of applicability.
-
- It is not a good "beginning" language because it is
-
- somewhat cryptic in nature. It allows the programmer a wide
-
- range of operations from high level down to a very low level
-
- approaching the level of assembly language. There seems to
-
- be no limit to the flexibility available. One experienced C
-
- programmer made the statement, "You can program anything in
-
- C", and the statement is well supported by my own experience
-
- with the language. Along with the resulting freedom
-
- however, you take on a great deal of responsibility because
-
- it is very easy to write a program that destroys itself due
-
- to the silly little errors that the Pascal compiler will
-
- flag and call a fatal error. In C, you are very much on
-
- your own as you will soon find.
-
- Since C is not a beginners language, I will assume you
-
- are not a beginning programmer, and I will not attempt to
-
- bore you by defining a constant and a variable. You will be
-
- expected to know these basic concepts. You will, however,
-
- be expected to know nothing of the C programming language.
-
- I will begin with the most basic concepts of C and take you
-
- up to the highest level of C programming including the
-
- usually intimidating concepts of pointers, structures, and
-
- dynamic allocation. To fully understand these concepts, it
-
- will take a good bit of time and work on your part because
-
- they not particularly easy to grasp, but they are very
-
- powerful tools. Enough said about that, you will see their
-
- power when we get there, just don't allow yourself to worry
-
- about them yet.
-
- Programming in C is a tremendous asset in those areas
-
- where you may want to use Assembly Language but would rather
-
- keep it a simple to write and easy to maintain program. It
-
- has been said that a program written in C will pay a premium
-
- of a 50 to 100% increase in runtime because no language is
-
- as compact or fast as Assembly Language. However, the time
-
- saved in coding can be tremendous, making it the most
-
- desirable language for many programming chores. In
-
- addition, since most programs spend 90 percent of their
-
- operating time in only 10 percent or less of the code, it is
-
- possible to write a program in C, then rewrite a small
-
- portion of the code in Assembly Language and approach the
-
-
-
- Page 1
-
-
-
-
-
-
-
-
-
- Introduction to the C Tutorial
-
-
- execution speed of the same program if it were written
-
- entirely in Assembly Language.
-
- Approximately 75 percent of all new commercial programs
-
- introduced for the IBM PC have been written in C, and the
-
- percentage is probably growing. Microsoft recently
-
- introduced a new Macro Assembler, version 4.0, and they said
-
- that it was written in C. There are probably a few routines
-
- coded in Assembly Language, but the majority was written in
-
- C.
-
- Since C was designed essentially by one person, and not
-
- by a committee, it is a very usable language but not too
-
- well defined. There is no standard for the C language, but
-
- the American National Standards Association (ANSI) is
-
- developing a standard for the language at which time it will
-
- follow rigid rules. It is interesting to note, however,
-
- that even though it does not have a standard, the
-
- differences between implementations are very small. This is
-
- probably due to the fact that the original unofficial
-
- definition was so well thought out and carefully planned
-
- that extensions to the language are not needed. Pascal,
-
- which has a rigorous definition, has many extensions by
-
- compiler writers and every extension is different. This
-
- leads to a real problem when transporting a Pascal program
-
- from one computer to another.
-
- Even though the C language enjoys a good record when
-
- programs are transported from one implementation to another,
-
- there are differences in compilers as you will find anytime
-
- you try to use another compiler. Most of the differences
-
- become apparent when you use nonstandard extensions such as
-
- calls to the DOS BIOS, but even these differences can be
-
- minimized by careful choice of programming means.
-
- Your first problem will not be how to program in C, but
-
- how to use your particular compiler. Since there are over
-
- 20 good compilers available, there is no way I can cover the
-
- operation of all compilers. Notes about a few of the better
-
- known compilers are given in the "COMPILER.DOC" file on the
-
- distribution diskette. Read the documentation that came
-
- with your compiler to learn how to compile and run a
-
- program.
-
- One last note about compilers. I wrote a moderately
-
- large program in C that was composed of about 1200 lines of
-
- source code contained in 4 separately compiled files. I was
-
- initially using a very inexpensive compiler from MIX
-
- Software of Richardson, Texas that sells for $39.95. This
-
- compiler did everything I ever asked it to do and did it
-
- well, including floating point numbers. In addition, the
-
-
-
- Page 2
-
-
-
-
-
-
-
-
-
- Introduction to the C Tutorial
-
-
- compile times were extremely short and there were many
-
- extensions to the basic language as defined by Kernigan &
-
- Ritchie. In short, the compiler was a good implementation.
-
- Later, I switched over to a Lattice C compiler that sells
-
- for $500.00. It took a bit of work because the Lattice
-
- compiler did not have as many extensions as the MIX
-
- compiler. The Lattice compiler also took considerably
-
- longer to compile, probably 2 to 3 times as long. The big
-
- difference in the two compilers was in the execution time of
-
- the program which read in a file, did a lot of searching in
-
- memory, and displayed the results on the monitor. The final
-
- MIX program took 95 seconds to complete all operations, and
-
- the Lattice compiled program took only 10 seconds to
-
- complete. I should add that the MIX compiler has a speedup
-
- utility that increases the speed by a factor of about 8,
-
- according to one independent review, getting the speed of
-
- the MIX program in the range of the Lattice program. (I did
-
- not try the speedup program on this particular file.) The
-
- MIX compiler missed several subtle type errors during
-
- compile that were flagged as warnings by the Lattice
-
- compiler. Due to the nature of that particular program,
-
- either run-time would be acceptable and therefore either
-
- compiler would be acceptable.
-
- The above paragraph was given only to aid you in
-
- selecting a compiler. The Lattice compiler is very
-
- difficult to use for an inexperienced programmer, but has
-
- very few limitations. The MIX compiler, on the other hand,
-
- was very easy to set up and begin using, and would be very
-
- appropriate for most "hobby" computing. Depending on your
-
- application, the most expensive is probably not the best.
-
- In this case, the MIX compiler would be great for learning
-
- the language and for many applications.
-
- Consult the COMPILER.DOC file for notes on other
-
- compilers and recommendations on what compiler may be
-
- suitable for your purposes.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 3
-