Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a...

66
Ports, Protocols, and Processes: a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia University 22 November 2007 1/50

Transcript of Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a...

Page 1: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Ports, Protocols, andProcesses:

a Programming Paradigm?

Peter GrogonoComputer Science and Software Engineering

Concordia University

22 November 2007

1/50

Page 2: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The Erasmus Project

Desiderius Erasmus of Rotterdam (1466-1536)

2/50

Page 3: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Dramatis Person�

Brian Shearing

Peter Grogono

Rana Issa

Nima Jafroodi

Nurudeen Lameed

3/50

Page 4: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Inspiring Thoughts

``The fox has many tricks. The hedgehog has but one.But that is the best of all.''

Erasmus, c. 1500

``It is better to have 100 functions operate on one datastructure than 10 functions on 10 data structures.''

Perlis, 1982

``One thing [language designers] should not do is to includeuntried ideas of their own. Their task is consolidation,not innovation.''

Hoare, 1974

4/50

Page 5: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Road Map

Programmingwhat we've done

Principleswhy we've done it

Reasoninghow we know it works

Developmenthow we fit it together

For and againstwhy we bother

5/50

Page 6: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Main

Cell

Main = ();

Main();

6/50

Page 7: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Main

Cell

prot = [ ];

Main = ();

Main();

6a/50

Page 8: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

serverProc

Process

clientCell

Main

prot

prot = [ ];

serverProc = { p +: prot | };

clientCell = ( p -: prot | );

Main = ( p :: prot; serverProc(p); clientCell(p) );

Main();

6b/50

Page 9: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

prot = [ start; *( query: Text; ^reply: Integer ); stop ];

serverProc = { p +: prot |

p.start;

loopselect

|| input: Text := p.query; p.reply := 0

|| p.stop; exit

end

};

clientCell = ( p -: prot | );

Main = ( p :: prot; serverProc(p); clientCell(p) );

Main();

7/50

Page 10: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

serverProc

clientCell

clientProcess

Main

prot

clientProc = { p -: prot | };

clientCell = ( p -: prot | clientProc(p) );

8/50

Page 11: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Protocols

query = [ question; ^answer ]

sequence = [

first: Integer;

second: Text;

third: Float ]

method1 = [ *( arg1; arg2; ...; ^result ) ]

method2 = [ *( arg1; arg2; ...; ^res1; ^res2 ) ]

class = [ *( M1 | M2 | ... | Mn ) ]

9/50

Page 12: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Statements

select

|| p.red; ...

|| p.yellow; ...

|| p.green; ...

end

select

|stored < 10| buff[i] := p.x; ...

|stored > 0| q.y := buff[j]; ...

end

select fair ...

select ordered ...

select random ...

10/50

Page 13: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Processes

prot = [ *( arg: Integer ) ];

filter = { p +: prot |

prime: Integer := p.arg;

sys.out := text prime + ’ ’;

q -: prot;

filter(q);

loop

n: Integer := p.arg;

if n % prime != 0

then q.arg := n

end

end

};

11/50

Page 14: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

filter

p q

filter

p q

filter

p q

filter

p q

filter

p q

filter

p q

filter

pq

filter

pqfilter

pqfilterpqfilterpqfilterpq

12/50

Page 15: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

filter

12a/50

Page 16: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Semantics vs. Deployment

square

squareCell

client

clientCell

main

p pch

13/50

Page 17: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Code

sqProt = [ *( query: Float; ^reply: Text ) ];

square = { p +: sqProt |

loop

q: Float := p.query;

p.reply := text(q * q);

end

};

squareCell = ( port +: sqProt | square(port) );

client = { p -: sqProt |

p.query := 2;

sys.out := p.reply + "\n";

};

clientCell = ( port -: sqProt | client(port) );

main = ( ch :: sqProt; squareCell(ch); clientCell(ch) );

main();

14/50

Page 18: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Metacode

<Mapping>

<Processor> alpha.encs.concordia.ca

<Port> 5555 </Port>

<Cell> squareCell </Cell>

<Cell> clientCell1 </Cell>

</Processor>

<Processor> beta.encs.concordia.ca

<Port> 5555 </Port>

<Cell> squareCell1 </Cell>

<Cell> clientCell </Cell>

</Processor>

</Mapping>

15/50

Page 19: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Road Map

