指软件开发人员用来创建，调试，维护，或以其他方式支持的软件程序或应用程序的形式。软件由一种或多种编程语言所写成。现在存在有很多种编程语言，并且每种都具有至少一种编写的方式，其中包括它自己的一套编程工具。这些工具包含相对独立自足的程序，如编译器，调试器，直译器，链接器和文本编辑器，可以结合共同完成一个任务，很像一个人可以使用多个手握工具来固定一个物理对象。这套工具也有可能是一个集成开发环境（IDE ） ，它结合了许多这种工具或它们的全部功能。无论是通过调用程序员等有关人士的工具，或通过以一种新的方式重新实现它