新闻
目录
计算机通常用于嵌入式、网络化、安全关键型应用程序。失败的代价很高。
在这节课中,我们介绍了自动的用于确保系统没有不良行为的工具。
我们首先简要介绍命题逻辑和一阶推理。
然后,我们继续建立一个设置,用于验证由一种程序注释指定其正确性的程序。在此设置中,程序的正确性降低到逻辑公式的有效性。新一代强大的推理引擎自动证明了该方法的有效性。
最后,我们将验证与静态分析方法联系起来,这些方法最初是在编译器优化中开发的,并由Patrick和Radhia Cousot的抽象解释框架进行了形式化。
验证问题示例。技术文档,例如Windows和Linux操作系统的设备驱动程序,包含指定特定操作和文件访问顺序的规则。违反此规则可能会导致系统崩溃、死锁、意外异常或运行时检查失败。我们可以将这些规则形式化,例如通过有限自动机。下面是一个小程序,我们想知道它是否遵守规则“调用锁和解锁必须交替”(试图重新获取已获取的锁或释放已释放的锁将导致死锁)。该规则可以通过程序旁边显示的自动机形式化(红色状态是自动机的接受状态,即自动机完全接受与不良行为对应的词)。程序正确吗?现在有一些工具可以自动回答这个问题。
|
示例(){1:做{锁定();旧=新;q=q->下一个;2:如果(q!=空){3:q->数据=新;解锁();新++; }4:}while(new!=old);5:解锁();回报;}
|
|
|
幻灯片
课堂幻灯片将在此处提供。
练习
如果你不想使用谷歌表格,你也可以通过电子邮件将你的排名发送至马提亚斯.
为了激发练习小组中的积极讨论,我们将以一种新的方式组织练习小组。主要的新颖之处在于,对于每个练习,由两名学生组成的团队将提出解决方案。
- 练习的答案既不会被纠正也不会被评分。
- 您只能在练习组中获得用于演示解决方案的练习点。
- 每个星期三,我们都会在这个网站上上传练习表。
- 直到星期四22:00,每个人都必须写一个发送电子邮件至Matthias并陈述他或她对在练习组中提出解决方案的兴趣。请在您的电子邮件中对每个练习进行评分,介于1(我希望其他人演示此练习)和10(我非常希望演示此练习。)。
- 我们将(如有必要,随机)为每个练习指派两名学生。
- 作业结果将于周五上午公布。
- 被分配到练习中的两名学生必须在周一的练习小组中协调并提出解决方案。
- 没有必要提出完美的解决方案,但我们希望您能够提出一种方法来找到我们可以一起讨论的解决方案。
- 我们希望每个人都积极参与解决方案的讨论。
考试
考试期间将有一场考试。参加考试的先决条件是积极参加练习。
文学类