@InProceedings{read12, author = {Andrew Read}, title = {The N.I.G.E. Machine: an FPGA based micro-computer system for prototyping experimental scientific hardware}, crossref = {euroforth12}, pages = {5--22}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/read.pdf}, OPTnote = {refereed}, abstract = {This paper describes the N.I.G.E. Machine, a user-expandable micro-computer system that runs on an FPGA development board and is designed specically for the rapid prototyping of experimental scientic hardware or other devices. The key components of the system include a stack-based softcore CPU optimized for embedded control, a FORTH software environment, and a exible digital logic layer that interfaces the micro-computer components with the external environment. The system has been demonstrated on a Digilent Nexys 2 development board and in an example scientic experiment involving a light source and sensor.} } @InProceedings{bruehl12, author = {Dirk Bruehl}, title = {Forth for Education -- 4E4th and 4E4th IDE}, crossref = {euroforth12}, pages = {23--38}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/bruehl.pdf}, OPTnote = {not refereed}, abstract = {This paper describes the necessity to offer special easygoing tools for the next generations of enthusiastic and engaged Forth programmers education, frankly reporting ways and means, showing a trailblazing example on the path to get there.} } @InProceedings{pelc12, author = {Stephen Pelc}, title = {Notation Matters}, crossref = {euroforth12}, pages = {39--44}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/pelc.pdf}, OPTnote = {not refereed}, abstract = {Forth is an interactive extensible language. A consequence of this is that we can use the interactive nature of Forth both at compile-time and at run-time to produce our own notations. Good notation is very important when an application has a lifetime measured in decades.} } @InProceedings{stoddart+12, author = {Bill Stoddart and Campbell Ritchie and Steve Dunne}, title = {Forth Semantics for Compiler Verification}, crossref = {euroforth12}, pages = {45--58}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/stoddart.pdf}, OPTnote = {not refereed}, abstract = {Here we are interested in the semantics of Forth from the point of view of using Forth as a target language for a formally verified compiler for Ruth-R, a reversible sequential programming language we are currently developing. We limit out attention to those Forth operations and constructs which will be targetted by the Ruth-R compiler. To facilitate the comparison of meanings of source and target languages, we represent the semantics of Forth code by translation into a form which can be described using the "prospective value" semantics we use for Ruth-R.} } @InProceedings{stricker12, author = {Willi Stricker}, title = {Connection of a Forth Target with a Forth Host}, crossref = {euroforth12}, pages = {59--62}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/stricker.pdf}, OPTnote = {not refereed}, OPTabstract = {} } @InProceedings{vanBreda12LR, author = {Ian van Breda}, title = {Building an LR parser using Forth}, crossref = {euroforth12}, pages = {63--81}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/vanBreda-LR.pdf}, OPTnote = {not refereed}, abstract = {The construction of a parser for Pascal is described. The parser is built by using Forth to include files that define the tokens and grammar of the language and may be thought of as a `virtual machine' comprising a grammar code with lookup tables. The resulting parser can be run from within Forth or any other environment using simple drivers and is fully LR(1) capable. It is also well-suited for use with languages other than Pascal. An account is given of the author's early experiences with Forth at the University of St. Andrews and the Royal Greenwich Observatory.} } @InProceedings{vanBreda12standard, author = {Ian van Breda}, title = {Some comments on the proposed Forth Standard}, crossref = {euroforth12}, pages = {82--95}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/vanBreda-Standard.pdf}, OPTnote = {not refereed}, abstract = {This paper discusses the current proposals for a new Forth standard following on from ANS Forth. Some changes of name are suggested. It is shown the proposals for the Extended Characters wordset can either be subsumed into existing definitions for fixed-character sets or be added in a way that make the two schemes compatible. Proposals are also made for record structures coupled with dot notation, that fit well with existing Forth practice and would allow a natural extension to object-oriented Forth.} } @InProceedings{ertl12, author = {M. Anton Ertl}, title = {Methods in objects2: Duck Typing and Performance}, crossref = {euroforth12}, pages = {96--103}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/ertl.pdf}, OPTnote = {not refereed}, abstract = {The major new feature of objects2 is defining methods for any class (like in Smalltalk): this means that we can have two classes that are unrelated by inheritance, yet react to the same messages and can be used in the same contexts; this is also known as duck typing. This paper discusses the implementation of method dispatch for these general selectors as well as the more restricted class selectors of the original \code{objects.fs}, and compares the memory and execution time costs of these method selector implementations: Unhashed general selectors are as fast as class selectors (down to two instructions), but can consume a lot of memory (megabytes of dispatch tables for large class hierarchies); hashed general selectors are significantly slower ($\ge 43$ cycles), but consume less memory. Programmers don't need to choose a selector implementation up front; instead, it is easy to switch between them later, on a per-selector basis.} } @InProceedings{paysan12net2o, author = {Bernd Paysan}, title = {net2o: Transport Layer --- Implemented}, crossref = {euroforth12}, pages = {104--107}, url1 = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/paysan-net2o-tl2.pdf}, url2 = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/paysan-net2o-tl2-ho.pdf}, OPTnote = {Presentation slides}, OPTabstract = {} } @InProceedings{paysan12recognizers, author = {Bernd Paysan}, title = {Recognizers}, crossref = {euroforth12}, pages = {108--110}, url1 = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/paysan-recognizers.pdf}, url2 = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/paysan-recognizers-ho.pdf}, OPTnote = {Presentation slides}, OPTabstract = {} } @Proceedings{euroforth12, title = {28th EuroForth Conference}, booktitle = {28th EuroForth Conference}, year = {2012}, key = {EuroForth'12}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef12/papers/proceedings.pdf} }