ALGOL曾用于"主流"编程吗?

DVK*_*DVK 12 programming-languages algol

我知道ALGOL语言作为一种理论语言非常重要,并且根据维基百科也有各种各样的实现.

然而,目前尚不清楚的是,ALGOL(纯ALGOL,不是像Simula这样的衍生品)曾经以任何方式实际用于任何"真正的"编程吗?

通过"真实",我的意思是用于除编程语言/ CS研究之外的几个大型项目,或者用于大量开发人员(比如> 1000).

就个人而言,我曾经做过的唯一一个ALGOL编程就是纸上谈兵,因而是好奇心.

Nev*_*DNZ 10

Algol58似乎是重要应用方面最成功的.

来自维基百科:

JOVIAL是"Jules Own Version of the International Algorithmic Language"的首字母缩写."国际算法语言"是最初为ALGOL 58提出的名称.它是由Jules Schwartz于1959年为军用飞机电子设备组成软件而开发的.

然后:

使用JOVIAL的着名系统包括Milstar通信卫星,高级巡航导弹,B-52,B-1B, B-2轰炸机,C-130, C-141C-17 运输机,F-111, F-15,F-16(第50座之前)和F-117战斗机, LANTIRN,U-2飞机, E-3 Sentry AWACS飞机,海军宙斯盾巡洋舰,陆军多发射火箭系统(MLRS),陆军UH-60黑鹰直升机,F100, F117F119 喷气发动机,NORAD防空和控制系统(Hughes HME-5118ME系统)和RL-10 火箭发动机. 带有嵌入式JOVIAL软件的机载雷达系统包括APG-70,APG-71APG-73

出于同样的目的,ALGOL 68在DRA的一部分中使用.比照 维基百科:

''' 国防研究机构 ''(通常称为'''DRA''',是 1991年4月至1995年4月英国国防部(MOD)的执行机构.当时DRA是英国的最大的科学技术组织.

DRA的Algol68编译器最终于1999年4月开源,现在可以从linux 下载,从sourceforge 下载.(但是" Algol68g " 的翻译更容易使用).

ICL的Algol68是S3 - 它是由英国公司International Computers Limited(ICL)为其2900系列大型机开发的.它是一种基于ALGOL 68 的系统编程语言,但数据类型和运算符与2900系列提供的数据类型和运算符一致.它是操作系统VME的实现语言.

还有(至少)两个其他英国操作系统 - FlexCambridge_CAP_computer - 用Algol68变体编写.而且1苏联OS:Эльбрус-1(厄尔布鲁士-1) ,但我还没有找到任何他们的源代码.(如果有人可以找到并分发到这个源代码,请告诉我)

顺便说一句:我相信VME 仍在运行 - 在生产中 - 作为Linux/Unixware客户虚拟机.主要是在英联邦海关/移民服务.

在同一时期,苏联也在使用Algol68,参见历史链接.Algol68用于俄罗斯电话交换机.而Algol58则用于俄罗斯的" Buran /Буран "航天飞机着陆系统.

ALGOL68于1968年国际化.我怀疑其他国家还有其他Algol项目.esp用德语,荷兰语和日语,但我没有细节.

如果你想实际尝试Algol68和/或贡献你的代码,请查看Rosettacode的ALGOL 68存储库,然后作为一个类项目尝试其中一个" 未实现的任务 ".


小智 9

没有什么比回应2岁线程更好的了.我几乎每天都在ALGOL中编程.我是Unisys ClearPath大型机的程序员,大多数系统代码都是用ALGOL或变体编写的.Burroughs B5500实际上是围绕语言设计的,因此它是一种非常有效的语言/编译过程.当然,这个版本是ALGOL,有一些扩展,如有限的类(结构块)等.

i := 80;
while i > 0 do
   begin
   scan ptrRay:ptrRay for i:i until in ALPHA;
   scan ptrEnd:ptrRay for i:i while in ALPHA;
   if i > 0 then
      begin
      replace nextToken by ptrRay for (offset(ptrEnd) - offset(ptrRay)); 
      end;
   end;
Run Code Online (Sandbox Code Playgroud)

该代码仅扫描ALPHA令牌.它使用OFFSET函数,这比使用剩余计数数学(i,starti等)要贵一点;


小智 6

像Tom一样,我几乎每天都在ALGOL中编程 - 而且我也在使用Unisys Clearpath.ALGOL多年来一直是我偿还抵押贷款的主要来源,而不是我记得.


ZZ *_*der 5

当我开始编程时,Algol是唯一可用的编译器.是的,它是主流,直到我们得到一个Fortran编译器.


joe*_*ely 5

为了跟进他们的答案,整个Burroughs"大型系统"系列(5000,5500,5700,6500,6700 ......)的设计非常适合运行Algol.操作系统,编译器和主要系统实用程序都是用Algol编写的; 如果那不是"真正的"编程,那是什么?

确切地说,在产品系列的整个生命周期中,Burroughs将Algol扩展为一个名为ESPOL的超集.当Burroughs推出"小系统"系列(1700,1800,1900系列)时,他们定义了另一种类似Algol的语言,称为SDL(系统开发语言),其中编写了该系列的操作软件.出于安全原因,限制访问SDL.随后创建了一个SDL变体,其中删除了一些"priveleged"功能.生成的语言称为UPL(用户编程语言),可供客户使用.

我们中的一些人还记得使用"Algol-like language"这个短语来描述任何具有面向块的控制结构和变量范围的编程语言.类似Algol的语言的广为人知的例子包括PL/I,Pascal和(......等待......)C.