CPL(Combined Programming language,组合编程语言):CPL是一种在ALGOL60基础上更接近硬件的一种语言。CPL规模大,实现困难。
BCPL(Basic Combined Programming language,基本的组合编程语言):BCPL是对CPL进行简化后的一种语言。
这些都是在C语言出现之前的一些语言
BCPL由Martin Richards于60年代中期,也就是他正visit MIT的时候,设计
出来,并在70年代早期广泛的用于很多的项目当中,这些项目包括Oxford的OS6
操作系统,Xerox PARC的早期工作(seminal Alto work)。我们后来熟悉它,完
全是归功于MIT CTSS系统,Richards自己就是使用这个系统作Multics开发的。
早期的BCPL汇编器被移植到了Multics以及GE-635 GECOS系统上,这些工作是由
Rudd Canaday完成的,而Bell实验室则将它移植到了更多的其他系统上。还在
Multics在Bell实验室的最后的一段时间以及不久以后,它便成为了这群不久就
卷入了UNIX的人们的选择。
BCPL,B,C和Fortran以及Algol 60一样都属于过程性语言。相比之下,他们
面向系统程序设计,精小,很容易被描述,并且很容易被简单的编译器编译。
他们更加靠近机器本身,因为他们所引入的抽象很容易基于传统计算机系统所
提供的数据类型以及操作,同时他们依靠库例程进行基本的输入输出以及其他
和操作系统的交互。他们也使用库例程做一些其它的控制结构,比如协同过程,
过程结束等等。同时,他们的抽象都处于一个充分高的层次,在各个可以使用
的系统之间具有可移植性。