@InProceedings{lynas&stoddart08, author = {Angel Robert Lynas and Bill Stoddart}, title = {Using {Forth} in a Concept-Oriented Computer Language Course}, crossref = {euroforth08}, pages = {7--19}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/lynas-stoddart.pdf}, OPTnote = {refereed}, abstract = {We describe a way of teaching fundamentals of Language Systems (for second-year Computing students), without having to compromise the use of a simple grammar owing to hardware limitations which need no longer apply in this setting. We adopt a top-down approach, reading from right-to-left and splitting the input string on the rightmost operator appropriate to that level. The target platform is Reversible Virtual Machine (RVM) Forth, so a postfix translation is the aim. We introduce a basic arithmetic grammar and expand it during the course to allow unary minus, floating point and function application; this shows how type information can be generated in one pass and resolved in a second, via an internal intermediate code. Each version of the grammar has its productions mapped onto a system of equations which serve as the specification for the implementation functions.} } @InProceedings{poial08, author = {Jaanus Pöial}, title = {Java Framework for Static Analysis of {Forth} Programs}, crossref = {euroforth08}, pages = {20--24}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/poial.pdf}, OPTnote = {not refereed}, abstract = {In [2] author introduces theoretical background for static analysis of Forth programs (definitions, basic op erations, typing rules, etc.). This paper is direct continuation of the topic and describes implementation of basic blocks for writing software tools to support type checking of Forth programs. On small examples we try to explain problems and p ossible solutions. Author hopes that these ideas help to develop some useful tools. Prototype is written in Java that is quite universal and widespread object oriented platform for software development.}, keywords = {Type Systems, Forth, Program Analysis} } @InProceedings{pelc08, author = {Stephen Pelc}, title = {Updating the {Forth} Virtual Machine}, crossref = {euroforth08}, pages = {24--30}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/pelc.pdf}, OPTnote = {not refereed}, abstract = {The canonical Forth Virtual machine has remained essentially the same since its inception. Modern silicon implementations and compiler techniques indicate that the VM as used in practice differs from this model. It is time to consider overhauling the canonical Forth Virtual Machine. In particular, the addition of address registers is considered.} } @InProceedings{paysan08a, author = {Bernd Paysan}, title = {A Debugger for the b16 {CPU}}, crossref = {euroforth08}, pages = {31--34}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/paysan.pdf}, slidesurl = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/b16-debugger-selected.pdf}, OPTnote = {not refereed}, abstract = {A debugging interface for the b16 CPU is shown. A few lines of Verilog and some small Forth programs are sufficient to add a classical debugging interface to this small CPU. Integration of other controls (like test equipment) is very easy to do.} } @InProceedings{ertl08, author = {M. Anton Ertl}, title = {Cleaning up After Yourself}, crossref = {euroforth08}, pages = {35--38}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/ertl.pdf}, OPTnote = {not refereed}, abstract = {Performing cleanup actions such as restoring a variable or closing a file used to be impossible to guarantee in Forth before Forth-94 gave us \code{catch}. Even with \code{catch}, the cleanup code can be skipped due to user interrupts if you are unlucky. We introduce a construct that guarantees that the cleanup code is always completed. We also discuss a cheaper implementation approach for cleanup code than using a full exception frame.} } @InProceedings{stoddart&lynas08, author = {Bill Stoddart and Angel Robert Lynas}, title = {Filters for {Unicode} Markup, a Work in Progress Report}, crossref = {euroforth08}, pages = {55-62}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/stoddart-lynas2.pdf}, OPTnote = {not refereed}, abstract = {The advent of Unicode extends the restrictive ASCII character set with millions of characters. However, we still have the same keyboards! Very often a document or program will require a limited set of Unicode characters in addition to characters available from the keyboard. We describe an approach which allows a user to provide a "markup" for each special character required, such as \verb+\alpha+ for the Greek letter $\alpha$, and in which the markup is replaced by the character it represents when typed at the keyboard or streamed from file. The techniques used include vectoring Forth's keyboard input to enable markup se- quences to take effect during Forth command line input, and writing Unix filters in Forth. The latter allows the provision of wrappers that allow the use of Unicode markup with any Unix editor that can accept input from the standard input device.}, keywords = {Forth, Unicode, Unix Filters, UTF-8, RVM-Forth} } @InProceedings{hoffmann08, author = {Ulrich Hoffmann}, title = {Forth System Hooks---Metaobject Protocol in {Forth} Style}, crossref = {euroforth08}, pages = {39}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/hoffmann.pdf}, slidesurl = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/HoffmannEuroForth2008.pdf}, note = {abstract} } @InProceedings{shi+08, author = {Yunhe Shi and Kevin Casey and M. Anton Ertl and David Gregg}, title = {Virtual Machine Showdown: Stack versus Registers}, crossref = {euroforth08}, pages = {40--47}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/gregg.pdf}, note = {Presentation slides} } @InProceedings{haley08, author = {Andrew Haley}, title = {An Infix Syntax for {Forth} (and its compiler)}, crossref = {euroforth08}, pages = {48--54}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/haley.pdf}, note = {Presentation slides} } @InProceedings{paysan08b, author = {Bernd Paysan}, title = {Porting {MINOS} to {VFX}}, crossref = {euroforth08}, pages = {63--65}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/vfx-minos-selected.pdf}, note = {Presentation slides} } @InProceedings{ceballos08, author = {Federico de Ceballos}, title = {A high level interface to {SQLite}}, crossref = {euroforth08}, pages = {66-68}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/ceballos.pdf}, note = {Presentation slides} } @InProceedings{wodni08, author = {Gerald Wodni}, title = {GLforth --- an Ego Shooter}, crossref = {euroforth08}, url = {http://www.complang.tuwien.ac.at/anton/lvas/stack-abgaben/07w/glforth/}, note = {Demo, no printed paper} } @Proceedings{euroforth08, title = {24th EuroForth Conference}, booktitle = {24th EuroForth Conference}, year = {2008}, key = {EuroForth'08}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef08/papers/proceedings.pdf} }