BCPL

出自Local Chinese Wikipedia
跳至導覽 跳至搜尋

頁面Module:Infobox/styles.css沒有內容。

BCPL
腳本錯誤:沒有「InfoboxImage」這個模塊。
腳本錯誤:沒有「InfoboxImage」這個模塊。
編程範型過程式指令式結構化
設計者馬丁·理察德
釋出時間1967年,​腳本錯誤:沒有「TimeAgo」這個模塊。​(1967[1]
當前版本Template:Software version
型態系統無類型(所有東西都是
網站www.cl.cam.ac.uk/~mr10/BCPL.html
受影響於
CPL
影響語言
B(間接影響C),Go[2]

腳本錯誤:沒有「Check for unknown parameters」這個模塊。

基本組合編程語言Template:Langx),是一種電腦程式設計語言,源自更早的CPL語言,1967年由劍橋大學的馬丁·理察德所發展出來的[1]

概述[編輯]

Richards試着移除了CPL中最複雜的組成,第一支BCPL compiler在IBM 7094電腦中完成。身為早期程式語言的BCPL,如今已不再廣泛使用,但它的影響卻是深遠的,今日流行的C語言即是參考BCPL所設計[3]。BCPL被認定為第一個腳本錯誤:沒有「ilh」這個模塊。[4],作為BCPL後代語言,C語言使用花括號來表示塊結構。

範例[編輯]

下列是馬丁查理斯的BCPL發行中的範例。

打印階乘

GET "LIBHDR"

LET START() = VALOF $(
    FOR I = 1 TO 5 DO
        WRITEF("%N! = %I4*N", I, FACT(I))
    RESULTIS 0
$)
AND FACT(N) = N = 0 -> 1, N * FACT(N - 1)

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("%I2-QUEENS PROBLEM HAS %I5 SOLUTIONS*N", I, COUNT)
        ALL := 2 * ALL + 1
    $)
    RESULTIS 0
$)

引用[編輯]

  1. 1.0 1.1 腳本錯誤:沒有「citation/CS1」這個模塊。
  2. 腳本錯誤:沒有「citation/CS1」這個模塊。
  3. 腳本錯誤:沒有「citation/CS1」這個模塊。
  4. 腳本錯誤:沒有「citation/CS1」這個模塊。

參考文獻[編輯]

  • Martin Richards, The BCPL Reference Manual (Memorandum M-352, Project MAC, Cambridge, July, 1967)
  • Martin Richards, BCPL - a tool for compiler writing and systems programming (Proceedings of the Spring Joint Computer Conference, Vol 34, pp 557-566, 1969)
  • Martin Richards, Arthur Evans, Robert F. Mabee, The BCPL Reference Manual (MAC TR-141, Project MAC, Cambridge, 1974)
  • Martin Richards, C. Whitby-Strevens, BCPL, the language and its compiler (Cambridge University Press, 1980) ISBN 0-521-28681-6

package.lua第80行Lua錯誤:module 'Module:Navbar/configuration' not found