XC语言

在计算机编程中，XC是一种用于实时嵌入式并行处理器的编程语言，运行目标是的XCore处理器架构。

XC是指令式语言，基于了occam语言的并行和通信特征，和C语言的语法和顺序特征。它提供的根本特征对应于现有架构的各种资源，比如通道、锁和定时器。

在结合于XCore处理器时，XC被用来建造具有低层I/O、实时性能和通常现场可编程逻辑门阵列（FPGA）或专用集成电路（ASIC）设备特有的计算能力的嵌入式系统。

架构模型
XC程序在一组XCore瓦片（tile）上执行。每个瓦片包含一个或多个处理核心和在核心间共享的资源，包括I/O和内存。所有瓦片都通过通信网络连接，允许任何瓦片相互之间的通信。给定的目标系统在编译期间由编译器规定，它确保能获得充足数量的瓦片、核心和资源来执行编译好的程序。

例子程序

多核Hello World
#include <stdio.h>
#include <platform.h>

void hello(int id, chanend cin, chanend cout){
  if (id > 0) cin :> int;
  printf("Hello from core %d!", id);
  if (id < 3) cout <: 1;
}

int main(void) {
  chan c[3];
  par (int i=0; i<4; i++)
    on tile[i] : hello(i, c[i], c[(i+1)%4]);
  return 0;
}

历史影响
XC的设计受到occam编程语言的严重影响，occam首先介入了通道通信、轮选、端口和定时器。Occam是开发的并建立在通信顺序进程（CSP）之上，CSP是Tony Hoare开发的进程代数系统。

参见
 occam
 C语言
 通信顺序进程
 Handel-C

引用

延伸阅读
 The XMOS programming guide (HTML, PDF)
 The XC Specification (HTML, PDF)

外部链接
 XMOS website 
 Official XMOS community 
 XCore open source project on Github 
 An Introduction to XMOS' XC language 

并发编程语言
C语言家族