NELIAC(Navy Electronics Laboratory International ALGOL Compiler)是1958年由海军电子实验室开发的ALGOL 58编程语言的方言和编译器实现。
它是为数字和逻辑计算而设计的,并且是提供bootstrap实现的第一种语言。
NELIAC的起源NELIAC是Harry Huskey的创造者 - 当时是ACM的主席和着名的计算机科学家,并由NEL计算中心负责人Maury Halstead提供支持。 最早的版本是在实验室的原型USQ-17计算机(称为“伯爵夫人”)上实施的。 它是世界上第一个自编译编译器。 这意味着编译器首先以汇编语言“bootstrap”以简化形式编码,然后用自己的语言重新编写,由“bootstrap”编译器编译,然后自行重新编译,使“bootstrap”过时。
它被称为ALGOL 58的变体,因为与该语言相似,但不久之后,ALGOL委员会制作了其他版本的ALGOL,而NELIAC和ALGOL分道扬ways1。
NELIAC的使用编译器在Countess上用于为CDC 1604生成一个版本,然后在该机器上进行自编译。许多其他版本是针对商用计算机产品生产的,如UNIVAC 1107,UNIVAC 490和UNIVAC 418,包括IBM 704和709的版本。NELIAC的生产版本是第二代系统(USQ-20是现代化和军事化版本, USQ-17)由第一版编译,但包括对算法表达式的全面解码,以及后来在所有其他版本上缺少的输入输出系统。
反编译器是一个好奇心。第一个版本在Countess上运行,但后来移植到CDC 1604和其他计算机,并在大学圈子中收到了一些通知。但是,事实证明,当时很少有可用于反编译的程序。
NELIAC从未打算成为商业产品。与其他编译器相比,它的主要优势在于它可移植到其他计算机及其一次通过架构,因此可以实现如此快速的编译时间,编译速度比其他高级语言快60至120倍。例如,JOVIAL编译器有14遍。语言的简单性和编译速度非常快,比其他同时期编译器的开发周期快得多。这是内部NEL努力为计算机系统开发问题提供更具成本效益的解决方案。
NELIAC被用于实施一个实验性反潜舰艇系统,并且还被用于开发国家紧急指挥后备役(NECPA)项目,该项目开发了安装在航空母舰和巡洋舰上的战略指挥和控制系统。也许最成功的NELIAC应用是对美国海军自动化高频测向网络(Classic Bullseye)的控制,该网络于1968年投入生产并持续到90年代初。
此外,NEL开发了NELOS,一种为磁带,打印机和电信设备提供输入输出的批处理操作系统,提供了作业的顺序编译,以及一个允许链接超大型计算机应用程序并在线执行的符号库。其中包括信息管理程序套件,其中包括数据库,带有IBM GIS前体的自由形式查询以及报告应用程序。 NECPA和NELOS于1966年出海。
NELIAC的结局NELIAC程序并不便携,因为该语言允许操作与字长相关的二进制字符。 另外,NELIAC语言没有输入输出方案。 而且,它的循环语句非常严格,因为索引变量必须精确地达到最终值,否则会出现无限循环。 这些都是NELIAC的“致命弱点”。
许多其他着名计算机专家如Niklaus Wirth为该项目做出了贡献,但最终NELIAC在海军部门对商业支持的编译器进行了标准化后失宠了。
本词条内容贡献者为:
李岳阳 - 副教授 - 江南大学