Programmingwhat we've done

Principleswhy we've done it

Reasoninghow we know it works

Developmenthow we fit it together

For and againstwhy we bother

16/50

Page 20: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Cells

Programs consist of cells

Cells may contain variables, processes, and cells

Cells can be of any sizeprograms are ``fractal''

Cells are ``first-class citizens''

Control flow never crosses a cell boundary

Cells are explicitly provided with all needed resources

Cells may exchange messages

Processes within a cell behave as co-routines

17/50

Page 21: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

18/50

Page 22: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Processes

A process is always inside a cell

Processes may contain variables, processes, and cells

Processes are ``first-class citizens''

All actions are performed within processes

Control flow never crosses a process boundary

A process may access variables within its cell

Processes communicate by exchanging messages

A process relinquishes control when it communicatesno race conditions

19/50

Page 23: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

C1

#

C2

#

P1

P2

P3V1 V2

One program counter per cell

20/50

Page 24: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Shared Variables

proc = { p +: prot; sv: Float |

... sv ...

sys.out := sv;

p.val := ...

sys.out := sv;

}

21/50

Page 25: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Shared Variables

proc = { p +: prot; sv: Float |

... sv ...

sys.out := sv;

p.val := sv;

sys.out := sv;

}

21a/50

Page 26: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Shared Variables

proc =

{ ... |

atomic

{

...

open

{

p.val := ...

}

...

}

}

21b/50

Page 27: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Protocols

Protocols define interfaces

Protocols specify communication patterns

Protocols consist of typed messages and signals

Protocols define sequence, choice, and repetition

There is a ``satisfaction'' relation on protocolsdetails later

22/50

Page 28: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Messages

A ``sent'' message is an lvalue:

p.result := 42;

A ``received'' message is an rvalue:

sum := p.val + ...;

Signals synchronize:

p.stop

23/50

Page 29: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Messages

A ``sent'' message is an lvalue:

p.result := 42;

A ``received'' message is an rvalue:

sum := p.val + q.val;

Signals synchronize:

p.stop

23a/50

Page 30: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Separation of Concern

Cells define structure ∼ Processes define action

Code defines meanings ∼ Metacode defines deployment

Protocols specify processes ∼ Protocols ensure satisfaction

24/50

Page 31: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Road Map

Programmingwhat we've done

Principleswhy we've done it

Reasoninghow we know it works

Developmenthow we fit it together

For and againstwhy we bother

25/50

Page 32: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

26/50

Page 33: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Labelled Transition System (LTS):

Q = { q0, q1, q2, q3 } ,

L = {α } ,

T = { (q0, α, q0), (q1, α, q2), (q2, α, q3) } .

q0

q1 q2 q3

α

α α

27/50

Page 34: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Strong Simulation: S ⊆ Q × Q

If (p, q) ∈ S and pα−→ p′ then

there exists q ′ ∈ Q such that (p′, q′) ∈ S and qα−→ q′.

p′ q′

qp

S

α

S

α

28/50

Page 35: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

q0

q1 q2 q3

α

α α

S = { (q1, q0), (q2, q0), (q3, q0) }

is a strong simulation.

29/50

Page 36: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

If

· (Q, L, T ) is a LTS

· A ⊆ Q

· B ⊆ Q

· S ⊆ A × B is a strong simulation

then

A v B (A is simulated by B)

B w A (B simulates A)

w is reflexive, transitive, computable.

30/50

Page 37: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Protocol P :

α; ( β | γ ); δ

LTS L(P ):

A B C Dα

β

γ

δ

31/50

Page 38: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Code C:

p.alpha;

select

|| p.beta; ...

|| p.gamma; ...

end;

p.delta

LTS L(C):

A B C Dα

β

γ

δ

32/50

Page 39: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Server Client

SPS PC

C

L(S) w L(Ps) w L(Pc) w L(C)

33/50

Page 40: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

q0

q1 q2 q3

α

α α

Server:loop

p.alpha := ...

end

Protocol:[ *( alpha ) ]

Client:x := p.alpha;

y := p.alpha

34/50

Page 41: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Hennessy-Milner Logic

Syntax:

F = X (states satisfying X)| tt (all states)| ff (no states)| F1 ∧ F2 (intersection)| F1 ∨ F2 (union)| 〈α〉F (some α-trans −→ F )| [α]F (all α-trans −→ F )

