BCPL

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

}

相關詞條

相關搜尋

熱門詞條

聯絡我們