The conference kicked off at 11:30 Friday with an 'in at the deep end' session. Anton Ertl, the first speaker and my travelling partner, has been, and continues to be, making a comprehensive evaluation of stack caching techniques for virtual stack machine interpreters, looking at both dynamic and static stack caching. Static stack caching is the technique of optimising away stack operators at compile time that has been described from time to time in Forthwrite. Dynamic caching is the idea that a map of the top few elements of the stack could be kept at run time, and each change in the map represented by a transition from one inner interpreter to another, each optimised for that particular mapping. Antons research is ongoing. He hopes to set up a system to get some empirical results to back up his theoretical findings. (Anton's paper "Stack Caching for Interpreters" is available as a compressed PostScript file - Ed)
Michael Gassanenko, from the St Petersburg Institute for Information and Automatics followed with a description of a novel and ingenious way of resolving the addressing problems that 8086 paged memory gives, which allows 32bit addressing to be used, and arithmetic applied to addresses at a cost of only 6 additional clock cycles in the overwhelming majority of cases. Very neat.
Chris Bailey, a canny Newcastle lad from the University of Teeside finished the session by summarising his work studying the effects of local variable optimisation on a C based stack processor environment. The question he asks is, how should the architecture of a stack machine be arranged to best allow compiled C programs to run on it, given the assumption that the compiler will attempt to optimise local variables by treating them as stack entities. A valid question if stack processors are to gain significant market penetration. Currently he has devised some neat optimisation stategies to investigate and initial results suggest that a larger stack cache is indicated than for applications written in Forth.
After coffee and Diwali sweetmeats (it being that time of year) Graeme Dunbar from the Robert Gordon University in Scotland described his investigations into using Register Transfer Language (RTL) for coding a Forth kernel. He summarised previous efforts to give an unabiguous and simple description of a Forth kernel. Currently work is on a FIG kernel, but in the Forth tradition of throwing out the first attempt and doing over, he is giving serious consideration of starting again using ANS as a basis.
Anton Ertl returned with a well argued case for releasing some of the restrictions ANS places on local variables, such as not declaring them within control structures, in his paper Automatic Scoping of Local Variables (which is also available as a compressed PostScript file - Ed).
The morning sessions were rounded off by Michael Gassanenko, whose second paper, BacForth: An Approach to New Control Structures demonstrated not only how simply Forth could be extended to include backtracking, but how the technique could simplify a large class of programming problems very neatly. He also suggested a stack notation for a backtracking Forth that impressed me particularly, as I had been unable to find a neat solution when I investigated backtacking in the area of pattern matching a few years ago. Mikael's two papers taken together were one of the prize winners for "best paper" this year.
Lunch was a welcome break, and provided a welcome respite (for this reporter) from the mental workout, but we were soon back into the highbrow stuff with the Formal Methods session, and Jaanus Pöial (assosiate professor at the University of Tartu in Estonia) telling us that stack comments are a good idea! Actually he said rather more than that, it went along the lines of "Stack comments can be shown to be a valid algebra and are mathematically rigorous, so may form the basis for a formal description of Forth." I do not claim to understand the demonstration, but can see the significance of the outcome.
This was taken a little further by Bill Stoddart, from the University of Teeside in Middlesbrough (coincidentally my home town), who has been working in similar areas to Jaanus, but with a different notation, who gave a work in progress paper explaining the whys, and some of the hows, of producing a formal equivalent of the ANS standard. The whys are simple, given that English is both vague and ambiguous it is rather difficult to determine if a standard written in English is consistant, which is a virtue one may reasonably demand of a standard. The how is using "Abstact Machine Notation," a relatively unpublicised development from Jean Raymond Abrial, who Bill assures us is a genius at that sort of thing. AMN is related to The B-method, which is a successor to Z. I looked at a Z book once.
After dinner (more standard English hotel fare; edible and really not bad, but embarrasing to those of us who take a pride in Engish cuisine) Roy Goddard from MPE (our hosts), honary clown prince of proceedings, took to the stage took the stage, ably assisted by his assistant, The Lovely Gary (as one wag from the audience dubbed him), to present the traditional "silly competition." As Roy has a style of humour that does not bear repeating (by which I mean its inimitable, not unrepeatable) I won't attempt to. The silly competition was to devise a Forth program that hinted at a film, play or book, very much as one may in the game of charades. The example Roy gave (the one I remember) was:
And for the illiterate amongst us, the tome in question was Catch 22!
I am sorry to report that Saturday morning was a little blurred for this
reporter, being one of the few lacking the sense to grab an early night,
yet still, inexplicably, being the first to rise. As Vivian Stanshall says
in the role of Sir Henry at Rawlinson End "I always sleep tight."
: BOOK 22 THROW ;
Nonetheless Ben Campbell gave a bouncingly entusiastic report of how to use
Forth to gain dominance in niche markets without, as he candidly notes in
his abstract, understanding
CREATE DOES>. The basic premise
was, find a market small enough to generate personal relationships with all
your customers, let them tell you what they want and demonstrate that you can
produce results. And pick an area that you find interesting, otherwise you
won't have the enthusuiasm required. Don't waste time on poor leads,
culture good ones. Sort of -
$$$ @ ;
Stephen Pelc of MPE was pleased to report that at a recent meeting with IBM, Seimens and ARM, amongst others, the general concensus was that traditional in-circuit emulation was ceasing to be feasible, basically because of the raw speed of modern processors, so interactive debugging environments would become imperative. We all know what language is the perfect choice.
Next Howerd Oakford from Inventio Software proposed a method for quality control in forth development. By then I was drifting off, so do not recall too much, apart from a very humerous diatribe, where Howerd claimed to like C very much, as it allowed him to blame everything on the compiler writer without fear of comeback.
Larry Forsely (Dash, Find Associates, and the Forth Institute) spoke lucidly about the philosophical aspects of the Forth paradigm in Rhyme, Reason and the Tao of Forth. Whether you agree with his vision of Forth or not he is a speaker worth hearing.
Session five was Embedded Applications, an area well outside of my field, so I will not try to do justice to the speakers here.
Briefly Malcom Bulgar described his frustrating experiences with Echelon - a basically neat idea for a product crippled by the comprimises made in the implementation. Naturally Forth comes to the rescue!
Tm Hendtlass (from Australia, whoever said that euroFORTH was parochial!) was a delight with his vivid imigary of elderly folk encountering technology, and how Forth could be used to maximise the usefulness of technology in providing a safer home environment whilst minimising intrusiveness, if only the State cared enough to fund it. Some problems are universal. This was another prize-winning talk.
Sergei Baranoff (also from the St Petersburg Institute for Information & Automatics) delivered a paper entitled A Model Of A Realtime Executive on Forth, but your foolish reporter forgot to take any notes, and his paper did not arrive in time to make it into the proceedings. Sorry.
Session six was MPE's and Forth Inc's opportunity to showcase their new products in the GUI & Professional Products part of the conference. I was pleased to discover that in person Elizabeth Rather showed the same clarity and sureness that she displays in her postings to the internet and EXPRESS, Forth Inc's GUI Process Control Software is impressive.
Not to be outdone by Elizabeth's walkthrough of a demo running under EXPRESS, Roy and the lovely Gary from MPE elected to demonstrate proForth for Windows by using GUIDE (stands for GUI DEsigner or something like that) to create a window, complete with menus, sub- menus and a button that printed a "hello world" message graphically before our very eyes and then modify the automatically generated souce code a little by hand, and then leap back into the graphic designer to change the hand modified window a little more, and then run the resulting code. All without crashing or making a single error. Again, most impressive, if not a little foolhardy!
After dinner we all dressed in warm clothes to join Winchester's torch lit procession to the fireworks display. There were thousands thronging the streets, and it was a genuinely moving experience. The bonfire was the largest I have seen, being about the size of a house. The discussion on the way centred around what was actually being celebrated, Guy Fawkes attempt to blow up parliament, or his being prevented from doing so. I believe we celebrate his failure. In typical British fashion. Not that this is unique, Liz Rather conceded that the Alamo was celebrated for similar reasons, and suggested that the confederacy was a larger example of the same. (Actuarly although it was Guy Fawkes night the Winchester celebrations goes back a lot further than that, they are a celebration of good King Alfred, the first King of the united kingdoms of England and his victory over the Vikings - Ed)
After the display we retired to one of the quieter pubs (quieter in the sense that the bouncer was still admitting customers, not in the sense that it was either quiet or not crowded) and sampled the ale.
Sunday brought the last session, which I kicked off with a brief advert for my implementation of the Memory Allocation Word Set. I have the ignominious honour of being the only speaker to run out of talk before running out of time.
Alan Robertson described working with the PIC16XX family of processors, which have 2k code space, an 8 deep return stack and a massive 35 bytes of RAM. Yes, 35 bytes! Astonishingly he has developed techniques to work interactively on these devices, by transferring virtually all of the functionality required in development to a host Forth. This was a prize-winning talk.
Markus Dahm from Aachen University brought us up to date with developments in natOOF, particularly in handing source file management over to the computer, which now logs what is loaded and defined during development, and creates a loadable source file from its logs when required.
Larry Forsley assisted Bjorn Gruenwald in describing the Murry 2000, a concept for a desktop supercomputer, based on Bjorn's unique style of programming, where the fundamental object is not the word but the process, or task. Typically Bjorn writes applications that have hundreds or thousands of tasks working cooperatively. He likens it to the techniques used by living creatures to store and process information. The Murry 2000 uses cellular automata linked in a tree structure to facilitate this. Code is generated to drive this from an ordinary procedural language by an automatic algorithm that he describes as a stochastic compiler. If the Murry 2000 lives up to its promise it will herald a seachange in computing.
Wolf Wejgaard brought us up to date with Holon, his unique vision of the future of Forth, which, as virtually all who have seen it agree, is an incredible system. He has given up with files and blocks, and works with a database, structured like a Smalltalk browser. Holon only does target compilation but completely seamlessly. It uses recursive descent compilation, so all compiled code is of minimum size. Both high level and code definitions are single steppable, and now it is written in Holon. Wolf claims that the process of rewriting Holon in Holon has allowed him to improve all the rough edges, because it is an ideal development tool. I see no reason to doubt him.
The conference was rounded off over lunch by the presentation of the prizes for best talk, as indicated above, and also for the silly competition. There were three prizes awarded for this also, of which I forget one. Again sorry. The other two went to Liz Rather, for:
and myself, for
: QUEEN 0 ' >HEAD ! ;
(Respectively Alive in Wonderland, from the Queen's cry of "off with his
head!" and Dylan Thomas' Under Milk Wood).
: PLAY MILK WOOD SWAP ;
Then came the suprise of the year!
Stephen Pelc and Elizabeth Rather stood together to announce a new era of cooperation between Forth vendors, pointing out that the real competition was with the 99% of the world that does not use Forth. From now on Forth Inc will carry and use MPE's proForth for Windows in the States. (I also understand that some changes will be made to the internal structure of MPE products to satisfy the expectations of polyforth users - spacifically the inclusion of a locate field). Steve and Liz did not actually hold hands, but it would not have been inappropriate. The applause was loud and long.
The survivors party was highlighted by a lesson from the American contingent in Shakespear and political correctness, Bjorn Gruenwald's skilled but all too brief piano playing, and Larry Forsley's pizzas. Again too short lived. We especially enjoyed the one topped with a sausage provided by Jaanus Pöial. His English did not extend to naming it, but his mime indicated a horned beast, and a question and answer session established it was probably venison.
It was with regret that I left before the party finished.