@InProceedings{arhipov&nelson10, author = {S.N.Arhipov and N.J.Nelson}, title = {Securing a {Windows} 7 Public Access System Using {Forth}}, crossref = {euroforth10}, pages = {31--42}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef10/papers/ArhipovSergej.pdf}, OPTnote = {not refereed}, abstract = {Very often in industrial conditions the real time program system is used by one or more operators, who have computer qualification and experience only in using this program. Therefore, it is very important, that this special group of users is allowed to use only this program and not allowed to use all other programs in the computer. At the same time it is necessary to keep multi user environment and allow the administrator to use all system opportunities. Herewith, only the administrator can switch between desktops, it should be quick and should continue executing the programs. In this article the Forth programmatical technique of disabling some functional features of Windows 7 is described.} } @InProceedings{bowman10, author = {James Bowman}, title = {J1: a small {Forth} {CPU} Core for {FPGAs}}, crossref = {euroforth10}, pages = {43--46}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef10/papers/bowman.pdf}, OPTnote = {not refereed}, abstract = {This paper describes a 16-bit Forth CPU core, intended for FPGAs. The instruction set closely matches the Forth programming language, simplifying cross-compilation. Because it has higher throughput than comparable CPU cores, it can stream uncompressed video over Ethernet using a simple software loop. The entire system (source Verilog, cross compiler, and TCP/IP networking code) is published under the BSD license. The core is less than 200 lines of Verilog, and operates reliably at 80 MHz in a Xilinx Spartan R -3E FPGA, delivering approximately 100 ANS Forth MIPS.} } @InProceedings{ertl&kuehling10, author = {M. Anton Ertl and David K\"uhling}, title = {\texttt{ABI-CODE}: Increasing the portability of assembly language words}, crossref = {euroforth10}, pages = {5--14}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef10/papers/ertl.pdf}, OPTnote = {refereed}, abstract = {Code words are not portable between Forth systems, even on the same architecture; worse, in the case of Gforth, they are not even portable between different engines nor between different installations. We propose a new mechanism for interfacing to assembly code: \texttt{abi-code} words are written to comply with the calling conventions (ABI) of the target platform, which does not change between Forth systems. In the trade-off between performance and portability, \texttt{abi-code} provides a new option between code words and colon definitions. Compared to \texttt{code} words, the \texttt{abi-code} mechanism incurs an overhead of 16 instructions on AMD64. Compared to colon definitions, we achieved a speedup by a factor of 1.27 on an application by rewriting one short colon definition as an abi-code word.} } @InProceedings{haley10, author = {Andrew Haley}, title = {Forth concurrency for the 21st century}, crossref = {euroforth10}, pages = {53--59}, slidesurl = {http://www.complang.tuwien.ac.at/anton/euroforth/ef10/papers/haley.pdf}, OPTnote = {Presentation slides}} @InProceedings{mahlow10, author = {Manfred Mahlow}, title = {Using {Glade} to create {GTK+} Applications with {FORTH}}, crossref = {euroforth10}, pages = {47--52}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef10/papers/mahlow.pdf}, OPTnote = {not refereed}, abstract = {When talking about GUI development with FORTH, one of the most expressed desires is to have an IDE or a graphical editor. Some years ago, when I wrote an object-oriented GTK+ interface for cspForth, an IDE or graphical editor was not my concern. But, when I recently decided to port the GTK+ interface to MINFORTH, I remembered that often expressed desire and had a look at Glade and found that Glade and FORTH can be quite good companions.} } @InProceedings{paysan10, author = {Bernd Paysan}, title = {net2o: vapor $\rightarrow$ reality}, crossref = {euroforth10}, pages = {64--67}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef10/papers/paysan.pdf}, OPTnote = {Presentation slides}} @InProceedings{ritchie&stoddart10, author = {Campbell Ritchie and Bill Stoddart}, title = {A Compiler which Creates Tagged Parse Trees and Executes them as {FORTH} Programs}, crossref = {euroforth10}, pages = {15--30}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef10/papers/ritchie.pdf}, slidesurl = {http://www.complang.tuwien.ac.at/anton/euroforth/ef10/papers/ritchie-slides.pdf}, OPTnote = {refereed}, abstract = {Most compilers use separate scanning and parsing, and scan their input from left to right. Lynas and Stoddart (2008) demonstrated an alternative technique where an input string is split into multiple subexpressions, divided at each operator.\par We demonstrate an expression parser which extends this work. It runs in two passes. The first pass scans code lefttoright or righttoleft depending on the associativity of the operator sought, creating pointers to strings which together represent a parse tree. At the end of the first pass, it uses lexical analysers to infer the type of each token, or find the type in a lookup table.\par The types follow the theory of the B language, building up more complex types as if with the powerset () and Cartesian product (×) operators. The "parser" operations, whose titles all begin with "P" assemble the elements into a postfix model of the parse tree, with the operators tagged with a _ character.\par The second pass can be run together with the first, or later, allowing the intermediate representation of the code, as a tagged parse tree, to be inspected. The output can be executed as FORTH code; each operator tagged with a _ is matched by a corresponding operation which tests the types supplied, and leaves the type and postfix representation on the stack; the latter is identical to the FORTH representation of the original expression.\par We discuss possible uses of such a compiler, and possible problems about its efficiency, since it runs in quadratic time.} } @InProceedings{schleisiek10, author = {Klaus Schleisiek}, title = {uCore Progress (with remarks on arithmetic overflow)}, crossref = {euroforth10}, pages = {60--63}, slidesurl = {http://www.complang.tuwien.ac.at/anton/euroforth/ef10/papers/schleisiek.pdf}, OPTnote = {Presentation slides} } @InProceedings{wodni10, author = {Gerald Wodni and M. Anton Ertl}, title = {The Forth Net}, crossref = {euroforth10}, pages = {68--69}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef10/papers/wodni.pdf}, OPTnote = {not refereed}, abstract = {CPAN and PECL are impressive ways of sharing custom libraries. Projects are discussed, hosted and downloaded. Their dependencies are clear (no need to search across the web) and also downloaded at once. There is no such web portal for Forth --- until now.} } @Proceedings{euroforth10, title = {26th EuroForth Conference}, booktitle = {26th EuroForth Conference}, year = {2010}, key = {EuroForth'10}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef10/papers/proceedings.pdf} }