新闻
- 7月25日:7月24日第16-17页的幻灯片中有一个错误,现已在未注释版本中更正。
- 7月24日:本周我们将交换讲座和教程。周二我们将进行一次总结。周三我们将继续,接下来是教程。
- 7月21日:我们确定了考试日期(见上文方框),并公布了最后一份练习表。
- 7月19日:在7月26日的最后一堂课中,我们将重述并回答问题。如果您已经有具体问题,请发送至基督教的.
- 7月18日:在本教程中,我们讨论了练习表11上练习3的解决方案,但由于时间限制,没有正确地得出结论。我们添加了练习部分中介绍的解决方案。
- 7月10日:我们添加了一些关于迹抽象/插值自动机的文献。
- 6月26日:练习表8已更新(例1和例3中的注释,例4中的拼写错误)。
- 6月2日:练习表6上的练习1现在只得1分。
- 5月25日:练习表5已定稿。
- 5月11日:我们从练习表3中删除了一个练习,因为讲座中没有讨论相应的理论。
- 5月11日:我们将演习排名的截止日期从周五下午7点改为周日晚上8点。此外,任务结果将在周一上午9点(而不是早上7点)公布。
- 5月5日:我们为练习表2添加了练习排名表,但有一些延迟。
- 5月3日:我们明确了考试录取要求。
- 4月29日:增加了练习单1的排名表。
- 4月28日:本周提交运动排名的截止日期延长至周日。
目录
计算机通常用于嵌入式、网络化、安全关键型应用程序。失败的代价很高。
在这节课中,我们介绍了自动的用于确保系统没有不良行为的工具。
我们首先简要介绍命题逻辑和一阶推理。
然后,我们继续建立一个设置,用于验证由一种程序注释指定其正确性的程序。在此设置中,程序的正确性降低到逻辑公式的有效性。新一代强大的推理引擎自动证明了该方法的有效性。
最后,我们将验证与静态分析方法联系起来,这些方法最初是在编译器优化中开发的,并由Patrick和Radhia Cousot的抽象解释框架进行了形式化。
验证问题示例。技术文档,例如Windows和Linux操作系统的设备驱动程序,包含指定特定操作和文件访问顺序的规则。违反此规则可能会导致系统崩溃、死锁、意外异常或运行时检查失败。我们可以将这些规则形式化,例如通过有限自动机。下面是一个小程序,我们想知道它是否遵守规则“调用锁和解锁必须交替”(试图重新获取已获取的锁或释放已释放的锁将导致死锁)。该规则可以通过程序旁边显示的自动机形式化(红色状态是自动机的接受状态,即自动机完全接受与不良行为对应的词)。程序正确吗?现在有一些工具可以自动回答这个问题。
|
示例(){1:做{锁定();旧=新;q=q->下一个;2:如果(q!=空){3:q->数据=新;解锁();新++; }4:}while(new!=old);5:解锁();回报;}
|
|
|
幻灯片
找到幻灯片在这里.
练习
如果你不想使用谷歌表格,你也可以通过电子邮件将你的排名发送至基督教的.
为了激发练习小组中的积极讨论,我们将以一种新的方式组织练习小组。主要的新颖之处在于,对于每个练习,由两名学生组成的团队将提出解决方案。
- 练习的答案既不会被纠正也不会被评分。
- 您只能在练习组中获得用于演示解决方案的练习点。
- 每个星期三,我们都会在这个网站上上传练习表。
- 此外,还有一个链接指向一个表格,在这个表格中,每个学生应该根据自己在下一个练习组中演示练习的意愿对每个练习进行排序。
- 在周日20:00之前,每个人都必须提交自己的排名。
- 周末,我们将(如有必要,随机)分配两名学生进行每项练习。
- 作业结果将于周一9:00前公布。
- 被分配进行练习的两名学生必须在周二的练习小组中协调并提出解决方案。
- 没有必要提出完美的解决方案,但我们希望您能够提出一种方法来找到我们可以一起讨论的解决方案。
- 我们希望每个人都积极参与解决方案的讨论。
考试
考试期间将进行口试。参加考试的先决条件是积极参加练习。A类足够的积极参与的标准是获得8个练习分数。
文学类