Native Code Generation Using the Transterpreter

We are interested in languages that provide powerful abstractions for con- currency and parallelism that execute everywhere, efficiently. Currently, the existing runtime environments for the occam-p programming language provide either one of these features (portability) or some semblance of the other (performance). We believe that both can be achieved through the careful generation of C from occam-p, and demonstrate that this is possible using the Transterpreter, a portable interpreter for occam-p, as our starting point.

[1]  Ian Piumarta,et al.  Optimizing direct threaded code by selective inlining , 1998, PLDI 1998.

[2]  G. Mulley A report on the progress of GNU Modula-2 and its potential integration into GCC Gaius , 2008 .

[3]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[4]  Matthew C. Jadud,et al.  Towards concrete concurrency: occam-pi on the LEGO mindstorms , 2005, SIGCSE '05.

[5]  Peter H. Welch,et al.  Communicating Mobile Processes : Introducing occam-pi , 2005 .

[6]  Guy L. Steele,et al.  C, a reference manual , 1984 .

[7]  Andrew S. Tanenbaum,et al.  A practical tool kit for making portable compilers , 1983, Commun. ACM.

[8]  Andreas Bauer Creating a Portable Programming Language Using Open Source Software , 2004, USENIX Annual Technical Conference, FREENIX Track.

[9]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[10]  Peter H. Welch,et al.  The Kent retargetable occam compiler , 1996 .

[11]  Andreas Polze,et al.  The Grid-Occam Project , 2004, GSEM.

[12]  Matthew C. Jadud,et al.  A Cell Transterpreter , 2006, CPA.

[13]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[14]  Jason Merrill Generic and gimple: A new tree represen-tation for entire functions , 2003 .

[15]  Michael D. Poole Occam for all—two approaches to retargeting the INMOS compiler , 1996 .

[16]  James Moores CCSP - A portable CSP-based run-time system supporting C and occam , 1999 .

[17]  Denis A. Nicole,et al.  Southampton's Portable Occam Compiler (SPOC) , 1994 .

[18]  T Crick A GCC front end for BCPL , 2004 .

[19]  Inmos Corp,et al.  Occam Programming Manual , 1984 .

[20]  F. Barnes tranx 86 – an Optimising ETC to IA 32 Translator , 2001 .

[21]  Frederick R. M. Barnes tranx86 - an Optimising ETC to IA32 Translator , 2001 .

[22]  Simon L. Peyton Jones,et al.  C--: A Portable Assembly Language that Supports Garbage Collection , 1999, PPDP.

[23]  H. Peter Hofstee,et al.  Introduction to the Cell multiprocessor , 2005, IBM J. Res. Dev..

[24]  Michael D. Poole Extended Transputer Code - a Target-Independent Representation of Parallel Programs , 1998 .

[25]  David E. Culler,et al.  The nesC language: A holistic approach to networked embedded systems , 2003, PLDI.

[26]  Philip Wadler,et al.  The Glasgow Haskell Compiler: a technical overview , 1993 .

[27]  Matthew C. Jadud,et al.  The Transterpreter: A Transputer Interpreter , 2004 .

[28]  David Gregg,et al.  Vmgen—a generator of efficient virtual machine interpreters , 2002, Softw. Pract. Exp..