35/50

Page 42: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Semantics (with respect to an LTS (Q, L, T )):

[[·]] : Σ → P(Q) → P(Q)

[[X ]](S) = S

[[ tt ]](S) = Q

[[ ff ]](S) = ∅[[F1 ∧ F2 ]](S) = [[F1 ]](S) ∩ [[F2 ]](S)

[[F1 ∨ F2 ]](S) = [[F1 ]](S) ∪ [[F2 ]](S)

[[ 〈α〉 ]](S) = { p | ∃p′ ∈ S . pα−→ p′ }

[[ [α] ]](S) = { p | ∀p′ . p α−→ p′ ⇒ p′ ∈ S }

36/50

Page 43: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Reasoning - Summary

Code

Procotols

−→ LTS −→

w (simulates)

HM Logic

Also:

FSP / LTSA (Magee & Kramer)Finite State Processes / Labelled Transition System Analyzer

TLA+ (Lamport)Temporal Logic of Actions Plus

37/50

Page 44: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Road Map

Programmingwhat we've done

Principleswhy we've done it

Reasoninghow we know it works

Developmenthow we fit it together

For and againstwhy we bother

38/50

Page 45: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

39/50

Page 46: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Requirements

Specification

Design

PL

machine code

40/50

Page 47: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Change moves upwards in the funnel:

spaghetti ??−→ waterfall

structured code −→ SADTStructured Analysis & Design Technique

object-oriented languages −→ OOADObject-Oriented Analysis & Design

aspect-oriented languages −→ AOSDAspect-Oriented Software Development

process-oriented languages ??−→ POMDDProcess-Oriented Model-Driven Design

41/50

Page 48: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Therefore:

To effect change in the

software development process,

we must change the

programming paradigm.

42/50

Page 49: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Hypothesis

POMDD will succeed because:

real world ∼= concurrent processes

concurrent processes ⇒ multiprocessors

multiprocessors ⇒ concurrent software

concurrent software ⇒ models real world

cells/processes ⇒ lower coupling

lower coupling ⇒ refactoring

43/50

Page 50: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Road Map

Programmingwhat we've done

Principleswhy we've done it

Reasoninghow we know it works

Developmenthow we fit it together

For and againstwhy we bother

44/50

Page 51: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The case against

45/50

Page 52: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The case against

Programming languages are not the problem

45a/50

Page 53: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The case against

Programming languages are not the problem

Object-oriented programming is good enough

45b/50

Page 54: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The case against

Programming languages are not the problem

Aspect-oriented programming is good enough

45c/50

Page 55: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The case against

Programming languages are not the problem

Aspect-oriented programming is good enough

We've hidden the hard bitsCICS, J2EE, CORBA, ...

45d/50

Page 56: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The case against

Programming languages are not the problem

Aspect-oriented programming is good enough

We've hidden the hard bitsCICS, J2EE, CORBA, ...

Introducing a new paradigm is no longer feasible

45e/50

Page 57: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The case for

46/50

Page 58: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The case for

Many distributed applications

46a/50

Page 59: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The case for

Many distributed applications

Multicore processors

46b/50

Page 60: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The case for

Many distributed applications

Multicore processors

Process-oriented programming is ... good

46c/50

Page 61: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The case forMany distributed applications

Multicore processors

Process-oriented programming is ... good

We need software

development

maintenance

growth

adaptation

evolution

refactoring

46d/50

Page 62: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Competition

ABCL/1 Joyce

Ada Mozart/Oz

Cilk Occam-π

Concurrent Pascal SALSA

Erlang SR

47/50

Page 63: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Wrap Up

Objects ... Aspects ... Threads ... Locks ... ×

Hidden guru code ... ×

Modular concurrency ...√

48/50

Page 64: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Erasmus provides ...

safe concurrency

modularity

scalability

modelling capability

weak coupling

testing

49/50

Page 65: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

Erasmus provides ...

safe concurrency

modularity

scalability

modelling capability

weak coupling

testing

... we hope!

49a/50

Page 66: Ports, Protocols, and Processesusers.encs.concordia.ca/home/g/grogono/Erasmus/ppp-slides.pdf · a Programming Paradigm? Peter Grogono Computer Science and Software Engineering Concordia

The End

50/50