Complex Systems Design &DistributedCalculusandCoordination
|
|
- Kory Johns
- 5 years ago
- Views:
Transcription
1 Complex Systems Design &DistributedCalculusandCoordination Concurrency and Process Algebras: Theory and Practice - Klaim Francesco Tiezzi University of Camerino francesco.tiezzi@unicam.it A.A. 2014/2015 F. Tiezzi (Unicam) CoSyDesign & DCC 1/ 45
2 Outline 1 Motivations 2 Klaim syntax 3 Klaim semantics 4 An example 5 Klaim implementation F. Tiezzi (Unicam) CoSyDesign & DCC 2/ 45
3 Original goal Motivations Programming Global Computers: distributed software architecture models Large number of heterogeneous and autonomous components Wide area distribution, manifest to application programmers Different authorities with different administrative and security policies Components with highly dynamic behavior that must adapt to unpredictable changes over time oftheenvironment,duee.g.to lack of services node failures network reconfiguration... Mobile components must support heterogeneity and interoperability, as they may detach from a node and re-attach later on a different one Openended, loosely coupled, possibly collaborative settings F. Tiezzi (Unicam) CoSyDesign & DCC 3/ 45
4 Motivations Programming Global Computers Programming Languages would definitely benefit from explicit primitives for Concurrency considering parallel and non-deterministic computations Distribution computing over different (explicit) localities Mobility moving code and processes over localities and from formal semantics and associated tools for Reasoning on programs behaviour F. Tiezzi (Unicam) CoSyDesign & DCC 4/ 45
5 The spatial dimension Motivations Many foundational languages have been designed that features mechanisms for coordinating and monitoring the use of resources for code and process mobility for managing security All these foundational languages encompass a notion of location to reflect the idea of administrative domains to model the fact that computations at a certain location are under the control of a specific authority They focus on the spatial dimension of GC programming (which is often referred to as network awareness) F. Tiezzi (Unicam) CoSyDesign & DCC 5/ 45
6 Motivations Card game F. Tiezzi (Unicam) CoSyDesign & DCC 6 / 45
7 Motivations Klaim design goal Developing a simple programming language and associated tools for network aware and mobile applications with a tractable semantic theory that permits programs verification Our Starting Points ( ) Process Algebras CCS, CSP,... Calculi and languages for Mobility Pi-calculus, Obliq, Ambients,... Tuple-based Interaction Models Linda Modal and Temporal Logics HML, CTL, ACTL, µ-calculus,... F. Tiezzi (Unicam) CoSyDesign & DCC 7/ 45
8 Klaim: mainingredients Motivations Kernel Language for Agent Interaction and Mobility a formalism for concurrent, distributed and mobile systems Linda communication model Asynchronous communication Shared tuple spaces Pattern Matching Explicit use of localities Multiple distributed tuple spaces Code and process mobility Process Calculus flavored Small set of basic operators Clean operational semantics F. Tiezzi (Unicam) CoSyDesign & DCC 8/ 45
9 Klaim: mainingredients Motivations Kernel Language for Agent Interaction and Mobility a formalism for concurrent, distributed and mobile systems Linda communication model Asynchronous communication Shared tuple spaces Pattern Matching Explicit use of localities Multiple distributed tuple spaces Code and process mobility Process Calculus flavored Small set of basic operators Clean operational semantics F. Tiezzi (Unicam) CoSyDesign & DCC 8/ 45
10 Klaim: mainingredients Motivations Kernel Language for Agent Interaction and Mobility a formalism for concurrent, distributed and mobile systems Linda communication model Asynchronous communication Shared tuple spaces Pattern Matching Explicit use of localities Multiple distributed tuple spaces Code and process mobility Process Calculus flavored Small set of basic operators Clean operational semantics F. Tiezzi (Unicam) CoSyDesign & DCC 8/ 45
11 Klaim: mainingredients Motivations Kernel Language for Agent Interaction and Mobility a formalism for concurrent, distributed and mobile systems Linda communication model Asynchronous communication Shared tuple spaces Pattern Matching Explicit use of localities Multiple distributed tuple spaces Code and process mobility Process Calculus flavored Small set of basic operators Clean operational semantics F. Tiezzi (Unicam) CoSyDesign & DCC 8/ 45
12 Motivations Tuples and Pattern Matching Tuples: ( foo, , true) Actual Fields (i.e. expressions) Templates: (!s, 15,!b) Actual Fields Formal Fields (i.e. variables) Pattern Matching: Formal fields match any field of the same type Actual fields match if identical F. Tiezzi (Unicam) CoSyDesign & DCC 9/ 45
13 Motivations Tuples and Pattern Matching Tuples: ( foo, , true) Actual Fields (i.e. expressions) Templates: (!s, 15,!b) Actual Fields Formal Fields (i.e. variables) Pattern Matching: Formal fields match any field of the same type Actual fields match if identical F. Tiezzi (Unicam) CoSyDesign & DCC 9/ 45
14 Motivations Tuples and Pattern Matching Tuples: ( foo, , true) Actual Fields (i.e. expressions) Templates: (!s, 15,!b) Actual Fields Formal Fields (i.e. variables) Pattern Matching: Formal fields match any field of the same type Actual fields match if identical (!s, 15,!b) matches ( foo, 15, true) (!s, 15,!b) doesnot match ( foo, 10, true) F. Tiezzi (Unicam) CoSyDesign & DCC 9/ 45
15 Motivations Linda communication model Tuple Space F. Tiezzi (Unicam) CoSyDesign & DCC 10 / 45
16 Motivations Linda communication model out(t) Tuple Space F. Tiezzi (Unicam) CoSyDesign & DCC 10 / 45
17 Motivations Linda communication model out(t) Tuple Space eval(t) F. Tiezzi (Unicam) CoSyDesign & DCC 10 / 45
18 Motivations Linda communication model out(t) in(t ) Tuple Space eval(t) F. Tiezzi (Unicam) CoSyDesign & DCC 10 / 45
19 Motivations Linda communication model out(t) in(t ) Tuple Space eval(t) read(t ) F. Tiezzi (Unicam) CoSyDesign & DCC 10 / 45
20 From Linda to Klaim Motivations Localities to model distribution Physical localities (network addresses), i.e. names Logical localities (aliases for addresses), i.e. variables Adistinctvariableself indicates the node a process is on Local and remote operations to read/withdraw/write tuples, spawn processes, create nodes Allocation environments to associate physical to logical localities Logical localities are local aliases for network addresses Programmers may not know the exact network topology Process Calculi operators to specify behaviours Action prefix Parallel composition Name creation / scope delimitation F. Tiezzi (Unicam) CoSyDesign & DCC 11 / 45
21 From Linda to Klaim Motivations Localities to model distribution Physical localities (network addresses), i.e. names Logical localities (aliases for addresses), i.e. variables Adistinctvariableself indicates the node a process is on Local and remote operations to read/withdraw/write tuples, spawn processes, create nodes Allocation environments to associate physical to logical localities Logical localities are local aliases for network addresses Programmers may not know the exact network topology Process Calculi operators to specify behaviours Action prefix Parallel composition Name creation / scope delimitation F. Tiezzi (Unicam) CoSyDesign & DCC 11 / 45
22 From Linda to Klaim Motivations Localities to model distribution Physical localities (network addresses), i.e. names Logical localities (aliases for addresses), i.e. variables Adistinctvariableself indicates the node a process is on Local and remote operations to read/withdraw/write tuples, spawn processes, create nodes Allocation environments to associate physical to logical localities Logical localities are local aliases for network addresses Programmers may not know the exact network topology Process Calculi operators to specify behaviours Action prefix Parallel composition Name creation / scope delimitation F. Tiezzi (Unicam) CoSyDesign & DCC 11 / 45
23 From Linda to Klaim Motivations Localities to model distribution Physical localities (network addresses), i.e. names Logical localities (aliases for addresses), i.e. variables Adistinctvariableself indicates the node a process is on Local and remote operations to read/withdraw/write tuples, spawn processes, create nodes Allocation environments to associate physical to logical localities Logical localities are local aliases for network addresses Programmers may not know the exact network topology Process Calculi operators to specify behaviours Action prefix Parallel composition Name creation / scope delimitation F. Tiezzi (Unicam) CoSyDesign & DCC 11 / 45
24 Klaim Motivations Klaim consists of three layers: nets, processes, and actions Nets specify the overall structure of a system, including where processes and tuple spaces are located how nodes are interconnected Processes are the actors in this system and execute by performing actions F. Tiezzi (Unicam) CoSyDesign & DCC 12 / 45
25 Klaim Motivations Klaim consists of three layers: nets, processes, and actions Nets specify the overall structure of a system, including where processes and tuple spaces are located how nodes are interconnected Processes are the actors in this system and execute by performing actions F. Tiezzi (Unicam) CoSyDesign & DCC 12 / 45
26 Klaim Motivations Klaim consists of three layers: nets, processes, and actions Nets specify the overall structure of a system, including where processes and tuple spaces are located how nodes are interconnected Processes are the actors in this system and execute by performing actions F. Tiezzi (Unicam) CoSyDesign & DCC 12 / 45
27 Klaim Nodes Motivations Locality name (address) Allocation environment Processes Tuple Space F. Tiezzi (Unicam) CoSyDesign & DCC 13 / 45
28 Klaim Nodes Motivations Locality name (address) Allocation environment Processes Tuple Space s F. Tiezzi (Unicam) CoSyDesign & DCC 13 / 45
29 Klaim Nodes Motivations Locality name (address) Allocation environment Processes Tuple Space s ρ F. Tiezzi (Unicam) CoSyDesign & DCC 13 / 45
30 Klaim Nodes Motivations Locality name (address) Allocation environment Processes Tuple Space s ρ Q F. Tiezzi (Unicam) CoSyDesign & DCC 13 / 45
31 Klaim Nodes Motivations Locality name (address) Allocation environment Processes Tuple Space s ρ Q eval(p)@s F. Tiezzi (Unicam) CoSyDesign & DCC 13 / 45
32 Klaim Nodes Motivations Locality name (address) Allocation environment Processes Tuple Space s ρ P Q eval(p)@s F. Tiezzi (Unicam) CoSyDesign & DCC 13 / 45
33 Klaim Nodes Motivations Locality name (address) Allocation environment Processes Tuple Space s ρ P Q t 1 eval(p)@s F. Tiezzi (Unicam) CoSyDesign & DCC 13 / 45
34 Klaim Nodes Motivations Locality name (address) Allocation environment Processes Tuple Space s ρ P Q t 1 eval(p)@s out(t)@s F. Tiezzi (Unicam) CoSyDesign & DCC 13 / 45
35 Motivations Klaim Nodes Locality name (address) Allocation environment Processes Tuple Space s P ρ Q t 1 t 2 eval(p)@s out(t)@s F. Tiezzi (Unicam) CoSyDesign & DCC 13 / 45
36 Motivations Klaim Nodes Locality name (address) Allocation environment Processes Tuple Space s P ρ Q t 1 t 2 eval(p)@s out(t)@s in(t )@s F. Tiezzi (Unicam) CoSyDesign & DCC 13 / 45
37 Klaim Nodes Motivations Locality name (address) Allocation environment Processes Tuple Space s ρ P Q t 2 read(t )@s eval(p)@s out(t)@s in(t )@s F. Tiezzi (Unicam) CoSyDesign & DCC 13 / 45
38 Klaim Nodes Motivations Locality name (address) Allocation environment Processes Tuple Space s ρ newloc(s ) P Q t 2 read(t )@s eval(p)@s out(t)@s in(t )@s F. Tiezzi (Unicam) CoSyDesign & DCC 13 / 45
39 Klaim Nets Motivations s 2 l s 1, l s 3 out(t)@l t3 s 3 s 1 self s 3 t 1 t 2 in(t )@self F. Tiezzi (Unicam) CoSyDesign & DCC 14 / 45
40 Klaim: Syntax(1) Klaim syntax Locality names: s, s,... Locality variables: self, l, l,... l will stand for a locality name or a locality variable F. Tiezzi (Unicam) CoSyDesign & DCC 15 / 45
41 Klaim: Syntax(1) Klaim syntax Locality names: s, s,... Locality variables: self, l, l,... l will stand for a locality name or a locality variable Tuples: Templates: t ::= e l P t1, t 2 T ::= e l P! x! l! X T1, T 2 F. Tiezzi (Unicam) CoSyDesign & DCC 15 / 45
42 Klaim: Syntax(1) Klaim syntax Locality names: s, s,... Locality variables: self, l, l,... l will stand for a locality name or a locality variable Tuples: Templates: t ::= e l P t1, t 2 T ::= e l P! x! l! X T1, T 2 Actions: a ::= in(t )@l read(t )@l out(t)@l eval(p)@l newloc(s) exchanging data, spawning new processes, creating new nodes F. Tiezzi (Unicam) CoSyDesign & DCC 15 / 45
43 Klaim: Syntax(2) Klaim syntax Nets are plain collections of interconnected nodes Nodes have a unique address, an allocation environment and host components N ::= 0 s :: ρ C N 1 N 2 (νs)n F. Tiezzi (Unicam) CoSyDesign & DCC 16 / 45
44 Klaim: Syntax(2) Klaim syntax Nets are plain collections of interconnected nodes Nodes have a unique address, an allocation environment and host components N ::= 0 s :: ρ C N 1 N 2 (νs)n Components are evaluated tuples or running processes C ::= t P C 1 C 2 F. Tiezzi (Unicam) CoSyDesign & DCC 16 / 45
45 Klaim: Syntax(2) Klaim syntax Nets are plain collections of interconnected nodes Nodes have a unique address, an allocation environment and host components N ::= 0 s :: ρ C N 1 N 2 (νs)n Components are evaluated tuples or running processes C ::= t P C 1 C 2 Processes are built up from the inert process via action prefixing, parallel composition and process invocation (and definition) P ::= a.p P 1 P 2 A( p) (A( f ) P) F. Tiezzi (Unicam) CoSyDesign & DCC 16 / 45
46 Klaim: Syntax Klaim syntax Nets: Components: Processes: Actions: N ::= 0 s :: ρ C N 1 N 2 (νs)n P ::= C ::= t P C 1 C 2 a.p P 1 P 2 A( p) (A( f ) P) a ::= in(t )@l read(t )@l out(t)@l eval(p)@l newloc(s) Tuples: t ::= e l P t1, t 2 Templates: T ::= e l P! x! l! X T1, T 2 F. Tiezzi (Unicam) CoSyDesign & DCC 17 / 45
47 Binders Klaim semantics Prefix binds x, l, X in P (read acts similarly) Prefix newloc(s).p binds s in P Restriction (νs)n binds s in N F. Tiezzi (Unicam) CoSyDesign & DCC 18 / 45
48 Klaim semantics Klaim: StructuralCongruence Monoid laws for, i.e. N 0 N, N 1 N 2 N 2 N 1, (N 1 N 2 ) N 3 N 1 (N 2 N 3 ) (Alpha) N N if N = α N (RCom) (νs 1 )(νs 2 )N (νs 2 )(νs 1 )N (Ext) N 1 (νs)n 2 (νs)(n 1 N 2 ) if s fl(n 1 ) (Abs) s :: ρ C s :: ρ (C ) (Clone) s :: ρ C 1 C 2 s :: ρ C 1 s :: ρ C 2 (PDef) s :: ρ A( p) s :: ρ P[ p/ f ] if A( f ) P F. Tiezzi (Unicam) CoSyDesign & DCC 19 / 45
49 Klaim semantics Klaim: Operational Semantics (1) Producing data: ρ(l) =s E[[ t ]] ρ = t s :: ρ out(t)@l.p s :: ρ s :: ρ P s :: ρ t where the local environment ρ is used to determine the location s that is the target of the action function E[[ t ]]ρ replaces the free locality variables occurring in t according to the local environment ρ yielding t static binding discipline Remark: Free variables act as aliases that have to be replaced by network addresses F. Tiezzi (Unicam) CoSyDesign & DCC 20 / 45
50 Klaim semantics Klaim: Operational Semantics (2) Consuming data: ρ(l) =s match(e[[ T ]] ρ, t) =σ s :: ρ in(t )@l.p s :: ρ t s :: ρ Pσ s :: ρ where: function match(t, t) checkscompliance of E[[ T ]] ρ and t and associates values (i.e. basic values, names and processes) to variables bound by the template atuplematchesagainstatemplateiftheyhavethesamenumberof fields, and corresponding fields match σ is a substitution of names and processes for the free variables in T F. Tiezzi (Unicam) CoSyDesign & DCC 21 / 45
51 Matching Function Klaim semantics match(!x, v) =[v/x] match(v, v) =ϵ match(!l, s) =[s/l] match(s, s) =ϵ match(!x, P) =[P/X ] match(t 1, t 1 )=σ 1 match(t 2, t 2 )=σ 2 match((t 1, T 2 ), (t 1, t 2 )) = σ 1 σ 2 F. Tiezzi (Unicam) CoSyDesign & DCC 22 / 45
52 Klaim semantics Klaim: Operational Semantics (3) Accessing data: ρ(l) =s match(e[[ T ]] ρ, t) =σ s :: ρ read(t )@l.p s :: ρ t s :: ρ Pσ s :: ρ t read is similar to in, buttheaccessedtupleisleftinthetuplespace F. Tiezzi (Unicam) CoSyDesign & DCC 23 / 45
53 Klaim semantics Klaim: Operational Semantics (4) Spawning new processes: ρ(l) =s s :: ρ eval(q)@l.p s :: ρ s :: ρ P s :: ρ Q No interpretation of eval s argument is performed: free variables in Q will be translated according to the remote allocation environment dynamic binding discipline F. Tiezzi (Unicam) CoSyDesign & DCC 24 / 45
54 Dynamic Scoping Klaim semantics s 2 l s 1, l s 3 eval(out(t)@self)@l s 3 self s 3 F. Tiezzi (Unicam) CoSyDesign & DCC 25 / 45
55 Dynamic Scoping Klaim semantics s 2 l s 1, l s 3 eval(out(t)@self)@l s 3 self s 3 out(t)@self F. Tiezzi (Unicam) CoSyDesign & DCC 25 / 45
56 Dynamic Scoping Klaim semantics s 2 l s 1, l s 3 eval(out(t)@self)@l s 3 self s 3 out(t)@self t F. Tiezzi (Unicam) CoSyDesign & DCC 25 / 45
57 Static Scoping Klaim semantics s 2 l s 1, l s 3 out(out(t)@self)@l s 3 self s 3 F. Tiezzi (Unicam) CoSyDesign & DCC 26 / 45
58 Static Scoping Klaim semantics s 2 l s 1, l s 3 out(out(t)@self)@l s 3 self s 3 out(t)@s 2 F. Tiezzi (Unicam) CoSyDesign & DCC 26 / 45
59 Static Scoping Klaim semantics s 2 l s 1, l s 3 out(out(t)@self)@l t s 3 self s 3 out(t)@s 2 F. Tiezzi (Unicam) CoSyDesign & DCC 26 / 45
60 Klaim semantics Klaim: Operational Semantics (5) Creating new nodes: s :: ρ newloc(s ).P (νs )(s :: ρ P s :: ρ[s /self] ) with s codom(ρ) where the environment of the creator is used to build up the environment for the new node F. Tiezzi (Unicam) CoSyDesign & DCC 27 / 45
61 Klaim semantics Klaim: Operational Semantics (7) Rules summary: ρ(l) =s E[[ t ]] ρ = t s :: ρ out(t)@l.p s :: ρ s :: ρ P s :: ρ t ρ(l) =s s :: ρ eval(q)@l.p s :: ρ s :: ρ P s :: ρ Q ρ(l) =s match(e[[ T ]] ρ, t) =σ s :: ρ in(t )@l.p s :: ρ t s :: ρ Pσ s :: ρ ρ(l) =s match(e[[ T ]] ρ, t) =σ s :: ρ read(t )@l.p s :: ρ t s :: ρ Pσ s :: ρ t s :: ρ newloc(s ).P (νs )(s :: ρ P s :: ρ[s /self] ) with s codom(ρ) F. Tiezzi (Unicam) CoSyDesign & DCC 28 / 45
62 Klaim semantics Klaim: Operational Semantics (6) Remaining rules: N 1 N 1 N 1 N 2 N 1 N 2 N N (νs)n (νs)n N M M N N N F. Tiezzi (Unicam) CoSyDesign & DCC 29 / 45
63 An example Leader Election (assumptions) n participants distributed on the nodes of a network must elect a leader Each participant is univocally identified by an id The leader will be the participant with the smaller id The topology of the network is a ring: every node is directly connected to two other nodes (prev and next) n nodes with addresses s 0,...,s n 1 The allocation environment ρ i of node s i,inadditiontothestandard mapping self s i,mapsthelogicallocalitynext to s i+1 mod n At the outset, each process retrieves an id from the node rg that acts as a random generator The ids arealldifferent F. Tiezzi (Unicam) CoSyDesign & DCC 30 / 45
64 An example Leader Election: algorithm Once a participant has assigned an id, it spawns the mobile process checker to the next node This process travels along the ring to determine if the source node has to be the leader checker carries the id of the source node, retrieves the id of the node where it is running (stored in x) and compares the two ids If id < x, thecurrentlyhostingnodeisnottheleader: the process moves to the next node and restarts If id > x, thesourcenodeisnottheleader:theprocesscrossesthe rest of the ring to come back to the source node and insert this information in the local tuple space Otherwise, i.e. id = x, theprocessisbackonthesourcenode(thusno node with a smaller id has been found in the ring) and inserts the information that this is the leader in the local tuple space F. Tiezzi (Unicam) CoSyDesign & DCC 31 / 45
65 An example Leader Election: specification P in( ID,! id)@rg. out( ID, id)@self. eval(checker(id))@next. checker(myid) read( ID,! x)@self. if myid < x then eval(checker(myid))@next. else if myid > x then eval(notifier(myid))@next. else out( LEADER )@self. notifier(myid) read( ID,! x)@self. if x = myid then out( FOLLOWER )@self. else eval(notifier(myid))@next. F. Tiezzi (Unicam) CoSyDesign & DCC 32 / 45
66 (Mild) Extensions An example By exploiting pattern matching and parallel composition, the conditional construct can be rendered as if bcond then P else Q out( EVALUATE, bcond)@self. (in( EVALUATE, true)@self.p in( EVALUATE, false)@self.q) since only one of the two parallel processes can proceed F. Tiezzi (Unicam) CoSyDesign & DCC 33 / 45
67 An example Leader Election: specification s 0 :: [self s0,next s 1 ] P s 1 :: [self s1,next s 2 ] P s 2 :: [self s2,next s 0 ] P rg :: [self rg] ID, 7 ID, 4 ID, 5 F. Tiezzi (Unicam) CoSyDesign & DCC 34 / 45
68 The overall system s 0 next s 1 P An example rg ρ ID, 5 ID, 7 ID, 4 s 1 next s 2 s 2 next s 0 P P F. Tiezzi (Unicam) CoSyDesign & DCC 35 / 45
69 A computation s 0 next s 1 in( ID,!id)@rg.... An example rg ρ ID, 5 ID, 7 ID, 4 s 1 next s 2 s 2 next s 0 in( ID,!id)@rg.... in( ID,!id)@rg.... F. Tiezzi (Unicam) CoSyDesign & DCC 36 / 45
70 A computation s 0 next s 1 in( ID,!id)@rg.... An example rg ρ ID, 5 ID, 7 s 1 next s 2 s 2 next s 0 out( ID, 4)@self.... in( ID,!id)@rg.... F. Tiezzi (Unicam) CoSyDesign & DCC 36 / 45
71 A computation s 0 next s 1 in( ID,!id)@rg.... An example rg ρ ID, 5 ID, 7 s 1 next s 2 s 2 next s 0 ID, 4 in( ID,!id)@rg.... F. Tiezzi (Unicam) CoSyDesign & DCC 36 / 45
72 An example A computation s 0 next s 1 rg ρ ID, 7 in( ID,!id)@rg.... ID, 5 s 1 next s 2 s 2 next s 0 ID, 4 in( ID,!id)@rg.... checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 36 / 45
73 An example A computation s 0 next s 1 rg ρ ID, 7 in( ID,!id)@rg.... ID, 5 s 1 next s 2 s 2 next s 0 ID, 4 in( ID,!id)@rg.... checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 37 / 45
74 A computation s 0 next s 1 An example rg ρ in( ID,!id)@rg.... ID, 5 s 1 next s 2 s 2 next s 0 ID, 4 out( ID, 7)@self.... checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 37 / 45
75 A computation s 0 next s 1 An example rg ρ in( ID,!id)@rg.... ID, 5 s 1 next s 2 s 2 next s 0 ID, 4 eval(checker(7)) ID, checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 37 / 45
76 A computation s 0 next s 1 An example rg ρ in( ID,!id)@rg.... checker(7) ID, 5 s 1 next s 2 s 2 next s 0 ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 37 / 45
77 A computation s 0 next s 1 An example rg ρ in( ID,!id)@rg.... checker(7) ID, 5 s 1 next s 2 s 2 next s 0 ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 38 / 45
78 A computation s 0 next s 1 An example rg ρ out( ID, 5)@self.... checker(7) s 1 next s 2 s 2 next s 0 ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 38 / 45
79 A computation s 0 next s 1 An example rg ρ ID, 5 checker(7) s 1 next s 2 s 2 next s 0 ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 38 / 45
80 A computation s 0 next s 1 An example rg ρ ID, 5 checker(7) s 1 s 2 next s 2 next s 0 checker(5) ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 38 / 45
81 A computation s 0 next s 1 An example rg ρ ID, 5 checker(7) s 1 s 2 next s 2 next s 0 checker(5) ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 39 / 45
82 A computation s 0 next s 1 An example rg ρ ID, 5 checker(7) s 1 next s 2 s 2 next s 0 checker(5) ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 39 / 45
83 A computation s 0 next s 1 An example rg ρ ID, 5 checker(7) s 1 next s 2 s 2 next s 0 notifier(5) ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 39 / 45
84 A computation s 0 next s 1 An example rg ρ ID, 5 checker(7) s 1 next s 2 s 2 next s 0 notifier(5) ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 39 / 45
85 A computation s 0 next s 1 An example rg ρ notifier(5) checker(7) ID, 5 s 1 next s 2 s 2 next s 0 ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 39 / 45
86 A computation s 0 next s 1 An example rg ρ notifier(5) checker(7) ID, 5 s 1 next s 2 s 2 next s 0 ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 39 / 45
87 An example A computation s 0 next s 1 checker(7) FOLLOWER ID, 5 rg ρ s 1 next s 2 s 2 next s 0 ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 39 / 45
88 An example A computation s 0 next s 1 checker(7) FOLLOWER ID, 5 rg ρ s 1 next s 2 s 2 next s 0 ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 40 / 45
89 An example A computation s 0 next s 1 checker(7) FOLLOWER ID, 5 rg ρ s 1 next s 2 s 2 next s 0 ID, 4 ID, 7 checker(4) F. Tiezzi (Unicam) CoSyDesign & DCC 40 / 45
90 An example A computation s 0 next s 1 checker(4) checker(7) FOLLOWER ID, 5 rg ρ s 1 next s 2 s 2 next s 0 ID, 4 ID, 7 F. Tiezzi (Unicam) CoSyDesign & DCC 40 / 45
91 An example A computation s 0 next s 1 checker(4) checker(7) FOLLOWER ID, 5 rg ρ s 1 next s 2 s 2 next s 0 ID, 4 ID, 7 F. Tiezzi (Unicam) CoSyDesign & DCC 40 / 45
92 An example s 1 next s 2 s 2 next s 0 A computation s 0 next s 1 checker(7) FOLLOWER ID, 5 rg ρ checker(4) ID, 4 ID, 7 F. Tiezzi (Unicam) CoSyDesign & DCC 40 / 45
93 An example s 1 next s 2 s 2 next s 0 A computation s 0 next s 1 checker(7) FOLLOWER ID, 5 rg ρ checker(4) ID, 4 ID, 7 F. Tiezzi (Unicam) CoSyDesign & DCC 40 / 45
94 A computation s 0 next s 1 An example FOLLOWER ID, 5 rg ρ checker(7) s 1 next s 2 s 2 next s 0 LEADER ID, 4 ID, 7 F. Tiezzi (Unicam) CoSyDesign & DCC 40 / 45
95 A computation s 0 next s 1 An example FOLLOWER ID, 5 rg ρ checker(7) s 1 next s 2 s 2 next s 0 LEADER ID, 4 ID, 7 F. Tiezzi (Unicam) CoSyDesign & DCC 41 / 45
96 A computation s 0 next s 1 An example FOLLOWER ID, 5 rg ρ checker(7) s 1 next s 2 s 2 next s 0 LEADER ID, 4 ID, 7 F. Tiezzi (Unicam) CoSyDesign & DCC 41 / 45
97 A computation s 0 next s 1 An example FOLLOWER ID, 5 rg ρ notifier(7) s 1 next s 2 s 2 next s 0 LEADER ID, 4 ID, 7 F. Tiezzi (Unicam) CoSyDesign & DCC 41 / 45
98 A computation s 0 next s 1 An example FOLLOWER ID, 5 rg ρ notifier(7) s 1 next s 2 s 2 next s 0 LEADER ID, 4 ID, 7 F. Tiezzi (Unicam) CoSyDesign & DCC 41 / 45
99 A computation s 0 next s 1 An example FOLLOWER ID, 5 rg ρ s 1 next s 2 s 2 next s 0 LEADER ID, 4 ID, 7 notifier(7) F. Tiezzi (Unicam) CoSyDesign & DCC 41 / 45
100 A computation s 0 next s 1 An example FOLLOWER ID, 5 rg ρ s 1 next s 2 s 2 next s 0 LEADER ID, 4 ID, 7 notifier(7) F. Tiezzi (Unicam) CoSyDesign & DCC 41 / 45
101 A computation s 0 next s 1 An example FOLLOWER ID, 5 rg ρ s 1 next s 2 s 2 next s 0 LEADER FOLLOWER ID, 4 ID, 7 F. Tiezzi (Unicam) CoSyDesign & DCC 41 / 45
102 A computation s 0 next s 1 An example FOLLOWER ID, 5 rg ρ s 1 next s 2 s 2 next s 0 LEADER FOLLOWER ID, 4 ID, 7 F. Tiezzi (Unicam) CoSyDesign & DCC 42 / 45
103 Klaim implementation Implementation X-Klaim (extended Klaim) A fully-fledged programming language including the Klaim operations and a high-level syntax: Variable declarations Assignments Conditionals, iteration,... Time-outs Klava (Klaim in Java) AJavapackageimplementing Klaim operations and concepts Communications among processes and nodes Code mobility F. Tiezzi (Unicam) CoSyDesign & DCC 43 / 45
104 Klaim implementation Klaim Programming Framework X-Klaim program xklaim compiler klava package Java program Java compiler Java virtual machine F. Tiezzi (Unicam) CoSyDesign & DCC 44 / 45
105 Klaim implementation KLAIM website: F. Tiezzi (Unicam) CoSyDesign & DCC 45 / 45
Orchestrating Tuple-based Languages
Orchestrating Tuple-based Languages Rocco De Nicola 1, Andrea Margheri 1, and Francesco Tiezzi 2 1 Univeristà degli Studi di Firenze, Dipartimento di Sistemi e Informatica Viale Morgagni, 65 50134 Firenze,
More informationCoordination Languages
c.hankin@imperial.ac.uk Department of Computing, BCS Advanced Programming Group Lecture, December 2008 Outline 1 Introduction 2 Linda 3 JavaSpaces 4 KLAIM 5 AspectK 6 Example Programs 7 Conclusions Outline
More informationThe Klaim Project: Theory and Practice
The Klaim Project: Theory and Practice Lorenzo Bettini 1, Viviana Bono 2, Rocco De Nicola 1, Gianluigi Ferrari 3, Daniele Gorla 1, Michele Loreti 1, Eugenio Moggi 4, Rosario Pugliese 1, Emilio Tuosto 3,
More informationCourse on Probabilistic Methods in Concurrency. (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1
Course on Probabilistic Methods in Concurrency (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1 The pi-calculus and the asynchronous pi-calculus. Catuscia Palamidessi INRIA
More informationThe Klaim Project: Theory and Practice
The Klaim Project: Theory and Practice Lorenzo Bettini 1, Viviana Bono 2, Rocco De Nicola 1, Gianluigi Ferrari 3, Daniele Gorla 1, Michele Loreti 1, Eugenio Moggi 4, Rosario Pugliese 1, Emilio Tuosto 3,
More informationTypes for access control
Theoretical Computer Science 240 (2000) 215 254 www.elsevier.com/locate/tcs Types for access control Rocco De Nicola a;, GianLuigi Ferrari b, Rosario Pugliese a, Betti Venneri a a Dipartimento di Sistemi
More informationO Klaim: a coordination language with mobile mixins
O Klaim: a coordination language with mobile mixins Lorenzo Bettini 1 Viviana Bono 2 Betti Venneri 1 1 Dipartimento di Sistemi e Informatica, Università di Firenze, {bettini,venneri}@dsi.unifi.it 2 Dipartimento
More informationOperational Semantics. One-Slide Summary. Lecture Outline
Operational Semantics #1 One-Slide Summary Operational semantics are a precise way of specifying how to evaluate a program. A formal semantics tells you what each expression means. Meaning depends on context:
More informationSimulation and Analysis of Distributed Systems in Klaim
Simulation and Analysis of Distributed Systems in Klaim Francesco Calzolai, Michele Loreti To cite this version: Francesco Calzolai, Michele Loreti. Simulation and Analysis of Distributed Systems in Klaim.
More informationA Formal Definition of RESTful Semantic Web Services. Antonio Garrote Hernández María N. Moreno García
A Formal Definition of RESTful Semantic Web Services Antonio Garrote Hernández María N. Moreno García Outline Motivation Resources and Triple Spaces Resources and Processes RESTful Semantic Resources Example
More informationFunctional Programming. Big Picture. Design of Programming Languages
Functional Programming Big Picture What we ve learned so far: Imperative Programming Languages Variables, binding, scoping, reference environment, etc What s next: Functional Programming Languages Semantics
More informationCS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106
CS 565: Programming Languages Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106 Administrivia Who am I? Course web page http://www.cs.purdue.edu/homes/peugster/cs565spring08/ Office hours By appointment Main
More informationCSCI-GA Scripting Languages
CSCI-GA.3033.003 Scripting Languages 12/02/2013 OCaml 1 Acknowledgement The material on these slides is based on notes provided by Dexter Kozen. 2 About OCaml A functional programming language All computation
More informationMeta-programming with Names and Necessity p.1
Meta-programming with Names and Necessity Aleksandar Nanevski Carnegie Mellon University ICFP, Pittsburgh, 05 October 2002 Meta-programming with Names and Necessity p.1 Meta-programming Manipulation of
More informationCompilers. Cool Semantics II. Alex Aiken
Compilers Informal semantics of new T Allocate locations to hold all attributes of an object of class T Essentially, allocate a new object Set attributes with their default values Evaluate the initializers
More informationSimulation and Analysis of Distributed Systems in Klaim
Simulation and Analysis of Distributed Systems in Klaim Francesco Calzolai and Michele Loreti Dipartimento di Sistemi e Informatica Università di Firenze Abstract. Network and distributed systems typically
More informationFoundational Calculi for Network Aware Programming
Foundational Calculi for Network Aware Programming An Assessment from a Programming Perspective GIANLUIGI FERRARI Dipartimento di Informatica, Università di Pisa ROSARIO PUGLIESE Dipartimento di Sistemi
More informationLambda Calculus and Lambda notation in Lisp II. Based on Prof. Gotshalks notes on Lambda Calculus and Chapter 9 in Wilensky.
λ Calculus Basis Lambda Calculus and Lambda notation in Lisp II Based on Prof. Gotshalks notes on Lambda Calculus and Chapter 9 in Wilensky Mathematical theory for anonymous functions» functions that have
More informationChapter 5: Procedural abstraction. Function procedures. Function procedures. Proper procedures and function procedures
Chapter 5: Procedural abstraction Proper procedures and function procedures Abstraction in programming enables distinction: What a program unit does How a program unit works This enables separation of
More informationMobile Distributed Programming in X-Klaim
Mobile Distributed Programming in X-Klaim Rocco De Nicola Dipartimento di Sistemi ed Informatica Università di Firenze Bertinoro International Spring School for Graduate Studies in Computer Science 6-17
More informationLecture Outline. COOL operational semantics. Operational Semantics of Cool. Motivation. Lecture 13. Notation. The rules. Evaluation Rules So Far
Lecture Outline Operational Semantics of Cool Lecture 13 COOL operational semantics Motivation Notation The rules Prof. Aiken CS 143 Lecture 13 1 Prof. Aiken CS 143 Lecture 13 2 Motivation We must specify
More informationMobile Distributed Programming in X-Klaim
Dipartimento di Sistemi e Informatica, Università di Firenze {bettini,denicola}@dsi.unifi.it SMF-Moby Bertinoro, 27 April 2005 Outline of the Lectures 1. An introduction to Klaim - R. De Nicola Global
More informationReliable Self-Deployment of Cloud Applications
Reliable Self-Deployment of Cloud Applications Xavier Etchevers 1, Gwen Salaün 2, Fabienne Boyer 3, Thierry Coupaye 1, Noel De Palma 3 1 Orange Labs, France 2 Grenoble INP, Inria, France 3 UJF-Grenoble
More informationResource Access and Mobility Control with Dynamic Privileges Acquisition
Resource Access and Mobility Control with Dynamic Privileges Acquisition Daniele Gorla Rosario Pugliese Dipartimento di Sistemi e Informatica, Università di Firenze e-mail: {gorla,pugliese}@dsi.unifi.it
More informationProgramming language design and analysis
Programming language design and analysis Introduction Marius Minea 25 September 2017 Why this course? Programming languages are fundamental and one of the oldest CS fields Language design is an important
More informationLambda Calculus. Gunnar Gotshalks LC-1
Lambda Calculus LC-1 l- Calculus History Developed by Alonzo Church during 1930 s-40 s One fundamental goal was to describe what can be computed. Full definition of l-calculus is equivalent in power to
More informationNetwork-aware Evaluations of Reputation Systems
Network-aware Evaluations of Reputation Systems Alessandro Celestini 1, Rocco De Nicola 1, and Francesco Tiezzi 1 IMT, Institute for Advanced Studies Lucca, Italy {alessandro.celestini,rocco.denicola,francesco.tiezzi}@imtlucca.it
More informationSubstitution in Structural Operational Semantics and value-passing process calculi
Substitution in Structural Operational Semantics and value-passing process calculi Sam Staton Computer Laboratory University of Cambridge Abstract Consider a process calculus that allows agents to communicate
More informationVariables and Bindings
Net: Variables Variables and Bindings Q: How to use variables in ML? Q: How to assign to a variable? # let = 2+2;; val : int = 4 let = e;; Bind the value of epression e to the variable Variables and Bindings
More informationQuestions? Static Semantics. Static Semantics. Static Semantics. Next week on Wednesday (5 th of October) no
Questions? First exercise is online: http://www.win.tue.nl/~mvdbrand/courses/glt/1112/ Deadline 17 th of October Next week on Wednesday (5 th of October) no lectures!!! Primitive types Primitive value
More informationJOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 2, July-August 2002 The Theory of Classification Part 2: The Scratch-Built
More informationModal Logic: Implications for Design of a Language for Distributed Computation p.1/53
Modal Logic: Implications for Design of a Language for Distributed Computation Jonathan Moody (with Frank Pfenning) Department of Computer Science Carnegie Mellon University Modal Logic: Implications for
More informationA Formal Model for Web-Service Composition
Simon Foster Department of Computer Science University of Sheffield http://www.dcs.shef.ac.uk/~simonf BCTCS 2006 Outline 1 Composing Web-Services Current Technologies 2 3 4 Outline
More informationIG-JADE-PKSlib. An Agent Based Framework for Advanced Web Service Composition and Provisioning. Erick Martínez & Yves Lespérance
IG-JADE-PKSlib An Agent Based Framework for Advanced Web Service Composition and Provisioning Erick Martínez & Yves Lespérance Department of Computer Science York University Toronto, Canada 1 Motivation
More informationClosures. Mooly Sagiv. Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming
Closures Mooly Sagiv Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming t ::= x x. t t t Call-by-value big-step Operational Semantics terms variable v ::= values abstraction x.
More informationLambda Calculus LC-1
Lambda Calculus LC-1 λ- Calculus History-1 Developed by Alonzo Church during 1930 s-40 s One fundamental goal was to describe what can be computed. Full definition of λ-calculus is equivalent in power
More informationCS 242. Fundamentals. Reading: See last slide
CS 242 Fundamentals Reading: See last slide Syntax and Semantics of Programs Syntax The symbols used to write a program Semantics The actions that occur when a program is executed Programming language
More informationFunctional Languages. CSE 307 Principles of Programming Languages Stony Brook University
Functional Languages CSE 307 Principles of Programming Languages Stony Brook University http://www.cs.stonybrook.edu/~cse307 1 Historical Origins 2 The imperative and functional models grew out of work
More informationArchitectural Styles - Finale
Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Architectural Styles - Finale Reid Holmes Lecture
More informationCSC312 Principles of Programming Languages : Functional Programming Language. Copyright 2006 The McGraw-Hill Companies, Inc.
CSC312 Principles of Programming Languages : Functional Programming Language Overview of Functional Languages They emerged in the 1960 s with Lisp Functional programming mirrors mathematical functions:
More information1 Lexical Considerations
Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler
More informationMotivation: Model-driven. driven Engineering. Semantics of Model Transformation. Reiko Heckel University of Leicester, UK
Semantics of Model Transformation Reiko Heckel University of Leicester, UK, University of Birmingham, 1 March 2007 Motivation: Model-driven driven Engineering Focus and primary artifacts are models instead
More informationTyped Lambda Calculus. Chapter 9 Benjamin Pierce Types and Programming Languages
Typed Lambda Calculus Chapter 9 Benjamin Pierce Types and Programming Languages t ::= x x. t t t Call-by-value small step perational Semantics terms variable v ::= values abstraction x. t abstraction values
More informationA Small Permutation Group Engine by: Gregory Kip. COMS W4115 Programming Languages and Translators Prof. Stephen Edwards
µperm A Small Permutation Group Engine by: Gregory Kip COMS W4115 Programming Languages and Translators Prof. Stephen Edwards Abstract Given the abstract character of much of modern physics and mathematics,
More informationCS558 Programming Languages
CS558 Programming Languages Fall 2016 Lecture 3a Andrew Tolmach Portland State University 1994-2016 Formal Semantics Goal: rigorous and unambiguous definition in terms of a wellunderstood formalism (e.g.
More informationWritten Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming
Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming Nicolas Bettenburg 1 Universitaet des Saarlandes, D-66041 Saarbruecken, nicbet@studcs.uni-sb.de Abstract. As traditional
More informationProgramming with Types
Programming with Types Run-time type analysis and the foundations of program reflection Stephanie Weirich Cornell University Reflection A style of programming that supports the run-time discovery of program
More informationTowards Semantic Interoperability between C2 Systems Following the Principles of Distributed Simulation
Towards Semantic Interoperability between C2 Systems Following the Principles of Distributed Simulation Authors: Vahid Mojtahed (FOI), vahid.mojtahed@foi.se Martin Eklöf (FOI), martin.eklof@foi.se Jelena
More informationProgramming Languages Third Edition
Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand
More informationHeap, Variables, References, and Garbage. CS152. Chris Pollett. Oct. 13, 2008.
Heap, Variables, References, and Garbage. CS152. Chris Pollett. Oct. 13, 2008. Outline. Dynamic Allocation. Variables and Constants. Aliases and Problems. Garbage. Introduction. On Wednesday, we were talking
More informationObject Oriented Issues in VDM++
Object Oriented Issues in VDM++ Nick Battle, Fujitsu UK (nick.battle@uk.fujitsu.com) Background VDMJ implemented VDM-SL first (started late 2007) Formally defined. Very few semantic problems VDM++ support
More informationSpecification, Verification, and Interactive Proof
Specification, Verification, and Interactive Proof SRI International May 23, 2016 PVS PVS - Prototype Verification System PVS is a verification system combining language expressiveness with automated tools.
More informationLecture Outline. COOL operational semantics. Operational Semantics of Cool. Motivation. Notation. The rules. Evaluation Rules So Far.
Lecture Outline Operational Semantics of Cool COOL operational semantics Motivation Adapted from Lectures by Profs. Alex Aiken and George Necula (UCB) Notation The rules CS781(Prasad) L24CG 1 CS781(Prasad)
More informationOrganization of Programming Languages CS3200/5200N. Lecture 11
Organization of Programming Languages CS3200/5200N Razvan C. Bunescu School of Electrical Engineering and Computer Science bunescu@ohio.edu Functional vs. Imperative The design of the imperative languages
More informationFoundations. Yu Zhang. Acknowledgement: modified from Stanford CS242
Spring 2013 Foundations Yu Zhang Acknowledgement: modified from Stanford CS242 https://courseware.stanford.edu/pg/courses/317431/ Course web site: http://staff.ustc.edu.cn/~yuzhang/fpl Reading Concepts
More informationCOP4020 Programming Languages. Functional Programming Prof. Robert van Engelen
COP4020 Programming Languages Functional Programming Prof. Robert van Engelen Overview What is functional programming? Historical origins of functional programming Functional programming today Concepts
More informationMobile Applications in X-KLAIM
Mobile Applications in X-KLAIM Lorenzo Bettini 1 Rocco De Nicola 1 GianLuigi Ferrari 2 Rosario Pugliese 1 1 Dipartimento di Sistemi e Informatica, Università di Firenze e-mail: fbettini,denicola,puglieseg@dsi.unifi.it
More informationVerifying control systems using CSP, FDR, and Handel-C.
erifying control systems using CSP, FDR, and Handel-C. 01 Verifying control systems using CSP, FDR, and Handel-C. Alistair A. McEwan University of Surrey erifying control systems using CSP, FDR, and Handel-C.
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Operational Semantics CMSC 330 Summer 2018 1 Formal Semantics of a Prog. Lang. Mathematical description of the meaning of programs written in that language
More informationUNIT 3
UNIT 3 Presentation Outline Sequence control with expressions Conditional Statements, Loops Exception Handling Subprogram definition and activation Simple and Recursive Subprogram Subprogram Environment
More informationVariables. Substitution
Variables Elements of Programming Languages Lecture 4: Variables, binding and substitution James Cheney University of Edinburgh October 6, 2015 A variable is a symbol that can stand for another expression.
More informationLexical Considerations
Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2010 Handout Decaf Language Tuesday, Feb 2 The project for the course is to write a compiler
More informationCover Page. The handle holds various files of this Leiden University dissertation
Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue
More informationDistributed Objects and Remote Invocation. Programming Models for Distributed Applications
Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 4 Thomas Wies New York University Review Last week Control Structures Selection Loops Adding Invariants Outline Subprograms Calling Sequences Parameter
More informationFunctional Programming. Pure Functional Programming
Functional Programming Pure Functional Programming Computation is largely performed by applying functions to values. The value of an expression depends only on the values of its sub-expressions (if any).
More informationOperational Semantics of Cool
Operational Semantics of Cool Key Concepts semantics: the meaning of a program, what does program do? how the code is executed? operational semantics: high level code generation steps of calculating values
More informationFormally Linking Security Protocol Models and Implementations
Formally Linking Security Protocol Models and Implementations Alfredo Pironti Microsoft Research INRIA http://alfredo.pironti.eu/research/ Politecnico di Torino Formal Methods for Security Protocol Engineering
More informationOutline. 1 Function calls and parameter passing. 2 Pointers, arrays, and references. 5 Declarations, scope, and lifetimes 6 I/O
Outline EDAF30 Programming in C++ 2. Introduction. More on function calls and types. Sven Gestegård Robertz Computer Science, LTH 2018 1 Function calls and parameter passing 2 Pointers, arrays, and references
More informationCS 314 Principles of Programming Languages
CS 314 Principles of Programming Languages Lecture 15: Review and Functional Programming Zheng (Eddy) Zhang Rutgers University March 19, 2018 Class Information Midterm exam forum open in Sakai. HW4 and
More informationRule Formats for Nominal Modal Transition Systems
Rule Formats for Nominal Modal Transition Systems Anke Stüber Universitet Uppsala, Uppsala, Sweden anke.stuber@it.uu.se Abstract. Modal transition systems are specification languages that allow the expression
More information11/6/17. Outline. FP Foundations, Scheme. Imperative Languages. Functional Programming. Mathematical Foundations. Mathematical Foundations
Outline FP Foundations, Scheme In Text: Chapter 15 Mathematical foundations Functional programming λ-calculus LISP Scheme 2 Imperative Languages We have been discussing imperative languages C/C++, Java,
More informationLexical Considerations
Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2005 Handout 6 Decaf Language Wednesday, September 7 The project for the course is to write a
More informationModel driven Engineering & Model driven Architecture
Model driven Engineering & Model driven Architecture Prof. Dr. Mark van den Brand Software Engineering and Technology Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven Model driven software
More informationProgramming Safe Agents in Blueprint. Alex Muscar University of Craiova
Programming Safe Agents in Blueprint Alex Muscar University of Craiova Programmers are craftsmen, and, as such, they are only as productive as theirs tools allow them to be Introduction Agent Oriented
More informationInformatica 3 Syntax and Semantics
Informatica 3 Syntax and Semantics Marcello Restelli 9/15/07 Laurea in Ingegneria Informatica Politecnico di Milano Introduction Introduction to the concepts of syntax and semantics Binding Variables Routines
More informationCOMP 181. Agenda. Midterm topics. Today: type checking. Purpose of types. Type errors. Type checking
Agenda COMP 181 Type checking October 21, 2009 Next week OOPSLA: Object-oriented Programming Systems Languages and Applications One of the top PL conferences Monday (Oct 26 th ) In-class midterm Review
More informationLecture 6: The Declarative Kernel Language Machine. September 13th, 2011
Lecture 6: The Declarative Kernel Language Machine September 13th, 2011 Lecture Outline Computations contd Execution of Non-Freezable Statements on the Abstract Machine The skip Statement The Sequential
More informationDistributed Information System as a System of Asynchronous Concurrent Processes
Distributed Information System as a System of Asynchronous Concurrent Processes Marek Rychlý Jaroslav Zendulka Department of Information Systems Faculty of Information Technology Brno University of Technology
More information1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.
1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered
More information5. Introduction to the Lambda Calculus. Oscar Nierstrasz
5. Introduction to the Lambda Calculus Oscar Nierstrasz Roadmap > What is Computability? Church s Thesis > Lambda Calculus operational semantics > The Church-Rosser Property > Modelling basic programming
More informationLECTURE 16. Functional Programming
LECTURE 16 Functional Programming WHAT IS FUNCTIONAL PROGRAMMING? Functional programming defines the outputs of a program as a mathematical function of the inputs. Functional programming is a declarative
More informationBehavioural Equivalences and Abstraction Techniques. Natalia Sidorova
Behavioural Equivalences and Abstraction Techniques Natalia Sidorova Part 1: Behavioural Equivalences p. p. The elevator example once more How to compare this elevator model with some other? The cabin
More informationIMT School for Advanced Studies, Lucca. Lucca, Italy. Programming Abstractions for Data Sharing in Distributed Spaces
IMT School for Advanced Studies, Lucca Lucca, Italy Programming Abstractions for Data Sharing in Distributed Spaces PhD Program in Computer Science and Engineering XXVIII Cycle By Marina Andrić 2017 The
More informationMulti-Agent Dialogue Protocols
Multi-Agent Dialogue Protocols Christopher D. Walton (cdw@inf.ed.ac.uk) Centre for Intelligent Systems and their Applications (CISA), Edinburgh, UK November 28, 2003 Abstract In this paper we propose a
More information40 Behaviour Compatibility
40 Behaviour Compatibility [2] R. De Nicola, Extentional Equivalences for Transition Systems, Acta Informatica, vol. 24, pp. 21-237, 1987. [3] J. Gray, Notes on Data Base Operating Systems, in Operating
More informationRecap: Functions as first-class values
Recap: Functions as first-class values Arguments, return values, bindings What are the benefits? Parameterized, similar functions (e.g. Testers) Creating, (Returning) Functions Iterator, Accumul, Reuse
More informationModel Checking of Location and Mobility Related Security Policy Specifications in Ambient Calculus
Model Checking of Location and Mobility Related Security Policy Specifications in Ambient Calculus Devrim Ünal (presenter) devrimu@uekae.tubitak.gov.tr National Institute of Electronics and Cryptology,
More informationArchitecture as coordination: the Orc perspective
Architecture as coordination: the Orc perspective L.S. Barbosa Dept. Informática, Universidade do Minho Braga, Portugal DI-CCTC, UM, 2009 Introduction Basic calculus Functional core Orc(hestration) examples
More informationMotivation was to facilitate development of systems software, especially OS development.
A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.
More informationDistributed Systems Programming (F21DS1) Formal Verification
Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on
More informationMulti-paradigm Declarative Languages
Michael Hanus (CAU Kiel) Multi-paradigm Declarative Languages ICLP 2007 1 Multi-paradigm Declarative Languages Michael Hanus Christian-Albrechts-University of Kiel Programming Languages and Compiler Construction
More informationProgrammiersprachen (Programming Languages)
2016-05-13 Preface Programmiersprachen (Programming Languages) coordinates: lecturer: web: usable for: requirements: No. 185.208, VU, 3 ECTS Franz Puntigam http://www.complang.tuwien.ac.at/franz/ps.html
More informationLecture08: Scope and Lexical Address
Lecture08: Scope and Lexical Address Free and Bound Variables (EOPL 1.3.1) Given an expression E, does a particular variable reference x appear free or bound in that expression? Definition: A variable
More informationa data type is Types
Pointers Class 2 a data type is Types Types a data type is a set of values a set of operations defined on those values in C++ (and most languages) there are two flavors of types primitive or fundamental
More informationThe Abstract Behavioral Specification Language
The Abstract Behavioral Specification Language Frank S. de Boer CWI frb@cwi.nl Scientific Meeting CWI, November 29, 2013 How It All Started? Simula (Ole Johan Dahl, Turing award 2001) Credo FP6 project
More informationCLAN: A Tool for Contract Analysis and Conflict Discovery
CLAN: A Tool for Contract Analysis and Conflict Discovery Stephen Fenech 1, Gordon J. Pace 1, and Gerardo Schneider 2 1 Dept. of Computer Science, University of Malta, Malta 2 Dept. of Informatics, University
More informationSpecifying Web Workflow Services for Finding Partners in the Context of Loose Inter-Organizational Workflow
Specifying Web Workflow Services for Finding Partners in the Context of Loose Inter-Organizational Workflow Eric Andonoff, Lotfi Bouzguenda (Phd), Chihab Hanachi IRIT Laboratory, Toulouse, France 1 Outline
More informationChapter 2 The Language PCF
Chapter 2 The Language PCF We will illustrate the various styles of semantics of programming languages with an example: the language PCF Programming language for computable functions, also called Mini-ML.
More informationA Type System for Object Initialization In the Java TM Bytecode Language
Electronic Notes in Theoretical Computer Science 10 (1998) URL: http://www.elsevier.nl/locate/entcs/volume10.html 7 pages A Type System for Object Initialization In the Java TM Bytecode Language Stephen
More information