Newsgroups: comp.sys.transputer From: smw@ringwood.ecs.soton.ac.uk Subject: Release of Portable Occam Compiler (SPOC V1.1) Keywords: Occam, available, FTP Organization: University of Southampton Date: Tue, 8 Mar 1994 17:36:20 GMT Southampton Portable Occam Compiler (SPOC) Version 1.1 ====================================================== Authors: Mark Hill, Mark Debbage, Sean Wykes, Denis Nicole. The Southampton Portable Occam Compiler (SPOC) supports the Occam 2 programming language. The system generates ANSI-C code, implementing efficient portable concurrency running on a single target processor. Compiler features include support for multi-module programs and libraries, extensive compile- and run- time checks on array subscription, array ranges and conversions, optimized code generation for atomic code units and source-level debugging. SPOC allows Occam 2 programs to be developed, compiled and executed on any platform that supports an ANSI-standard C compiler. The vast proportion of the language is supported and the system has been successfully tested with several large applications. Current work consists of compiler validation using the INMOS Occam test suite and the inclusion of a configuration level for multi-processor execution. SPOC is available free of charge and may be of interest to computer manufacturers requiring portability between transputer and non-transputer systems, commercial developers having existing Occam codes for applications such as simulation, educational institutions wishing to teach the fundamentals of concurrent programming, the Occam 3 development group and anybody with an interest in either the Occam language or concurrent computation. The generation of ANSI-C code allows Occam programs to be run on platforms as diverse as PCs, workstations, message-passing multi-processors such as the CS2 and shared memory multi-processors such as the SICS DDM. The generated code is fully ANSI-compliant and should run under any ANSI-C compiler. No threads support is required from either the compiler or the operating system. Preliminary performance figures illustrates that a reasonable level of efficiency can be achieved even with processors with relatively high context switch times. In fact, results from the SuperSparc indicate that it can exceed the performance of T800 transputers even with highly concurrent code. There is still considerable scope for intermediate (source-source) and back-end (code-generation) optimization. The code generator alse includes support for type-checked interfaces to external C and Fortran 90 modules, as well as direct inlining of C code. The system has been developed with GNU gcc version 2.4.5 running under SunOs version 4.1.3 on a Sun iPC Sparc-based work-station. The source-level debugging support requires the GNU debugger and has been tested with gdb version 4.8. Currently the installation mechanism, the makefile and compilation scripts assume that the system is hosted by the Unix operating system. The development of SPOC has been supported by the European Commission Esprit Project GPMIMD P5404. The package is freely distributed via anonymous ftp from the University of Southampton: ftp ftp.ecs.soton.ac.uk: /pub/occam/spoc1.1 and from the Transputer and Parallel Computing Archives at the University of Kent: ftp unix.hensa.ac.uk: /pub/parallel/software/compilers/occam/spoc All queries should be directed to: Dr Denis A Nicole Department of Electronics and Computer Science University of Southampton Southampton SO9 5NH England Email: dan@ecs.soton.ac.uk