A Native Transterpreter for the LEGO Mindstorms RCX
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Download Programs to the LEGO As Well As Enable Line-Of-Sight Communi- Cation Between Robots
Kent Academic Repository Full text document (pdf) Citation for published version Jacobsen, Christian L. and Jadud, Matthew C. (2004) The Transterpreter: A Transputer Interpreter. In: East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy and Welch, Peter H., eds. Communicating Process Architectures 2004. Concurrent Systems Engineering Series, 62. IOS Press, Amsterdam pp. 99-106. ISBN 1-58603-458-8. DOI Link to record in KAR https://kar.kent.ac.uk/14104/ Document Version UNSPECIFIED Copyright & reuse Content in the Kent Academic Repository is made available for research purposes. Unless otherwise stated all content is protected by copyright and in the absence of an open licence (eg Creative Commons), permissions for further reuse of content should be sought from the publisher, author or other copyright holder. Versions of research The version in the Kent Academic Repository may differ from the final published version. Users are advised to check http://kar.kent.ac.uk for the status of the paper. Users should always cite the published version of record. Enquiries For any further enquiries regarding the licence status of this document, please contact: [email protected] If you believe this document infringes copyright then please contact the KAR admin team with the take-down information provided at http://kar.kent.ac.uk/contact.html Communicating Process Architectures 2004 99 Ian East, Jeremy Martin, Peter Welch, David Duce, and Mark Green (Eds.) IOS Press, 2004 The Transterpreter: A Transputer Interpreter Christian L. JACOBSEN [email protected] Matthew C. JADUD [email protected] Computing Laboratory, University of Kent, Canterbury, CT2 7NF, UK Abstract. -
Opinion Sysadmin File Systems Hardware Columns Book
OCTOBER 2009 VOLUME 34 NUMBER 5 OPINION Musings 2 Rik Farrow SYSADMin Hey! I Have to Install and Maintain This Crap Too, Ya Know! 6 Thomas a. Limoncelli THE USENIX MAGAZINE XFS: The Big Storage File System for Linux 10 chRisToph hellwig Fixing on a Standard Language for UNIX Manuals 19 KrisTaps Dz˘ onsons FILE SYSTEMS Perspective: Semantic Data Management for the Home 24 BR anDon saL mon, Steven w. schLosseR, Lorrie FaiTh CranoR, anD GregoRy R. gangeR PROGRAMMinG Migration to Multicore: Tools That Can Help 32 Tasneem g. BRuTch HARDWARE Chips and Static Electricity 42 RuDi van DRunen COLUMNS Practical Perl Tools: Scratch the Webapp Itch with CGI::Application, Part 2 49 DaviD n. BLank-EdeLman Pete’s All Things Sun: VMware vSphere 4 vs. Microsoft Hyper-V R2 58 peTeR BaeR gaLvin iVoyeur: Packet-Level, Per-User Network Access Control and Monitoring 68 Dave Josephsen /dev/random 73 RoBert g. FerreLL BooK REVIEWS Book Reviews 76 ElizaBeTh zwicky eT aL. USEniX NOTES Nominating Committee for 2010 USENIX Board of Directors 79 Summary of USENIX Board of Directors Actions 79 Ellie young ConFEREncES 2009 USENIX Annual Technical Conference Reports 81 Report on the Workshop on Hot Topics in Cloud Computing (HotCloud ’09) 100 Report on BSDCan 2009: The Technical BSD Conference 107 The Advanced Computing Systems Association oct09covers.indd 1 9.4.09 10:19:48 AM Upcoming Events 23r d La r g e In s t a ll a t I o n sy s t e m ad m I n I s t r a t I o n 2010 In t e r n e t ne t w o r k ma n a g e m e n t Co n f e r e n C e (LISA ’09) wo r k s H o p (INM -
Rain VM: Portable Concurrency Through Managing Code
Communicating Process Architectures 2006 253 Peter Welch, Jon Kerridge, and Fred Barnes (Eds.) IOS Press, 2006 c 2006 The authors. All rights reserved. Rain VM: Portable Concurrency through Managing Code Neil BROWN Computing Laboratory, University of Kent, Canterbury, Kent, CT2 7NF, England. [email protected] Abstract. A long-runningrecent trend in computer programmingis the growth in pop- ularity of virtual machines. However, few have included good support for concurrency — a natural mechanism in the Rain programming language. This paper details the design and implementation of a secure virtual machine with support for concurrency, which enables portability of concurrent programs. Possible implementation ideas of many-to-many threading models for the virtual machine kernel are discussed, and initial benchmarks are presented. The results show that while the virtual machine is slow for standard computation, it is much quicker at running communication-heavy concurrent code — within an order of magnitude of the same native code. Keywords. Process-oriented programming, Concurrency, Virtual Machine, VM, Rain Introduction The over-arching trend of computer programming in the last fifteen years has been the growth of interpreted/bytecode-based languages. It had become clear that computers would always be heterogeneous, and that compiling different versions (‘ports’) of programs in languages such as C usually required a tangled mess of compiler directives and wrappers for various native libraries (such as threading, networking, graphics). Using an interpreter or bytecode (grouped here into the term “intermediate language”) meant that the burden of portability could be centralised and placed on the virtual machine (VM) that runs the intermediate lan- guage, rather than the developers of the original programs. -
Guppy: Process-Oriented Programming on Embedded Devices
View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Kent Academic Repository Communicating Process Architectures 2015 1 P.H. Welch et al. (Eds.) Open Channel Publishing Ltd., 2015 © 2015 The authors and Open Channel Publishing Ltd. All rights reserved. Guppy: Process-Oriented Programming on Embedded Devices Frederick R.M. BARNES School of Computing, University of Kent, Canterbury, Kent UK. CT2 7NF. [email protected] Abstract. Guppy is a new and experimental process-oriented programming language, taking much inspiration (and some code-base) from the existing occam-p language. This paper reports on a variety of aspects related to this, specifically language, com- piler and run-time system development, enabling Guppy programs to run on desktop and embedded systems. A native code-generation approach is taken, using C as the in- termediate language, and with stack-space requirements determined at compile-time. Keywords. Guppy, Concurrency, Process-oriented, LEGO® MINDSTORMS® EV3 Introduction This paper reports on a thread of experimentation in a new process-oriented language named Guppy, based on and influenced by the occam-p/Transputer/CSP software, systems and mod- els [1,2,3]. Previous work has successfully seen occam-p process-oriented programs running on a variety of desktop and embedded systems, employing a range of techniques from inter- pretation to native code generation. Of particular interest to the work here is the LEGO® Group’s MINDSTORMS® third generation of programmable brick, the EV3. Occam-p programs have been run successfully on the first two generations [4,5], the LEGO® MINDSTORMS® RCX and NXT, using the Transterpreter [6] — a virtual Transputer emulator1. -
Process-Oriented Patterns for Concurrent Software Engineering
PROCESS-ORIENTED PATTERNS FOR CONCURRENT SOFTWARE ENGINEERING A THESIS SUBMITTED TO THE UNIVERSITY OF KENT IN THE SUBJECT OF COMPUTER SCIENCE FOR THE DEGREE OF DOCTOR OF PHILOSOPHY. By Adam T. Sampson 2008 Abstract Concurrency is unavoidable in modern software development, owing to the increasing complexity of computer systems and the widespread use of parallel computer hard- ware. Conventional approaches to concurrency are fraught with danger: in particular, uncontrolled access to shared resources, poor scalability and the inability of the pro- grammer to reason about the correctness of a program. Process-oriented programming is a software design approach that offers solutions to many of these problems. A process-oriented program is constructed as a network of isolated, concurrent processes that interact only using synchronisation objects such as channels and barriers. Using techniques drawn from CSP and the p-calculus, de- sign rules can be constructed that enable the programmer to easily build systems with known safety properties. Since process-oriented programs expose by their nature a high degree of explicit concurrency, they can be efficiently distributed across multiple processors and clusters of machines. This thesis describes a pattern language for the engineering of process-oriented pro- grams. Design patterns describe reusable, adaptable solutions to common problems that may arise during the design and development of a system. A pattern language serves the dual purposes of documenting the proven design solutions developed by a community, and providing a common technical vocabulary. The patterns described in this thesis are drawn from a variety of existing process- oriented real-world applications, and have been used to construct new applications in fields such as embedded systems, multimedia processing, and complex systems simu- lation. -
COMMUNICATING PROCESS ARCHITECTURES 2008 Concurrent Systems Engineering Series
COMMUNICATING PROCESS ARCHITECTURES 2008 Concurrent Systems Engineering Series Series Editors: M.R. Jane, J. Hulskamp, P.H. Welch, D. Stiles and T.L. Kunii Volume 66 Previously published in this series: Volume 65, Communicating Process Architectures 2007 (WoTUG-30), A.A. McEwan, S. Schneider, W. Ifill and P.H. Welch Volume 64, Communicating Process Architectures 2006 (WoTUG-29), P.H. Welch, J. Kerridge and F.R.M. Barnes Volume 63, Communicating Process Architectures 2005 (WoTUG-28), J.F. Broenink, H.W. Roebbers, J.P.E. Sunter, P.H. Welch and D.C. Wood Volume 62, Communicating Process Architectures 2004 (WoTUG-27), I.R. East, J. Martin, P.H. Welch, D. Duce and M. Green Volume 61, Communicating Process Architectures 2003 (WoTUG-26), J.F. Broenink and G.H. Hilderink Volume 60, Communicating Process Architectures 2002 (WoTUG-25), J.S. Pascoe, P.H. Welch, R.J. Loader and V.S. Sunderam Volume 59, Communicating Process Architectures 2001 (WoTUG-24), A. Chalmers, M. Mirmehdi and H. Muller Volume 58, Communicating Process Architectures 2000 (WoTUG-23), P.H. Welch and A.W.P. Bakkers Volume 57, Architectures, Languages and Techniques for Concurrent Systems (WoTUG-22), B.M. Cook Volumes 54–56, Computational Intelligence for Modelling, Control & Automation, M. Mohammadian Volume 53, Advances in Computer and Information Sciences ’98, U. Güdükbay, T. Dayar, A. Gürsoy and E. Gelenbe Volume 52, Architectures, Languages and Patterns for Parallel and Distributed Applications (WoTUG-21), P.H. Welch and A.W.P. Bakkers Volume 51, The Network Designer’s Handbook, A.M. Jones, N.J. Davies, M.A. -
Plumbing for the Arduino
Plumbing for the Arduino Matthew C. Jadud Christian L. Jacobsen Adam T. Sampson Revision 2011-01-24 2 Contents 1 Getting Started 11 1.1 Goals . 11 1.2 Installing the Drivers—or Not . 11 1.2.1 You have an old Arduino . 12 1.2.2 You use an adapter . 13 1.2.3 You have a new Arduino . 14 1.3 Testing JEdit . 14 1.3.1 Upload the Firmware . 15 2 One Blinkenlight 18 2.1 Goals . 18 2.2 Code . 18 2.2.1 Open JEdit . 19 2.2.2 Write your Program . 20 2.2.3 Build Your Code . 21 2.3 Patterns . 22 2.3.1 The PROCedure Definition . 22 2.3.2 A PROCedure Call . 24 2.4 Breakage . 25 2.4.1 Programming Strategies . 28 2.5 Other Resources . 29 3 Contents 3 Speedy Blinkenlight 30 3.1 Goals . 30 3.2 Building the Circuit . 30 3.2.1 The Breadboard . 33 3.2.2 The Arduino . 33 3.2.3 The Resistor . 34 3.2.4 The LED . 35 3.2.5 Completing the circuit . 36 3.3 Code . 37 3.4 Patterns . 37 3.5 Experimenting with Changes . 39 3.6 Breakage . 39 3.6.1 Break your circuit . 39 3.6.2 Break your program . 40 4 Two Blinkenlights 42 4.1 Goals . 42 4.2 Build the circuit . 42 4.3 Code . 44 4.4 The PAR pattern . 44 4.4.1 The truth about PAR ........... 45 4.4.2 Explorations . 47 4.5 Breakage . 48 5 Push the Button 51 5.1 Goals .