类型安全的更新编程
1. 引言
在编程活动中,很大一部分时间都花在了根据需求变化更新程序上。更新程序的方式对这一过程的可靠性、效率和成本有着重大影响。
传统上,人们常用文本编辑器来修改程序,但这种方式会引发诸多问题。例如,对一个原本正确的程序进行一些小修改后,程序可能会出现语法和类型错误。更糟糕的是,不一致的修改可能会引入逻辑错误,这些错误可能长时间隐藏在程序中不被发现。这是因为文本编辑器呈现的是程序的字符序列这种底层视图,其操作基本只是改变文本表示中的字符。
另一种思路是将程序视为抽象数据类型(ADT)的元素,将程序更改视为对程序ADT的明确定义操作。结合一组组合器,这些基本更新操作可用于编写任意复杂的更新程序。更新程序能避免某些逻辑错误,比如因“忘记”更改表达式的某些出现而导致的错误。使用像awk或perl这样的面向字符串的工具来进行程序更新很困难,因为识别程序结构通常需要解析,而且这些工具不了解要转换的程序语言,无法正确处理变量,因为这需要了解语言的作用域规则。
相比之下,ADT方法有一个很有前景的优势:可以通过有效可检查的标准来确保更新程序能保留所应用对象程序的属性,例如类型正确性。即使编译器能检测到类型错误,但类型安全的更新程序能更好地记录所执行的更改。而在编译器报告错误后对程序进行多次纠正性更新,这些更新会隐藏在最终更改后的程序中。
通用更新可以收集到库中,便于更新的重用,并可作为可执行软件维护知识的存储库。而使用文本编辑器时,每次更新都需单独进行。更新程序的安全性在此显示出重要优势:文本编辑器方法可能会反复出现相同或不同的错误,而满足安全标准的更新程序能确保所有适用对象程序的正确性,即更新的正确性一旦确立就一劳永逸。常见的更新
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



