
_START_ARTICLE_
编程语言
_START_SECTION_
概论
_START_PARAGRAPH_
编程语言原本是被设计成专门使用在计算机上的，但它们也可以用来定义算法或者数据结构。正是因为如此，程序员才会试图使程序代码更容易阅读。_NEWLINE_编程语言往往使程序员能够比使用机器语言更准确地表达他们所想表达的目的。对那些从事计算机科学的人来说，懂得程序设计语言是十分重要的，因为在当今所有的计算都需要程序设计语言才能完成。_NEWLINE_当前发明了许多的编程语言，编程语言本身可能修改以符合新需求，或是和其他的编程语言结合使用，尽管人们多次试图创造可以符合所有需求的通用编程语言，但以“符合所有需求”的标准来看，这些尝试都失败了。之所以有那么多种不同的编程语言存在的原因是，编写程序的初衷其实也各不相同；新手与老手之间技术的差距非常小，而且有许多语言对新手来说太容易学；还有，不同程序之间的运行成本（runtime cost）各不相同。_NEWLINE_有许多用于特殊用途的语言，只在特殊情况下使用。例如，PHP专门用来显示网页；Perl更适合文本处理；C语言被广泛用于操作系统和编译器的开发（所谓的系统编程）。_NEWLINE_高级语言的出现使得计算机程序设计语言不再过度地依赖某种特定的机器或环境。这是因为高级语言在不同的平台上会被编译成不同的机器语言，而不是直接被机器执行。最早出现的编程语言FORTRAN的一个主要目标，就是实现平台独立。_NEWLINE_虽然大多数的语言既可被编译又可被解译，但大多数仅在一种情况下能够良好运行。在一些编程系统中，程序要经过几个阶段的编译，一般而言，后阶段的编译往往更接近机器语言。这种常用的使用技巧最早在1960年代末用于BCPL，编译程序先编译一个叫做“0代码”的转换程序（representation），然后再使用虚拟器转换到可以运行于机器上的真实代码。这种成功的技巧之后又用于Pascal和P-code，以及Smalltalk和二进制码，在很多时候，中间过渡的代码往往是解译，而不是编译的。_NEWLINE_如果所使用的翻译的机制是将所要翻译的程序代码作为一个整体翻译，并之后运行内部格式，那么这个翻译过程就被称为编译。因此，一个编译器是一个将人可阅读的程序文本（叫做源代码）作为输入的数据，然后输出可执行文件（object code）。所输出的可执行文件可以是机器语言，由计算机的中央处理器直接运行，或者是某种模拟器的二进制代码。_NEWLINE_如果程序代码是在运行时才即时翻译，那么这种翻译机制就被称作解释。经解释的程序运行速度往往比编译的程序慢，但往往更具灵活性，因为它们能够与执行环境互相作用。
_START_SECTION_
指令及流程控制
_START_PARAGRAPH_
一旦数据被确定，机器必须被告知如何对这些数据进行处理。较简单的指令可以使用关键字或定义好的语法结构来完成。不同的程序语言利用序列系统来获取或组合这些语句。除此之外，一个程序语言中的其他指令也可以用来控制处理的过程（例如分支、循环等）。
_START_SECTION_
引用机制和重用
_START_PARAGRAPH_
引用的中心思想是必须有一种间接设计储存空间的方法。最常见的方法是通过命名变量。根据不同的语言，进一步的引用可以包括指向其他储存空间的指针。还有一种类似的方法就是命名一组指令。大多数程序设计语言使用宏调用、过程调用或函数调用。使用这些代替的名字能让程序更灵活，并更具重用性。
_START_SECTION_
功能
_START_PARAGRAPH_
编程语言可透过机械、计算机来达成与完成人类需求的演算、功能与目的。
_START_SECTION_
实体的传输链接
_START_PARAGRAPH_
透过低级编程语言或高级编程语言，将实体间接达成传输链接或控制实体。
_START_SECTION_
应用程序的发展
_START_PARAGRAPH_
高级编程语言可发展多功能的应用程序软件，如：操作系统、工程计算机软件、转换软件、刻录软件、播放软件、网页设计…等。
_START_SECTION_
使用
_START_PARAGRAPH_
编程语言已超过上千种，大部分用在计算领域。_NEWLINE_编程语言和其他人类使用的语言在精准度和完整性上有很大的差异。_NEWLINE_人们在用自然语言沟通时，内容可以不明确，甚至小的错误，而听的人仍然可能理解说的人想要说的内容。但计算机不同，计算机“只做被告知要做的事”，无法理解编程者想要写的程序。语言的定义、编程以及编程输入的组合需完整定义程序运行时的外部特性。另一方面，算法的概念可以表示为伪代码，是交织有自然语言和代码的编程语言，和其他人沟通时使用，此时就不一定要那么精确。_NEWLINE_编程语言提供定义片段数据的结构化机制，以及在数据中需自动进行的运算或是转换。编程者利用编程语言提供的抽象化来表示计算的相关概念，这些概念则是由许多最简单元素（称为语言基元）的集合所组成。程序设计就是指利用语言基元来撰写新的程序，或是将旧程序改写，配合新的应用或是新的环境。_NEWLINE_计算机程序语言可能是以批处理任务的方式运行，中间不需和用户交互，也有可能是由用户在解释器中指定运行特定的的程序。若某一编程语言的是目的是在某一应用软件（如Unix shell）或其他命令行接口运行其他程序，此编程语言会称为脚本语言。
_START_SECTION_
历史
_START_PARAGRAPH_
1940年代当计算机刚刚问世的时候，程序员必须手动控制计算机。当时的计算机十分昂贵，唯一想到利用程序设计语言来解决问题的人是德国工程师康拉德·楚泽。_NEWLINE_几十年后，计算机的价格大幅度下跌，而计算机程序也越来越复杂。也就是说，开发时间已经远比运行时间宝贵。_NEWLINE_于是，新的集成、可视的开发环境越来越流行。它们减少了所付出的时间、金钱（以及脑细胞）。只要轻敲几个键，一整段代码就可以使用了。这也得益于可以重用的程序代码库。