Modula-2

✍ dations ◷ 2025-12-05 08:23:06 #Modula编程语言家族,ISO标准化编程语言,静态类型编程语言,系统编程语言

Modula-2是由图灵奖获得者尼克劳斯·维尔特(Niklaus Wirth)所提出的一个编程语言。Modula-2之名是根据其3个编译单元的模块而来,这些模块分别为程序模块(Program Module),定义模块(Definition Module)及运行模块(Implementation Module)。

Wirth根据其早期对Pascal、模块编程语言(Modula)或称为Modula-1编程语言及Alto电脑的经验来定义Modula-2。在1976至1977年间,Wirth在Xerox Palo Alto研究中心与一群设计Alto电脑的工作伙伴一同工作,次年,他开始一个在瑞士联邦理工学院信息研究所的Lilith个人电脑项目。该项目主要的原则乃是以Modula-2为Lilith的系统编程语言,而以Lilith为Modula-2的组织架构。由于不需汇编器(Assembler),该语言不仅适用于编写高端的应用程序,也应适用于编写低端,与机器相关的编码程序(Machine-Dependent Coding),用设备的操控与存储体的配置。

该语言本身与Lilith结构之设计,都以优雅及简单为原则,在整个Lilith项目的生命期中(1978-1988),操作系统、绘图套装软件、数据库系统、网络协议、文件服务器及许多其他系统和应用模块都是借着Modula-2发展出来的。

Modula-2设计是让其程序模块得以重复使用(Reuse)。它借着提供一些标准程序库,如异常处置(Exception Handling)、字符串处理(String Processing)、输入/输出(I/O)及并发程序设计(Concurrent Programming)等来降低语言本身的复杂度。

一个Modula-2的定义模块(Definition Module)定义抽象化数据(Data Abstraction)的接口规格。一个定义模块是与其相对应的实现模块(Implementation Module)个别分开来编译。一旦编译好就不必再改变。一个定义模块(Definition Module)包含对常量、类型(Type)、变量及程序标头的宣告。只有那些可能会被其他程序员引用到的程序标头才会被宣告在定义模块内。那些相对应的运行模块包括区域性的常量、类型、变量宣告;以及外部程序和内部实现所需用到的程序定义。

程序是由上而下(Top-Down)的方式发展,其步骤乃是先创建若干定义模块,之后再随着需要创建实现模块的部分。每一个实现模块可在其被调用前对其区域性的数据结构设置初始值。Modula-2也需侦测在实现模块内的数据是否已过时而导致数据的不一致。

Modula-2编程语言有几项特色使其在计算机科学的发展过程中有着功不可没的功劳。首先,它所提出的计算机体系结构、语言和作业环境的集成概念是一项创举;其次,它强调程序员在用户界面的设计上,至少需花费用同实现程序设计时所耗费的成本和努力。最后,它提出对抽象化数据的简化。

本条目部分或全部内容出自以GFDL授权发布的《自由在线电脑词典》(FOLDOC)。

相关

  • 腕骨对具有四肢的动物来说,腕骨是指上肢的多块小骨,以人类而言,腕骨位于桡骨、尺骨和掌骨之间,形成手腕的部分。对马、牛等动物,形成前腿膝的部分。人类的腕骨有8块,接近前臂的四块为
  • 舌骨舌骨(hyoid bone)是舌中的骨头。是中轴骨中较独特的部分, 它不与其他任何骨形成关节。而以韧带及肌肉悬挂在颞骨的茎突。舌骨位于颈部, 在下颔骨与喉之间支持舌头, 并当作某
  • 砂糖糖(sugar)泛指各种可食用的带有甜味的晶体,有甜味、短链、可溶于水的有机化合物,许多会用在食品。糖在有机化学中属于糖类,由碳、氢及氧三种原子组成。单糖是结构较简单的糖,包括
  • 攀鲈亚目攀鲈亚目为辐鳍鱼纲攀鲈目的其中一个亚目。攀鲈亚目下分3科:
  • 约韦里·卡古塔·穆塞韦尼约韦里·卡古塔·穆塞韦尼(斯瓦希里语:Yoweri Kaguta Museveni,1944年8月15日-),乌干达政治人物,独裁者,终身总统。穆塞韦尼曾参与推翻当时总统伊迪·阿敏(1971-1979年)的战争,以及导致
  • 茶食茶食,又称茶点、茶配,是喝茶时佐以食用的糖果、糕饼、凉果、蜜饯等点心、小吃、零食的总称。一般专指以饮茶品茗为主时佐食之物,亦常在茶仪式中出现。中国人的茶食多种多样,糕饼
  • 东柴东柴郡(Cheshire East)是英国柴郡的一个单一管理区和自治市镇,当地政府是东柴郡议会。2009年4月1日随着英国兰当地政府结构改革而成立。根据2011年英国人口普查,东柴郡有370,127
  • 新干县新.mw-parser-output ruby.zy{text-align:justify;text-justify:none}.mw-parser-output ruby.zy>rp{user-select:none}.mw-parser-output ruby.zy>rt{font-feature-setting
  • 阿齐兹·桑贾尔阿齐兹·桑贾尔(土耳其语:Aziz Sançar,1946年9月8日-),土耳其人,具有土耳其美国双重国籍。生物化学家和分子生物学家,专门从事DNA修复、细胞周期检查点、生物钟方面的研究。他是土
  • 卡尔滕山 (韦尔瓦尔阿尔卑斯山脉)坐标:47°5′14″N 10°8′14″E / 47.08722°N 10.13722°E / 47.08722; 10.13722卡尔滕山(德语:Kaltenberg),是奥地利的山峰,位于该国西部,处于蒂罗尔州和福拉尔贝格州接壤的边界