Programming is the art (or science) of writing
instructions for a computer. These instructions are written in a "language".
There are several levels of language, but all languages must be boiled down to
machine code for the machine to understand them.
- machine code - written entirely in 0s and 1s which represent "off"
and "on". Machine code programs are refered to as "binaries".
- assembly - A system of memnonics (like MOV,
NOP, JMP) each representing a small chunk of machine code which does something
specific. Assembly is read and converted to machine code by a program called
an assembler. The smallest and most efficient
programs are written by ace assembly programmers.
- higher level programming languages, including:
- Third Generation - languages reasonably readable
by a human with a programming background, but still rather detailed. Examples
are Pascal, C, Fortran, BASIC, COBOL. These are converted to machine code in
advance by a program called a compiler (Pascal,
C, Fortran, etc.), or while the program is being run by an
interpreter (some BASICs). Compiled languages
are more demanding to program, but run many times as fast.
- Structured Languages - a variety of third
generation languages that encourage orderly, modular, maintainable programs
(Pascal, Modula, C) versus "spagehetti code" (BASIC) by
adhering to the three holy control structures (IF,THEN,ELSE; WHILE DO; DO
UNTIL) + CASE or SWITCH or something, and by making it a terrible moral offense
to use the GOTO statement.
- Fourth Generation - database languages, where
very complex operations are represented by relatively simple statements. Since
these complex operations must be generalized for many uses, the resulting
programs are larger and slower than third generation programs but are much
easier to write. They are converted into machine code by compilers,
interpreters, or often a combination of both.
- Fifth Generation - an advanced proramming
language project by Japanese industry which was to show once and for all that
Japanese can be innovators, not just copiers. It faded quickly into oblivion,
not for lack of innovation, but because each company that participated in the
project, as soon as they saw something profitable, grabbed it and ran - until
there were no participants left.
- Object Oriented - the current "latest & greatest"
programming method. Structured programming taken to another level. The object
of object oriented programming is to program well tested "objects" that can be
used over and over in different programs without further testing. Legend has
it someone, somewhere succeeded in this at least partially at least once.
Examples of Object Oriented languages are SmallTalk, C++ (properly pronounced
"C incremented"), Java and Eifel. Object oriented programming is useful to
keep large programming projects reasonably organized.
Popular: One who breaks into computer systems, produces viri, etc.; a
Hackerspeak: A programming wizz. A clever piece of
code may be called "a good hack".
Use the popular definition and you will be flamed by hackers and reminded that
the proper term for guys who break into computer systems is "cracker". They
may even paste reminders all over your Web pages. Those persons describe by
hackers as "crackers" refer to themselves as "hackers".
Stack - A block of memory used by programs for
temporary storage of variables. It is a LIFO (Last In First Out) buffer and
is not randomly addressed. Variables are "Pushed" onto the stack and
"Poped" back from the stack.
API - Application Programming Interface - a defined
and published format by which a programmer can access services of an operating
system or other service without knowing its internal workings. The most well
known APIs are Microsoft's Windows APIs.
PGP - Pretty Good Privacy - A method of sending
encrypted messages using Public Key cryptography. The developer of PGP has
released it as "free software".