Redian新闻
>
program design : an alternative approach
avatar
p*o
2
抛除语义,数学定理的证明,就是一个符合逻辑语法的长句子。句子一端是已知布尔值
为1的公理,定理,或者引理。另一端是预期的结果:命题X 为 1。
软件的一端是已知可用的类库和资源。另一端是预期的结果。
连接这两端,用的也是逻辑规则或者说是形式化的逻辑语法。
解决这两种问题,绝大多数人都是在脑子里用搜索的办法。
软件的设计过程,和寻找数学定理的证明过程非常类似。找一张纸,架构师写出来计
划用的tool chain。另一张纸,应用支持工程师,写出来预期看到的软件的行为的描述。
连接这两张纸的,就是设计工作。一般情况下,搜索逻辑链条的难度不会超过中学数学
。理想计算机中,对一般的任务,中学生就可以找到很多可行的,连接两端的逻辑链条
。设计的难点在于在这些可行的逻辑链条中,找到真实可行的,甚至最优的。这需要对
实际的计算机的资源,以及各种其他不完美的行为有所了解。所以這種活動一般叫做設
計,而不叫尋找。
如何了解这个途径的软件设计办法的不同之处?最好的途径是练习写定理及其证明的程
序,或者符号计算的程序(这两者是一回事)。
假如一个读者看到这里,还没有疑问或者疑义。那麼應該可以同意,程序语言的设计過
程,和寻找数学定理的证明過程也是一样的。
可以写出来和本文同样的,以程序语
言的设计的另類approach為題的另一个短文。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。