我正在读“围棋编程语言”一书,序言部分“围棋的起源”中的这句话让我感到困惑:
一个主要的影响来自尼克劳斯威尔斯的语言,从帕斯卡开始。Modula-2启发了包装的概念.Oberon消除了模块接口文件和模块实现文件之间的区别。Oberon-2影响包、导入和声明的语法,特别是方法声明。
和其他几个概念一样,我只是顺便指出Go没有这些概念,所以我四处看看,想了解一下这意味着什么。我在web上搜索了一下“模块接口与模块实现”,但是没有发现任何有希望的地方。我浏览了一下维基百科文章维基百科文章,但由于提到在Oberon中消除了这种区别,我一开始对这个资源并不抱太大希望。
在某种程度上,我理解模块--我已经读过“Go编程语言”的许多章节,并且以前在Python中做过一些傻事--但我不确定“模块接口文件”和“模块实现文件”意味着什么,或者在消除这种区别之前,代码是什么样子的。
有人能告诉我这个概念的背景,这样我才能更充分地理解这句话吗?
(我可以猜测--但这是完全的推测-也许在以前的语言(哪种语言?)中,模块的API必须与使其工作的实际代码分开声明,就像某些语言中的规则一样,在初始化变量之前必须声明变量。但我不喜欢在我真的不知道的时候发明细节。)
发布于 2019-02-08 07:12:12
据我所知,在大学里使用欧伯伦的日子已经很久了:是的,你说得很对。模块接口文件只不过是将模块的公开声明分离为外部文件,以鼓励对模块契约的推理,而不是对其实现的推理。
https://softwareengineering.stackexchange.com/questions/386847
复制相似问题