[MUD-Dev] Re: DevMUD Event Language
Jon Leonard
jleonard at divcom.slimy.com
Sat Oct 24 15:10:53 CEST 1998
On Thu, Oct 22, 1998 at 08:14:21PM -0400, Hal Black wrote:
> Okay, this is a totally off the wall and demented idea I'd like to throw out:
It's off the wall and demented, but I think we can't throw it away completely.
(And yes, I'm going to throw up some web pages soon.)
> To provide an event model (i.e. state changing through time on a schedule with
> contention resolution), how about mutating VHDL to be mudlike and then using
> that as the mud language?
I know Verilog lots better than VHDL, (I'm paid to design chips in Verilog)
so I may get the semantics a bit wrong. Shouldn't matter much: from the
remote perspective of a MUD developer, they're pretty similar.
Some aspects of programming in HDLs (Hardware Description Languages) are
usefully transferable to MUD design, and some are experiences while not
transferrable.
The model of a large system as a collection of pieces all working in parallel
(with explicit handshakes) can be useful.
Scheduling things via things like "do this 5 time units into the future"
is a useful model for doing long-running processes.
I also like debugging with waveforms. It's really nice to be able to see
relevant variables vs. their values over time. I can literally see where
and when the simulation went wrong.
There are other things about working in HDLs don't map nearly so usefully.
Explicit bit widths: In a software world, I just want all my variables
to be wide enough. The savings of narrower variables just aren't worth
having to declare every variable and constant with a width. "Here's
a 17-bit integer." and "This should be less that 20, compared as a 12 bit
number." hurt readability, and there's no speed gain for doing it.
Extra bit states: Support for strong and weak drive strengths, along with
high-impedance and unknown values is wasteful in non-hardware environments.
Just give me 0 and 1.
The time model is really wierd, too. The concept of simulation time isn't
very useful in a MUD where everything should work according to real time.
Similarly, there isn't a need for clock signals.
[pseudo-VHDL pseudocode trimmed]
Jon Leonard
More information about the mud-dev-archive
mailing list