KRoC
Encyclopedia
KRoC, the Kent Retargetable occam Compiler, is an occam implementation that is based on the INMOS
occam 2.1 compiler as a front-end and a retargetable back-end to produce machine code
for various microprocessor
s. Ports of the compiler have been made for PowerPC
, SPARC
, x86 and Alpha
processors.
Along with the translation to different processors, the KRoC team have modified the compiler significantly, creating a compiler for what has become known as occam v2.5, and now as occam-pi.
Originally the translation from the occam compiler front-end was by interpretation of the ASCII
assembly language file. This worked reasonably well but was slow and occasionally inconvenient.
The current KRoC compiler target is an Extended Transputer Code (ETC), which is then translated into the target machine language. ETC code can be viewed as a kind of byte code; it is a compact description of the compiler's intent on a Virtual Machine
that is similar to the transputer.
ETC-code variants of the KRoC compiler exist for Intel x86 on Linux
, x86 on Windows
using Cygwin
, and a SPARC port is in the works.
INMOS
Inmos Limited was a British semiconductor company, founded by Iann Barron, with both the head office and the design office at Aztec West in Bristol, it was incorporated in November 1978.- Products :...
occam 2.1 compiler as a front-end and a retargetable back-end to produce machine code
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...
for various microprocessor
Microprocessor
A microprocessor incorporates the functions of a computer's central processing unit on a single integrated circuit, or at most a few integrated circuits. It is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and...
s. Ports of the compiler have been made for PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
, SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....
, x86 and Alpha
DEC Alpha
Alpha, originally known as Alpha AXP, is a 64-bit reduced instruction set computer instruction set architecture developed by Digital Equipment Corporation , designed to replace the 32-bit VAX complex instruction set computer ISA and its implementations. Alpha was implemented in microprocessors...
processors.
Along with the translation to different processors, the KRoC team have modified the compiler significantly, creating a compiler for what has become known as occam v2.5, and now as occam-pi.
Originally the translation from the occam compiler front-end was by interpretation of the ASCII
ASCII
The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...
assembly language file. This worked reasonably well but was slow and occasionally inconvenient.
The current KRoC compiler target is an Extended Transputer Code (ETC), which is then translated into the target machine language. ETC code can be viewed as a kind of byte code; it is a compact description of the compiler's intent on a Virtual Machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...
that is similar to the transputer.
ETC-code variants of the KRoC compiler exist for Intel x86 on Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, x86 on Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
using Cygwin
Cygwin
Cygwin is a Unix-like environment and command-line interface for Microsoft Windows. Cygwin provides native integration of Windows-based applications, data, and other system resources with applications, software tools, and data of the Unix-like environment...
, and a SPARC port is in the works.