baa*_*der 34
虽然我不知道ATXMega,但是像新款Arduinos上使用的ATmega328这样的8位AVR芯片使用的是AVR-GCC编译器.这允许将C甚至C++编译为AVR芯片.AVR-GCC之上的一个级别是AVR Libc,这是一个C库,它使AVR的编程成为更高级别的任务(不再需要直接引用寄存器,等等).
Arduino IDE在后端使用AVR-GCC和AVR libc库.此外,Arduino IDE还提供其他库,就像一个很好的串行接口.
最后,Arduino带有一个刻录在AVR芯片上的引导加载程序.引导加载程序简单地使用串行连接(来自USB)而不是In-Sytem编程器或开发板来编程AVR成为可能.
足够的背景故事,回答你的问题:Arduino可以用C甚至C++编程.可用的库是用C语言编写的,一切都将使用AVR-GCC编译.甚至不需要Arduino IDE.
编辑
在这个主题中似乎有相当多的兴趣.我写了一篇博文,试图提供有关AVR,Arduino和AVR-GCC的更多深入细节.