Principles of programming. Languages introduction. Objectives

Слайд 2

Objectives To introduce several different paradigms of programming But isn’t one

Objectives

To introduce several different paradigms of programming
But isn’t one language pretty

much like another? No!
To gain experience with these paradigms by using example programming languages
To understand concepts of syntax, translation, abstraction, and implementation
Слайд 3

Paradigms of Programming? There are several ways to think about computation:

Paradigms of Programming?

There are several ways to think about computation:
a set

of instructions to be executed
a set of expressions to be evaluated
a set of rules to be applied
a set of objects to be arranged
a set of messages to be sent and received
Слайд 4

Some Programming Paradigms Procedural examples: C, Pascal, Basic, Fortran Functional examples:

Some Programming Paradigms

Procedural
examples: C, Pascal, Basic, Fortran
Functional
examples: Lisp, ML
Object-oriented
examples: C++, Java,

Smalltalk
Rule-based (or Logic)
example: Prolog
Слайд 5

Why so many? Most important: the choice of paradigm (and therefore

Why so many?

Most important: the choice of paradigm (and therefore language)

depends on how humans best think about the problem
Other considerations:
efficiency
compatibility with existing code
availability of translators
Слайд 6

Models of Computation RAM machine procedural directed acyclic graphs Smalltalk model

Models of Computation

RAM machine
procedural
directed acyclic graphs
Smalltalk model of O-O
partial recursive functions
Lisp

and ML
Markov algorithms
Prolog is loosely based on these
Слайд 7

Lots of Languages There are many programming languages out there Lots

Lots of Languages

There are many programming languages out there
Lots of other

PL-like objects
document languages, e.g. LaTeX, Postscript
command languages, e.g. bash, MATLAB
markup languages, e.g. HTML and XML
specification languages, e.g. UML
Слайд 8

Issues for all Languages Can it be understood by people and

Issues for all Languages

Can it be understood by people and processed

by machines?
although translation may be required
Sufficient expressive power?
can we say what needs to be said, at an appropriate level of abstraction?
Слайд 9

Translation Compilation Translate into instructions suitable for some other (lower level)

Translation

Compilation
Translate into instructions suitable for some other (lower level) machine
During execution,

that machine maintains program state information
Interpretation
May involve some translation
Interpreter maintains program state