@InProceedings{read15, author = {Ulrich Hoffmann and Andrew Read}, title = {Hardware multitasking within a softcore {CPU}}, crossref = {euroforth15}, pages = {5--23}, url = {http://www.euroforth.org/ef15/papers/read.pdf}, OPTnote = {refereed}, abstract = {We have developed and implemented hardware multitasking support for a softcore CPU. The N.I.G.E. Machine's softcore CPU is an FPGA-based 32 bit stack machine optimized for running the FORTH programming language. The virtualization model that we have developed provides at least 32 independent CPU virtual machines within a single hardware instance. A full task switch takes place in only two clock cycles, the same duration as a branch or jump instruction. We have use the facility to provide a multitasking platform within the N.I.G.E. Machine's FORTH environment. Both cooperative multitasking, by means of the PAUSE instruction, and pre-emptive multitasking are supported.} } @InProceedings{peri15, author = {Salvatore Gaglio and Giuseppe Lo Re and Gloria Martorella and Daniele Peri}, title = {Use of {Forth} to Enable Distributed Processing on Wireless Sensor Networks}, crossref = {euroforth15}, pages = {24--32}, url = {http://www.euroforth.org/ef15/papers/peri.pdf}, OPTnote = {refereed}, abstract = {Wireless Sensor Networks (WSNs) are composed of tiny sensor nodes able to monitor environmental conditions. Existing applications for WSNs usually adopt a centralized approach that exploit sensor nodes just for sensing, while data processing takes place on more powerful base stations. This can be considered a consequence of the common WSN programming practice that proves too rigid to support development based on distributed processing. In fact, local processing of complex data, such as symbolic information and rules, is an under explored aspect. The adoption of high level interpreters above general purpose operating systems is often unpractical since it implies the saturation of the available resources. In this paper, we detail the implementation of an alternative Forth-based approach that implements a minimal but extensible operating system featuring common WSN functionalities as well as advanced skills such as symbolic distributed processing. We show the definition of words and syntactic constructs that enable collaborative processing on WSNs and ease the development of complex applications even on resource constrained WSN nodes. To this purpose, our approach is based on an abstract mechanism enabling nodes to exchange directly Forth code. Cooperative behaviors, introducing dynamic computation into the network, are thus easily implemented, as we show in a few applicative examples. Moreover, using the same mechanism, remote nodes can be effortlessly reprogrammed even after their deployment. Finally, we show how our approach proves to be feasible and advantageous through a comparison, in terms of memory usage, with relevant interpreter-based software platforms for WSNs.} } @InProceedings{baranov15, author = {Sergey Baranov}, title = {A {Forth}-Simulator of Real-Time Multi-Task Applications}, crossref = {euroforth15}, pages = {33--40}, url = {http://www.euroforth.org/ef15/papers/baranov.pdf}, url-slides = {http://www.euroforth.org/ef15/papers/baranov-slides.pdf}, OPTnote = {not refereed} } @InProceedings{ertl15, author = {M. Anton Ertl and Bernd Paysan}, title = {From \texttt{exit} to \texttt{set-does>} --- A Story of {Gforth} Re-Implementation}, crossref = {euroforth15}, pages = {41--47}, url = {http://www.euroforth.org/ef15/papers/ertl.pdf}, url-slides = {http://www.euroforth.org/ef15/papers/ertl-slides.pdf}, OPTnote = {not refereed}, abstract = {We changed \code{exit} from an immediate to a non-immediate word; this requires changes in the de-allocation of locals, which leads to changes in the implementation of colon definitions, and to generalizing \code{does>} into \code{set-does>} which allows the defined word to call arbitrary execution tokens. The new implementation of locals cleanup can usually be optimized to similar performance as the old implementation. The new implementation of \code{does>} has performance similar to the old implementation, while using \code{set-does>} results in speedups in certain cases.} } @InProceedings{nelson15, author = {Nick J. Nelson}, title = {A {Forth} Programmer Jumps Into The {Python} Pit}, crossref = {euroforth15}, pages = {48--55}, url = {http://www.euroforth.org/ef15/papers/nelson.pdf}, OPTnote = {not refereed}, abstract = {A unique opportunity arose to compare two similar applications on closely related platforms, one written in Python and one written in Forth.} } @InProceedings{strauch15, author = {Tobias Strauch}, title = {Using System Hyper Pipelining for a Multi-Threaded {FORTH} Compatible Stack Processor Mapped on an {FPGA}}, crossref = {euroforth15}, pages = {56--60}, url = {http://www.euroforth.org/ef15/papers/strauch.pdf}, OPTnote = {not refereed}, abstract = {FORTH compatible stack processors are still subject to research and development. They also face new multi- processing and multi-threading challenges. Most notoriously the multicore processor G144 from the inventor of FORTH Charles Moore. This paper outlines an alternative concept to generate a mutli-threaded FORTH compatible stack processor by using System Hyper Pipelining (SHP), which overcomes the limitations of classical multi-threading methods by adding thread stalling, bypassing and reordering techniques to better cope with the challenges of Symmetrical Multi-Processing and Simultaneous Multi-Threading. SHP is ideal for FPGAs with their high number of registers and their flexible memory usage. The paper gives results for a FORTH compatible stack processor mapped on an FPGA.} } @InProceedings{schleisiek15, author = {Klaus Schleisiek}, title = {{microCore} and floating point numbers}, crossref = {euroforth15}, pages = {61--67}, url = {http://www.euroforth.org/ef15/papers/schleisiek.pdf}, OPTnote = {not refereed}, abstract = {} } @InProceedings{bennet_Certification15, author = {Paul E. Bennet}, title = {Components for Certification}, crossref = {euroforth15}, pages = {68--71}, url = {http://www.euroforth.org/ef15/papers/bennet_Certification.pdf}, url-slides = {http://www.euroforth.org/ef15/papers/bennet_Certification-slides.pdf}, OPTnote = {not refereed}, abstract = {Even the humble hexagonal nut has a data-sheet that describes its functionality, performance factors, interfaces and limits beyond which its continued performance is not guaranteed. Electrical and Electronic Components also have data-sheets that describe their functionality, interfaces, performance and limitations. Why should software be any different? Yet, much of the software in existence has not carried through providing this useful artefact of the rest of the engineering world./par Some consider software as a quite different aspect of creative development and so it has, for many, become a black art for devotees of a specific programming language to get to understand the hieroglyphics that they use. Yet software is being used in a wider range of products, some of which are becoming even more mission, security or safety critical, and sometimes, all three aspects simultaneously./par There have been some attempts at Component Oriented Development[3] with artefacts like .NET, and CORBA. Huge system modelling tools, built mainly for the software industry, have grown up that will churn out code from the model, all without the real feel of whether the model was correct or whether the translation of that model to code was correct. In such circumstances it becomes very difficult to be certain about any assessment of the final products fitness for purpose and absence of hidden faults./par In this paper we will take a look at what is required for Component Oriented Development that can be proven to be fully trustworthy to perform as its data-sheet implies.} } @InProceedings{knaggs15, author = {Peter Knaggs and Paul E. Bennet}, title = {Minimal Forth}, crossref = {euroforth15}, pages = {72--74}, url = {http://www.euroforth.org/ef15/papers/knaggs.pdf}, OPTnote = {not refereed} } @InProceedings{bennet_Education15, author = {Paul E. Bennet}, title = {{Forth} in Education --- A Report}, crossref = {euroforth15}, pages = {75--76}, url-slides = {http://www.euroforth.org/ef15/papers/bennet_Education-slides.pdf}, OPTnote = {presentation slides} } @InProceedings{ertl-recognizers15, author = {M. Anton Ertl}, title = {Recognizers --- Why and How}, crossref = {euroforth15}, pages = {77--78}, url-slides = {http://www.euroforth.org/ef15/papers/ertl-recognizers-slides.pdf}, OPTnote = {presentation slides} } @InProceedings{wagner15, author = {Leon Wagner}, title = {Radeus 8200 Series Antenna Controller}, crossref = {euroforth15}, pages = {79--80}, url-slides = {http://www.euroforth.org/ef15/papers/wagner-slides.pdf}, OPTnote = {presentation slides} } @Proceedings{euroforth15, title = {31st EuroForth Conference}, booktitle = {31st EuroForth Conference}, year = {2015}, key = {EuroForth'15}, url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef15/papers/proceedings.pdf} }