XC is a
programming language developed by XMOS to support
real-time,
embedded, and
parallel programming on the company's xcore processor architecture. It is designed to provide
deterministic execution and fine-grained
concurrency, enabling software-defined solutions for time-critical applications such as audio processing, industrial control, and communications. XC was introduced by XMOS in the late 2000s as part of its toolchain for programming xcore processors. It was designed to offer a high-level abstraction for expressing parallelism and hardware interaction, building on the principles of the
occam programming language and the
Communicating Sequential Processes (CSP) model developed by
Tony Hoare. Over time, XMOS has shifted its development tools toward standard
C and
C++ compilers, but XC remains a key part of the legacy toolchain and is still supported in the XTC Tools suite.
Design and Features XC combines elements of C with concurrency and communication constructs inspired by occam. Key features include: • Parallelism: Built-in support for concurrent tasks using the par construct. • Communication: Channel-based communication between tasks, enabling deterministic message passing. • Hardware Abstractions: Language-level primitives for interacting with hardware resources such as: • port for I/O • timer for precise timing • lock for mutual exclusion • Events: A mechanism unique to xcore that enables low-latency, interrupt-free signaling between hardware and software components. XC is supported by the XTC Tools ==References==