Initial summary of HLL ideas from uni.org
This commit is contained in:
parent
0c40ac37a2
commit
f1bf1f5256
|
@ -0,0 +1,44 @@
|
||||||
|
## Syntax
|
||||||
|
|
||||||
|
Just a sketch, at the moment. The connection between Racket `expr`s
|
||||||
|
and `I` needs to be clarified, among many other things.
|
||||||
|
|
||||||
|
Instantaneous actions, I := (actor Idef ...)
|
||||||
|
(state [O ...] [E I ...] ...)
|
||||||
|
(background I ...)
|
||||||
|
(assert! P)
|
||||||
|
(retract! P)
|
||||||
|
(send! P)
|
||||||
|
(flush!) ;; ???
|
||||||
|
(begin I ...) ;; and, generally, expr?
|
||||||
|
Actor-level defs, Idef := I
|
||||||
|
(define id expr)
|
||||||
|
(define (id id ...) expr ...)
|
||||||
|
Ongoing actions, O := (on E I ...)
|
||||||
|
(once E I ...)
|
||||||
|
(assert P)
|
||||||
|
(track [x Agg] I ...)
|
||||||
|
(begin O ...) ;; ??? expr?
|
||||||
|
Predicates, Pred := (not Pred)
|
||||||
|
(exists P Pred)
|
||||||
|
(forall P Pred)
|
||||||
|
expr
|
||||||
|
Events, E := (asserted P)
|
||||||
|
(retracted P)
|
||||||
|
(message P)
|
||||||
|
(rising-edge Pred)
|
||||||
|
(falling-edge Pred)
|
||||||
|
Aggregates, Agg := (count expr P)
|
||||||
|
(set expr P)
|
||||||
|
(hash k_expr v_expr P)
|
||||||
|
(project P)
|
||||||
|
(single-value expr P)
|
||||||
|
(single-value expr P #:default def_expr)
|
||||||
|
Pred
|
||||||
|
Patterns, P := ... ;; uses $var as binder
|
||||||
|
|
||||||
|
(define-syntax-rule (until E O ...)
|
||||||
|
(state [O ...] [E]))
|
||||||
|
|
||||||
|
(define-syntax-rule (forever O ...)
|
||||||
|
(until (rising-edge #f) O ...))
|
Loading…
Reference in New Issue