Professional Documents
Culture Documents
Chapter 1: Introduction
Main Topics
Control structures
Data structures
Abstractions that can be used
Understanding implementation
Understanding language
implementation issues leads to
Lexical analysis
Parsing
Programming Domains
Scientific Apps
The 1st digital computers were invented and
used for scientific application
Scientific computations
Fortran, Algol
11
System programming
Programming Domains
Scientific Apps
COBOL
Scripting Languages
Special Purpose
Languages
A.I.
FORTRAN, ALGOL
Business Apps
LISP, Prolog
Systems
Programming
13
Readability
Writeability
Reliability
Cost
14
Readability
Overall Simplicity
Orthogonality
Control Statements
Data Types and Structures
Syntax Considerations
16
Readability: Simplicity
Readability: Orthogonality
Orthogonality
19
Orthogonality
Orthogonality
Readability: Control
Statements
22
24
Readability: Syntax
Considerations
Readability: Syntax
Considerations
Identifier forms
Special words
Pascal: begin..end
C: { .. } simplicity resulted from fewer reserved words
Ada: if .. end
loop .. end loop
(greater readability resulted from more reserved words)
26
Writeability
27
Writeability
Process abstraction
Data abstraction
Expressivity
count++ vs
count = count + 1
28
Reliability
Exception handling
Aliasing
30
Costs
Training programmers
Writing programs
Compiling programs
Executing programs
32
Poor reliability
Maintaining programs
33
Computer architecture
Programming methodologies
Concurrency (procedure-oriented)
34
35
Language Categories
Imperative
Functional
O-O
Logic
36
Imperative Languages
Functional Languages
Logic Languages
fact(X,1) :X =:= 1.
fact(X,Fact) :X > 1,
NewX is X - 1,
fact(NewX,NF),
Fact is X * NF.
Object-Oriented Languages
40
Object-Oriented Languages
Characteristics of object-oriented
languages:
New Languages
44
Imperative ML
dd
fun fact n =
let
val i = ref 1;
val xn = ref n
in
while !xn>1 do (
i := !i * !xn;
xn := !xn - 1
);
!i
end;
46
Non-object-oriented Java
class Fubar {
public static void main (String[] args) {
// whole program here!
}
}
47
C and APL
Implementation methods
Compilation
49
50
Implementation methods
Interpretation
No translation
Slow execution
Becoming rare
52
Programming Environments