Lee's Law of Computer Science

The Law: Everything in Computer Science can be categorized into groups of five components (otherwise known as quintuples).
Collorary: If not fix it!

Examples

Computer Science is the study of algorithms, including their
1. Formal and mathematical properties
2. Hardware realizations
3. Linguistic realizations
4. Applications
5. Ethical usage and Social Impact
Algorithms have five essential properties:
1. Well ordered
2. Unambiguous
3. Computable operations
4. Produce a result
5. Halts in finite time
There are five parts to a von Neumann architecture of a computer:
1. Arithmetic/Logic Unit (ALU)
2. Input
3. Output
4. Memory
5. Control
There are five parts to a programming language:
1. Identifiers (Name-value system)
2. Expressions (imperatives)
3. Control
4. Input/Output
5. Modules (Abstraction)
There are five paradigms of programming languages:
1. Procedural/Imperative
2. Functional/Applicative
3. Object Oriented
4. Logic programming
5. Problem-Oriented (sometimes called "special purpose languages")
There are five elements of a syntax:
1. An alphabet
2. A set of non-terminals
3. A root symbol
4. A set of rules or productions (and the associated means of generation)
5. The operation of concatentation
There are five control structures in programming languages [1]:
1. Sequential or normative control (i.e. that which happens without instrcution)
2. Conditional control (if statements)
3. Iterative systems (looping)
4. Recursion
5. Procedural calls
There are five parts to a compiler:
1. Lexical analyzer
2. Syntactic Analyzer
3. Semantic Analyzer
4. Code generator
5. Optimizer
The are five levels of hierarchy in programming languages:
1. Very high level languages
2. High level languages
3. Assembly language
4. Machine language
5. Microcode
and so on ...

Footnotes:

1. There was at one time a sixth control structure - the "go to" statement - but in 1968 Edsger Dijkstra in a letter to the editor of the Communications of the ACM entitled "Go to considered harmful" fulfilled the second law.

Last updated 2000/09/01
© J.A.N. Lee, 1996, 1997, 2000.