VanRoy-Concepts, Techniques and Models in Computer Programming
VanRoy-Concepts, Techniques and Models in Computer Programming
of Computer Programming
Dec. 9, 2004
Seif Haridi
Kungliga Tekniska Högskolan
Kista, Sweden
Explain semantics
+ cells + threads
Add cells (mutable state)
Explain data abstraction: objects
Stateful Declarative
and ADTs
programming and concurrency
Explain object-oriented data abstraction and agents
programming: classes,
polymorphism, and inheritance
Add threads: leads to declarative
concurrency
Most comprehensive overview in
one course
9/12/2004 P. Van Roy, BCS talk 19
Some courses (3)
Third-year course (INGI2131 at
UCL) by Peter Van Roy
Declarative
Review of declarative programming
programming
Add threads: leads to declarative
concurrency
Add by-need synchronization: + threads
leads to lazy execution
Combining lazy execution and Declarative
concurrency concurrency
Add ports (communication channels):
leads to message-passing + ports + cells
concurrency
Designing multi-agent systems
Message-passing Shared-state
Add cells (mutable state): leads to
concurrency concurrency
shared-state concurrency
Tuple spaces (Linda-like)
Locks, monitors, transactions
Focus on concurrent programming
9/12/2004 P. Van Roy, BCS talk 20
Examples showing the
usefulness of the approach
The concepts-based approach gives a broader
and deeper view of programming than the more
traditional language- or tool-oriented approach
Let us see some examples of this:
Concurrent programming
Data abstraction
Graphical user interface programming
Object-oriented programming in a wider framework
We explain these examples
bundling
Abstract Object
data type
W=placeholder(handle:P)
…
{P set( label(text:”Hello”) )}
{P set( entry(text:”World”) )}
<v> ::= …
<p> ::= …
9/12/2004 P. Van Roy, BCS talk 37
Syntax of a simple
kernel language (2)
EBNF notation; <v> denotes a value, <p> denotes a pattern