Increasingly, embedded software developers are choosing the GNU toolchain for open source development. The GNU toolchain contains an optimizing compiler targeting most embedded processors. The toolchain also supports programming in C, C++, assembly language, and compiler and linker extensions which are specifically designed to assist embedded programmers. Further, support for multiple target platforms makes porting code between processors simpler since developers can use the same tools on multiple platforms.