Something to do with nanopasses
Matt also pointed me at "A nanopass infrastructure for compiler education" (if you have a Kent account, use chain to read that).
The idea of nanopasses strikes me as elegant because it'd be easy to
write and test extensions to a language by inserting new passes. For
instance, I sometimes find myself wanting a BREAK statement to
immediately exit an occam loop. Since it's possible to rewrite:
WHILE continue.condition
do.something ()
IF
exit.condition
BREAK
TRUE
SKIP
do.something.else ()
as:
INITIAL BOOL foo IS TRUE:
WHILE (continue.condition AND foo)
do.something ()
IF
exit.condition
foo := FALSE
TRUE
do.something.else ()
it would be fairly straightforward to drop in an extra pass to do that
transformation automatically. You could implement CONTINUE and
RETURN (with the Python semantics) the same way.
Doing this would offend the single-exit-point purists, of course, but they could always just disable that pass.
occamnet revamp
My third-year project was an IP stack for RMoX. In fact, I wrote it as a userspace process on Linux talking to the Linux IP stack using SLIP, and Fred later ported it to RMoX.
Obviously, it'd be useful to have a proper IP stack. occamnet as it currently stands has a few good features (I've done all the tedious stuff, like coming up with headers and writing code to do IP checksums properly) and a lot of bad ones (no TCP, at least one obscure bug in UDP, incomplete ICMP, dubious user API). Beating this into shape, and writing some network card drivers for RMoX so that it's actually useful, will be a useful project.
One of my specific plans is to make use of the new nested mobiles support to have a less clumsy representation of IP packets.
- Latest articles
- All articles (by name)
- All articles (by date)
Categories
- Adam's PhD Stuff
- Administration
- Ideas
- Plans
- Publications
- References to papers