Basic Combined Programming Language(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
  }

你可能感兴趣的:(unix,basic,语言,pascal,fortran,printing)