- Why Register?
- Download development tools
- Create and track support tickets
- Subscribe to resource updates
- Access latest developer news
XC Language
The XC concurrent programming language extends the programming capabilities of the C language. Along with the sequential capabilities of C, XC provides explicit control of concurrency, communication, timing and input-output. It supports deterministic concurrent programming; compile-time checks eliminate race-conditions.
XC supports event-driven programming, with concurrent program components becoming active only when needed. Control of non-deterministic events is made easy by the use of guards to control communication, input-ouput and access to shared state.
The language-based concurrency programming features of XC enable compilers to carry out many optimizations, increasing processing and data throughput and minimizing latency when handling events.
XC provides robust error containment. Errors are checked by a combination of compiler and run-time checks. Run-time errors cause the failed program component to stop immediately, preventing further errors within the failed component and preventing propagation of incorrect behavior or data to other components.
The XMOS Development Tools along with one or more XCores support deterministic real-time programming. Accurate timing of critical paths through programs guarantee that deadlines are met, enabling XC programs to behave as predictably as hardware.
The tools enable XC to be combined with C and C++, include standard tools such as GDB and tools to load programs onto multiple XCores.
XC Language Features
Compatibility: Programs can be written using combination of C, C++ and XC.
Efficient: Constructs compile into short instruction sequences.
Safe: Constructs are free from many sources of deadlock, race conditions and memory violations.
Easy to use: Extensions map directly onto XCore hardware resources such as threads, channels and ports.
