ALGOL六十
ALGOL 六十(源自 ALGOrithmic Language 一千九百六十的縮寫), 是一種程式的語言。伊是 ALGOL 語言家族仔內底的成員之一,以 ALGOL 五十八為基礎,佇一九六O年創建,其實官方後繼者是 ALGOL 六十八。Algol 六十引進了真濟新的概念如:塊結構、詞法作用域、遞歸、巴科斯-嗎而已的範式(BNF)等咧,佇咧程式語言設計佮發展的演化內底有真大的影響力。
歷史
一九六O年一月,艾倫 ・ 佩利佇巴黎舉行的有全世界一流軟體專家參加的討論會上,發表矣《算法的語言 Algol 六十報告》,確定矣程序設計語言 Algol 六十。艾茲爾 ・ 戴克斯特拉實現矣 Algol 六十語言的頭一个編譯器。一九六二年,艾倫 ・ 佩利閣對 Algol 六十進行矣修訂。
Algol 六十是程序設計語言發展的史上的一个紀念意義,影響著其後的 Simula、CPL、ALGOL W、BCPL、B、Pascal、C 等。伊標誌著程序設計語言成做一門獨立的科學學科,並為後來軟體自動化佮軟體會靠得的發展豐富的基礎。
標準
ALGOL 六十以及 COBOL,是第一个企圖標準化的程式語言。ALGOL 六十捌提出兩項 ISO 標準,但是這馬攏已經撤銷:
- ISO 一千五百三十八 : 一九八四年,程式語言 Algol 六十-已經撤銷。
- ISO TR 一千六百七十二 : 一九七七年,Algol 六十基本符號的硬體表示-已經撤銷。
性質
ALGOL 六十嘛佇官方的定義上無 I / O 設施;諸多實現以少有互相兼容的方式定義矣家己設施。
ALGOL 六十為參數傳達提供了兩種求值策略:共通的傳名調用,佮傳值調用。過程聲明為逐个形式參數指定使用其中佗一个:` value ` 指定傳值調用,預設著愛傳名來調用。對比傳引用調用,傳名調用有特殊效果。比如講,無指定參數為 ` value ` 抑是 ` reference `,就無可能開發出交換兩个參數的值的過程,存在著傳達入來的實際參數是一个整數變量佮以仝一个整數變量為索引的數組的情形。
傳名調用因為用來實現伊的趣味的 thunk,被真濟編譯器設計者知影。Donald Knuth 設計矣「查埔人抑是查埔囡仔咧測講」,來分編譯器敢有正確的實現「遞歸佮非局部引用」。 這个測試包含傳名調用的例。
保留字佮限制標識符
咧標準 Burroughs 大型系統子語言中有三十五个保留字:
咧標準 Burroughs 大型系統子語言中有七十一个限制標識符:
和所有固有函數的名。
標準運算符
例
下跤是語言報告中過程聲明的例:
遮的關鍵字寫法依賴佇咧實現,比如講將 ` integer ` 加引號寫為 `'INTEGER'`,這叫做索仔踅(stropping)。
實現時間線
到今 Algol 六十已經有矣至少七十个擴充、擴展、派生佮子語言。
參見
引用
外部連結
- Revised Report on the Algorithmic Language Algol 六十 by Peter Naur , et al . ALGOL definition
- A BNF syntax summary of ALGOL 六十
- " The Emperor's Old Clothes "–Hoare's 一千九百八十 ACM Turing Award speech , which discusses ALGOL history and his involvement
- MARST , a free Algol-to-C translator
- An Implementation of ALGOL 六十 for the FP 六千 Discussion of some implementation issues .
- Naur , Peter . The European Side of the Last Phase of the Development of ALGOL 六十 . ACM SIGPLAN Notices . August 一千九百七十八 ,十三( 八 ) : 十五–四十四 . S 二 CID 一千五百五十五鋪兩千四百七十九 . doi : 十 . 九十六交空一百十八分之一千一百四十五 . 八十五空八千三百七十 .
- Edinburgh University wrote compilers for Algol 六十 ( later updated for Algol 六十 M ) based on their Atlas Autocode compilers initially bootstrapped from the Atlas to the KDF ma九 . The Edinburgh compilers generated code for the ICL 一千九百 , the ICL 七十五分之四 ( an IBM 三百六十 clone ) , and the ICL 兩千九百 . Here is the BNF for Algol 六十網際網路檔案館的存檔,存檔日期兩千空二十五五五 . and the ICL 兩千九百 compiler source 網際網路檔案館的存檔,存檔日期兩千空二十五五五 . , library documentation 網際網路檔案館的存檔,存檔日期兩千空二十五五五 . , and a considerable test suite 網際網路檔案館的存檔,存檔日期兩千空二十五五五 . including Brian Wichmann's tests . 網際網路檔案館的存檔,存檔日期兩千空二十五五五 . Also there is a rather superficial Algol 六十 to Atlas Autocode source-level translator 網際網路檔案館的存檔,存檔日期兩千空二十五五五 . .
- Eric S . Raymond's Retrocomputing Museum , among others a link to the NASE Algol 鋪六十 interpreter written in C .
- The NASE interpreter
- Stories of the B 五千 and People Who Were There : a dedicated ALGOL computer [一] , [二]
- Hermann Bottenbruch . Structure and Use of ALGOL 六十 . 一千九百六十一 [二千空二十一孵四孵十] . doi : 十 . 四百空二五空四百九十五分之兩千一百七十二 .(原始內容存檔佇兩千空二十一抹四鋪二十四).
- NUMAL A Library of Numerical Procedures in ALGOL 六十 developed at The Stichting Centrum Wiskunde & Informatica ( legal successor of Stichting Mathematisch Centrum ) legal owner .
- Algol 六十 resources : translators , documentation , programs
- Algol 鋪六十 included in Racket .