标题几乎概括了要点。
我感兴趣的是,在使用动态语言时是否可以启用/禁用合同执行,而不会面临严重/未诊断失败的严重风险?
如果不是,那么关键似乎(对我来说)是任何强制执行都是组件逻辑的必需部分,而不是根据 DbC 强制执行的可移除性精神是可选/可移除的。
标题几乎概括了要点。
我感兴趣的是,在使用动态语言时是否可以启用/禁用合同执行,而不会面临严重/未诊断失败的严重风险?
如果不是,那么关键似乎(对我来说)是任何强制执行都是组件逻辑的必需部分,而不是根据 DbC 强制执行的可移除性精神是可选/可移除的。
这不仅是可能的,而且还有现实世界的实现,而且它们已经存在多年了。例如,这里有一个用于 Python的DbC 实现,它已有12 年历史。
我相信 lisp 具有良好的契约框架设计。
http://www.cl-user.net/asp/OkD82/sdataQkIGW7mlSHARDQ3r-H8X8yBX8yBXnMq=/sdataQu3F $sSHnB==