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

ALGOL W
编程范型多范型过程式, 指令式, 结构化
语言家族ALGOL
设计者Niklaus Wirth, Tony Hoare
发行时间1966年,​58年前​(1966
型态系统静态, 强类型
作用域词法
实作语言PL360
系统平台IBM System/360
启发语言
ALGOL 60, ALGOL X英语ALGOL X
影响语言
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. ^ PL360(REVISED) A PROGRAMMING LANGUAGE FOR THE IBM 360. (PDF). [2020-05-16]. (原始内容存档 (PDF)于2016-03-04). 

外部链接

编辑