It is common to prove the generality of a programming notation by writing an implementation of it in itself. I wondered if it were possible to write an implementation of Eden in Eden.
This is a tkeden model which implements a definition store with four locations for definitions in its "symbol table" (more than four is an exercise left to the reader :).
From the definition text, the left hand side and right hand side are calculated (only one-character symbol names, single digit integers and an infix plus operator are allowed to keep the parsing simple), and dependencies and triggers. These are used to calculate the level of each definition, which is used to form an evaluation ordering. The evaluation process is triggered on changes to definitions, and produces values for each definition. The "symbol table" that all this is stored in is shown in a simple Scout window.
I have attempted to use dependency as much as possible in the model.
deflevel.e.original is an attempt to improve the dependency for the level definitions in dm.e, and deflevel.e is an improvement on that.
Eden's various problems with lists cause problems when writing a model such as this, so the model was not very easy to write. It probably contains some bugs.
I wrote the model within the tkeden interface, saving it out afterwards, rather than coding directly into a text editor, hence the script ordering may be a little strange.
|definitivedmWard2001 is available locally within DCS at /dcs/emp/empublic/projects/definitivedmWard2001|
Uncompressed, definitivedmWard2001 is 10.7 Kbytes (in 7 files).
Your download will be smaller as it will be compressed.
Help on extracting the files from the download.
||1956||03:37 PM Aug 12 2002||04:05 PM Dec 15 2014|
||18||03:30 PM Aug 12 2002||04:05 PM Dec 15 2014|
||675||08:29 PM Apr 04 2001||04:05 PM Dec 15 2014|
||1689||08:29 PM Apr 04 2001||04:05 PM Dec 15 2014|
||4108||07:44 PM Apr 04 2001||04:05 PM Dec 15 2014|
||1942||03:36 PM Aug 12 2002||04:05 PM Dec 15 2014|
||607||08:32 PM Apr 04 2001||04:05 PM Dec 15 2014|
empublic system initially created by Ashley Ward with assistance from Chris Roe and Meurig Beynon.