ALGOL W

ALGOL W,一种编程语言,为ALGOL家族的一份子。它基于尼克劳斯·维尔特东尼·霍尔IFIP Working Group 2.1提出的 ALGOL X草案而设计,希望能作为ALGOL 60的后继者[1]。经过小幅度的修改[2],在史丹福大学尼克劳斯·维尔特利用IBM System/360机器,以PL360实作出第一版的ALGOL W[3]

ALGOL W
多范型过程序, 指令式, 结构化
语言家族ALGOL
设计者Niklaus Wirth, Tony Hoare
1966年1966
型态系统静态, 强类型
作用域词法
实作语言PL360
系统平台IBM System/360
启发语言
ALGOL 60
影响语言
Pascal, Modula-2

它的编译器是用尼克劳斯·维尔特所设计的PL360组语所写成[4]

例子

下面例子展示ALGOL W的记录类型设施:

RECORD PERSON (
    STRING(20) NAME; 
    INTEGER AGE; 
    LOGICAL MALE; 
    REFERENCE(PERSON) FATHER, MOTHER, YOUNGESTOFFSPRING, ELDERSIBLING
);

REFERENCE(PERSON) PROCEDURE YOUNGESTUNCLE (REFERENCE(PERSON) R);
BEGIN
    REFERENCE(PERSON) P, M;
    P := YOUNGESTOFFSPRING(FATHER(FATHER(R)));
    WHILE (P ¬= NULL) AND (¬ MALE(P)) OR (P = FATHER(R)) DO
        P := ELDERSIBLING(P);
    M := YOUNGESTOFFSPRING(MOTHER(MOTHER(R)));
    WHILE (M ¬= NULL) AND (¬ MALE(M)) DO
        M := ELDERSIBLING(M);
    IF P = NULL THEN 
        M 
    ELSE IF M = NULL THEN 
        P 
    ELSE 
        IF AGE(P) < AGE(M) THEN P ELSE M
END

引用

  1. Niklaus Wirth & C. A. R Hoare (1966) A contribution to the development of ALGOL. Communications of the ACM, Vol.9, pp. 413–432
  2. Niklaus Wirth (1966), Additional notes on "A Contribution to the Development of ALGOL", ALGOL Bulletin, Number 24 pp. 13 - 17.
  3. Stanford Computer Science Department Technical Report CS-TR-68-89 页面存档备份,存于 (Various documents for Stanford University's 1972 implementation of ALGOL W; this report includes the ALGOL W Language Description.)
  4. (PDF). [2020-05-16]. (原始内容存档 (PDF)于2016-03-04).

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.