请输入您要查询的百科知识:

 

词条 BCPL
释义

简介

Basic Combined Programming Language(BCPL),是一种早期的高级语言。1967年由剑桥大学的Matin Richards在同样由剑桥大学开发的CPL语言上改进而来。BCPL最早被用做牛津大学的OS6操作系统上面的开发工具。后来通过美国贝尔实验室的改进和推广成为了UNIX上的常用开发语言。

BCPL有些类似于Fortran,也是典型的面向过程的高级语言。BCPL的语法更加靠近机器本身,适合于开发精巧,高要求的应用程序,同时对编译器的要求也不高。BCPL也是最早使用库函数封装基本输入输出的语言之一,这使得他跨平台的移植性很好。BCPL的代码用小写字母书写,有别于同时代的BASIC和PASCAL。BCPL对于字符串的支持很差,这种缺点一直延续到了他的后代中,BCPL的内存管理也很糟糕,不过幸好在他的后代中这个缺点被改掉了。BCPL程序从一个主函数中开始,功能模块可以添加在各个函数中,函数支持嵌套和递归。

BCPL本身并没有被使用太长时间,这是因为他的后代们实在太强大了。1970年,贝尔实验室的Ken Thompson在BCPL的基础上改进出了B语言,用于书写UNIX。这个名字取自BCPL中的第一个字母。B语言使用的时间更短,因为三年后的1973年同样是贝尔实验室的D.M.RITCHIE将B语言进一步改进,并且取了BCPL中的第二个字母将其命名为C语言。而C语言和C++则在日后成为了最流行的高级语言。

范例

下列是马丁查理斯的 BCPL distribution.

Printing factorials:

GET "libhdr"

LET start() = VALOF

{ FOR i = 1 TO 5 DO writef("fact(%n) = %i4*n", i, fact(i))

RESULTIS 0

}

AND fact(n) = n=0 -> 1, n*fact(n-1)

N个皇后问题:

N个皇后问题:

GET "libhdr"

GLOBAL { count:200; all:201 }

LET try(ld, row, rd) BE TEST row=all

THEN count := count + 1

ELSE { LET poss = all & ~(ld | row | rd)

UNTIL poss=0 DO

{ LET p = poss & -poss

poss := poss - p

try(ld+p << 1, row+p, rd+p >> 1)

}

}

LET start() = VALOF

{ all := 1

FOR i = 1 TO 12 DO

{ count := 0

try(0, 0, 0)

writef("Number of solutions to %i2-queens is %i5*n", i, count)

all := 2*all + 1

}

RESULTIS 0

}

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/1 23:47:45