Title: CAL A language for describing dataflow actors
1CAL - A language for describing dataflow actors
Jörn W. Janneck The Ptolemy Group, University of
California at Berkeley
Language
People Chris B. Chang (UCB) composition,
domain-dependent interpreter Johan Eker (now
Ericsson Mobile Platforms, Research) language
design, C code generation Jörn W. Janneck
(UCB) language design, interpreter,
code generation, analysis Ernesto Wandeler (ETH
Zurich) analysis, XML/XSLT infrastructure
(XChain) Lars Wernli (then ETH Zurich) Java code
generator Ed Willink (Thales Research) transforma
tions, XML/XSLT infrastructure (NiceXSL) Yang
Zhao (UCB) C code generation
- language features
- optionally typed
- lexically scoped
- functional sub-language
- first-class functions and procedures
- no aliasing of state
- atomic action execution
actor FairMerge () Input1, Input2 gt
Output A action Input1 x gt x end B
action Input2 x gt x end schedule fsm
State0 State0 (A) --gt State1
State1 (B) --gt State0 end end
actor FairMerge () Input1, Input2 gt
Output s 0 action Input1 x gt
x guard s 0 do s 1
end action Input2 x gt x guard s
1 do s 0 end end
actor A (k) Input1, Input2 gt Output
action a, b gt k(a b) end end
actor Sieve (predicate) Input gt Output
filter lambda (a) false
end action a gt guard filter(a)
end action a gt a guard not
filter(a) var f filter do
filter lambda(b) f(b) or
predicate(b,a) end end end
actor Merge () Input1, Input2 gt Output
action Input1 x gt x end action
Input2 x gt x end end
actor FairMerge () Input1, Input2 gt
Output A action Input1 x gt x end B
action Input2 x gt x end schedule
regexp (A B) end end
actor BiasedMerge () Input1, Input2 gt
Output A action Input1 x gt x end B
action Input2 x gt x end priority A gt
B end end
actor Sum (init) Input gt Output sum
init action a gt sum do
sum sum a end end
functions/procedures first-class
citizens full functional sub-language
priorities
actions, state, parameters, input patterns,
output expressions, non-determinism
guards
action schedules (regular expressions and FSMs)
Research topics
analysis/translation of dataflow systems
Technology
code generation
- XML/XSLT
- CALML modular schema
- transformations, analyses
- XChain structures XSLT scripting
- NiceXSL XSLT front-end
- Java/Ptolemy II
- modular interpreter(expressions, statements,
actors) - Ptolemy II integrationspecialized actor
interpreting CAL
domain-dependent interpretation actor execution
frameworks
actor composition
Resources www.gigascale.org/caltrop everything
about the CAL actor language ptolemy.eecs.berkeley
.edu the main site of the Ptolemy project
19 April 2003