Movatterモバイル変換


[0]ホーム

URL:


跳转到内容
维基百科自由的百科全书
搜索

ALGOL 58

维基百科,自由的百科全书
ALGOL 58
编程范型过程式,指令式,结构化
設計者Friedrich L. Bauer英语Friedrich L. Bauer,Hermann Bottenbruch英语Hermann Bottenbruch,Heinz Rutishauser英语Heinz Rutishauser,Klaus Samelson英语Klaus Samelson,約翰·巴科斯,Charles Katz英语Charles Katz,艾伦·佩利,Joseph Henry Wegstein英语Joseph Henry Wegstein
发行时间1958年,​67年前​(1958
受影响于
FORTRAN, IT,Plankalkül[1],Superplan英语Superplan, Sequentielle Formelübersetzung
影響語言
ALGOL 60,以及类ALGOL语言

ALGOL 58(源自英語:ALGOrithmicLanguage 1958的縮寫),最早稱為国际代数语言(英語:InternationalAlgebraicLanguage,縮寫為IAL)[2],一種程式語言,是ALGOL家族的第一個成員。它在1958年問世,ALGOL 60即是它的基礎上開發而成。

ALGOL 58介入了复合语句的基础概念[3],但只局限于控制流程,它没有以ALGOL 60中的那种方式,结合上标识符作用域

歷史

[编辑]

1958年,ACM小组和以当时联邦德国的应用数学和力学协会英语Gesellschaft für Angewandte Mathematik und Mechanik(GAMM),在苏黎世把他们关于算法表示法的建议综合为一从而形成IAL(国际代数语言)[4],后来改称ALGOL 58。

ALGOL 58变体时间线

[编辑]
名称作者国家描述目标CPU
ZMMD实现1958Friedrich L. Bauer英语Friedrich L. Bauer,Heinz Rutishauser英语Heinz Rutishauser,Klaus Samelson英语Klaus Samelson,Hermann Bottenbruch英语Hermann Bottenbruch 德国ZMMD是ZürichMünchenMainzDarmstadt的缩写Z22英语Z22 (computer)
NELIAC英语NELIAC1958海军电子实验室英语Navy Electronics Laboratory 美国AN/USQ-17英语AN/USQ-17
JOVIAL1960Jules Schwartz英语Jules Schwartz 美国DODHOL,先于Ada多种
BALGOL英语BALGOL1960Joel Merner等人 美国Burroughs公司英语Burroughs Corporation B220
MAD英语MAD (programming language)1960密西根大学 美国IBM 7090/7094主机,接着在1960年代中期移植到Univac 1108英语Univac 1108
ALGO英语ALGO1961Bendix公司英语Bendix Corporation 美国Bendix G-15英语Bendix G-15
ALGOL 30英语Dartmouth ALGOL 301962达特茅斯学院Thomas Eugene Kurtz英语Thomas Eugene Kurtz等人 美国后来演进成ALGOL 60LGP-30英语LGP-30
SUBALGOL1962斯坦福大学Bob Braden英语Bob Braden,Lawrence M. Breed英语Lawrence M. BreedRoger Moore英语Roger Moore (computer scientist) 美国BALGOL扩展IBM 7090

例子代码

[编辑]

下面是语言报告中的例子代码,采用辛普森积分法计算函数F(x)的积分,函数F(x)的值由假定存在的函数例程提供:

procedure Simps(F(), a, b, delta, V);comment a, b are the min and max, resp. of the points def. interval of integ.        F() is the function to integrated.        delta is the permissible difference between two successive Simpson sums.        V is greater than maximum absolute value of F on a, b;beginSimps:  Ibar := V×(b-a)        n    := 1        h    := (b-a)/2        J    := h×(F(a)+F(b))J1:     S    := 0;for   k    := 1 (1) n        S    := S+F(a+(2×k-1)×h)        I    := J+4×h×Sif    (delta < abs(I-Ibar))begin   Ibar := I        J    := (I+J)/4        n    := 2×n; h := h/2go to J1end        Simps := I/3returninteger (k, n)end   Simps

这里的非实数类型声明放在了过程的末尾。原文中的斜体显示改为了粗体,下面再将其调整为ALGOL 60开创的缩进格局:

procedure Simps(F(), a, b, delta, V);comment a, b are the min and max, resp. of the points def. interval of integ.    F() is the function to integrated.    delta is the permissible difference between two successive Simpson sums.    V is greater than maximum absolute value of F on a, b;beginSimps:    Ibar := V×(b-a)    n := 1    h := (b-a)/2    J := h×(F(a)+F(b))J1: S := 0;for k := 1 (1) n        S := S+F(a+(2×k-1)×h)    I := J+4×h×Sif (delta < abs(I-Ibar))begin        Ibar := I        J := (I+J)/4        n := 2×n; h := h/2go to J1end    Simps := I/3returninteger (k, n)end Simps

引用

[编辑]
  1. ^Rojas, Raúl; Hashagen, Ulf.The First Computers: History and Architectures. MIT Press. 2002: 292 [October 25, 2013].ISBN 978-0262681377. (原始内容存档于2020-08-04). 
  2. ^Perlis, A.J. Talk on Computing in the fifties. ACM National Conference. Nashville,. TN. (Transcript in J. A. N. Lee (ed.), Computer Pioneers, IEEE Computer Society Press, Los Alamito, CA, 1995, 545-556). 1981. 
  3. ^Perlis, A. J.; Samelson, K.Preliminary report: international algebraic language(PDF). Communications of the ACM (New York, NY, USA: ACM). 1958,1 (12): 8–22 [2023-02-20].doi:10.1145/377924.594925. (原始内容存档(PDF)于2023-02-20).Strings of one or more statements may be combined into a single (compound) statement by enclosing them within the "statement parentheses"begin andend. Single statements are separated by the statement separator ";". 
  4. ^Perlis, A.J.; Samelson, K. Preliminary report: international algebraic language. Communications of the ACM. 1958,1 (12): 8–22.doi:10.1145/377924.594925. 

外部連結

[编辑]
检索自“https://zh.wikipedia.org/w/index.php?title=ALGOL_58&oldid=85085089
分类:​
隐藏分类:​

[8]ページ先頭

©2009-2025 Movatter.jp