20. 设计模式

内核恐慌

「串台」故障的原因终于揭晓;吴涛的莫尔斯码 app 主意看来目前不可行;三封很长的读者反馈;主题是设计模式。两位主持人不约而同地病了,所以没有讲新闻。 节目中提及的读者 Haozhong Zhang 来信节选: 相对的,在 Formal Verification 中,举个例子,我们可以把每条指令的执行形式化表示成 {P}C{Q},其中 C 是这条指令,P 称为前条件 (Pre-condition) 描述了 C 执行之前机器的状态 (例如某个寄存器的值是什么,某个内存单元的值是什么,通常不需要覆盖所有的寄存器和内存单元,仅需要根据验证的 Specification 选取我们关心的部分), Q 称为后条件 (Post-condition) 描述了 C 执行后的机器状态。注意,这里 Q 同时描述 C 被中断和不被中断的执行后的机器状态。非形式化的,{P}C{Q} 表示在满足前条件 P 的机器上执行指令 C 得到的机器状态满足后条件 Q。这样,对于上述的一个代码片段 C1; C2; …; CN 我们有 {P1}C1{Q1},{P2}C2{Q2}, …, {PN}CN{QN}。然后,我们证明 Q1 ⇒ P2, …, QN-1 ⇒ PN, 从而可以证明 {P1}C1; C2; …; CN{QN}。 同样的,如果这个代码片段的 Specification 也可以写成,例如, {P}C1; C2; …; CN{Q}, 我们只需要再证明 P ⇒ P1 和 QN ⇒ Q, 即可以证明这个代码片段的确满足了给定的 Specification。因为这里的 P,Q,Pi, Qi 等描述了所有的可能情况,并且只需描述 Specification 关心的部分,所以这里的 Formal Verification 比测试更加完备和简洁。在实际工作中,我们往往会针对验证的程序的特点,设计特定的逻辑系统,以进一步的降低证明的难度和复杂度。 相关链接 * 读者 Wang Jian 发来的 TDD 实践视频:YouTube、优酷 * Design Patterns: Elements of Reusable Object-Oriented Software * 艾舍尔《天鹅》 * Erich Gamma * Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson * Hacker’s Delight * 《编程珠玑》 * 《建筑的永恒之道》 * Cocoa Design Patterns * C# Delegate/Event * Patrick Naughton * Python Pattern: “Borg” * God Object * Golden Hammer * The Lone Ranger 人物简介 * Rio:《IT 公论》主播,IPN 联合创始人,Apple4us 程序员。 * 吴涛:Type is Beautiful 程序员,《内核恐慌》主播。

131分钟
99+
10年前

12. 数学与编程

内核恐慌

特别嘉宾木遥与 Rio 和吴涛讨论了数学与编程之间的联系。话题包括但不限于:数学系的发展、统计学、数学与科学的关联、明尼苏达的天气、数学背景对于成为程序员的助益、Google 的工程师驱动特性、人们嘲讽新泽西的原因、养猫的经验、抽象几何学、Haskell、编程动手能力的来源、学习编程语言的意义、可视化编程、Lisp、FORTRAN、Go、C++、Swift、Optional、Google 的激励机制、欧洲的社会保障体制、技术变革带来的社会影响、中国政治坐标系测试、和食物替代饮料 Soylent。 相关链接 * 木遥在 Apple4us.com 的文章列表 * Quant (Quantitative analyst) * 贝叶斯定理 * 形式科学 * UCLA(加州大学洛杉矶分校) * Flyover States * 正交基 * Why your Cat Thinks You’re A Huge, Unpredictable Ape * Category Theory * Logo 语言 * Maker Movement * 木遥的 blog 文章:《学 C 编程记》 * John Backus * John McCarthy * Tweet: “guys i just invented the best programming language” * 木遥的 blog 文章:《形式证明:机器的光荣与人的梦想》 * Ken Thompson * Rob Pike * Option Type * Falling Into The Pit of Success * Clayton Christensen: Innovator’s Dillema * Eric Schmidt 的书 How Google Works * Xkcd 435 Purity * 中国政治坐标系测试 * 木遥的小说:《留学记》 * Soylent 人物简介 * Rio:《IT 公论》主播,IPN 联合创始人,Apple4us 程序员。 * 吴涛:Type is Beautiful 程序员,《内核恐慌》主播。 * 木遥:应用数学博士,Google 员工,Apple4us 成员。

153分钟
1k+
10年前
EarsOnMe

加入我们的 Discord

与播客爱好者一起交流

立即加入

扫描微信二维码

添加微信好友,获取更多播客资讯

微信二维码

播放列表

自动播放下一个

播放列表还是空的

去找些喜欢的节目添加进来吧