，一个程序如果有C语言库的支持，那么就可以用C语言；而另一部分为了达到比较高的运行效率，则可以用汇编语言编写。就目前的情况而言，很少有需要直接用汇编语言来编写的软件了，因为很多时候编译器生成的优化程序的运行效率已经很好了，更多的时候是用C/C++这样的编译语言来写核心需要速度的部分，用Perl、Python和Lua等这样的动态语言来做核心的扩展，例如界面，管理配置等等。这样既不会损失效率，也增加了程序的灵活性。较为复杂的软件，一般需要数十种甚至上百种的源代码的参与。为了降低种复杂度，必须引入一种可以描述