[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
I am not sure if the dust has yet settled, but perhaps there is some sort
of case for the following:-
Vague as yet, but a way to qualify statements(processes?) taking a list of
predicates. Perhaps something along the lines
PAR SAT (DELAY(c) < clock(5))
where c is a CHANnel and clock is a TIMER: no event on channel c
will be delayed by more than 4 ticks of clock.
This seems a little futuristic, but we may be able to identify a small set
of predicates current compiler technology can handle.
Eventually we need a sub-language to express these predicates. Rather than
invent our own, can we use existing technology?
Of course, the trouble with SAT is that we now need CAT and MAT :-)
2) URGENT events
Until we have SAT, and maybe after, we allow CHANnels to be marked
URGENT. So things like
URGENT CHAN OF INT x:
URGENT CHAN OF BYTE stepper_sensor:
where the URGENcy is syntactically ordered. And can be dynamically changed
as in 4) below.
Because the URGENT declarations above are "outside" the PAR, I wonder whether
CHAN OF INT x:
CHAN OF BYTE stepper_sensor:
is not easier to read, and possibly easier for the compiler?
Not quite sure how to write an ordered array of channels...
4) Dynamic control of priority
Allow both PRI PAR and PAR to accept an optional channel for priority
PRI PAR(CHAN OF type dynamic_priority)
just shuffles the components around as previously discussed.
PAR(CHAN OF type dynamic_priority)
similary shuffles any URGENT channels with respect to the syntactical order.
Oh dear: what about SAT? I suppose we could have a table of PREDicates,
and switch between them. Ho hum.
PRI PAR PAR SAT ( priority(P0) > priority(P1) )
P0 = P0
and so on. So PRI PAR and URGENT would just be abbreviations for SAT
clauses. So we might be able to apply occam's razor there.
A E Lawrence, MA., DPhil. adrian.lawrence@xxxxxxxxxxxxxx
MicroProcessor Unit, 13, Banbury Road, Oxford. OX2 6NN. UK.
Voice: (+44)-1865-273274, Fax: (+44)-1865-273275