home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Devil's Doorknob BBS Capture (1996-2003)
/
devilsdoorknobbbscapture1996-2003.iso
/
Dloads
/
PROGRAMM
/
CTUTOR.ZIP
/
TEXTS.ZIP
/
INTRO.TXT
< prev
next >
Wrap
Text File
|
1986-06-30
|
9KB
|
191 lines
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