程序设计语言理论 计算机科学与技术学院 陈意云,

Slides:



Advertisements
Similar presentations
我们首先引入的计算概率的数学模型, 是在概率论的发展过程中最早出现的研究 对象,通常称为 古典概型.
Advertisements

专题复习 --- 走进名著 亲近经典 读完《鲁滨孙漂流记》这本精彩的小说 后,一个高大的形象时时浮现在我的眼 前,他就是勇敢的探险家、航海家鲁滨 孙。他凭着顽强的毅力,永不放弃的精 神,实现了自己航海的梦想。 我仿佛看到轮船甲板上站着这样的一 个人:他放弃了富裕而又舒适的生活, 厌恶那庸庸碌碌的人生,从而开始了一.
四、后期物理复习备考建议 不同阶段复习课教学设计(知识建构)的目的 复习课教学 设计的目的 理 解 · 对某知识的全面、抽 象理解 · 抽象知识和具体情景 的转化 综 合 · 多知识点联合解决问 题 基本素质 · 审题、表达、审视答 案等基本能力 复习 ( 一 ) 复习(二) ☆ ☆☆☆ ☆☆  进行科学规划.
2016/9/41 12 年國教 入學方案宣導資料. 2016/9/42 安全快樂 健康發展 活力多元 創意發展 適性揚才 特色發展 務實致用 卓越發展 學前教育 國中小教育 高級中等教育 大專以上教育 教育促進個人向上發展教育促進個人向上發展 教育是國家最有利的投資教育是國家最有利的投資.
國中教育會考說明 年 5 月 14 日(六) 105 年 5 月 15 日(日)  08:20- 08:30 考試說明  08:20- 08:30 考試說明  08:30-  09:40 社 會  08:30-  09:40 自 然 09:40- 10:20 休息 09:40-
第十課 人類的感官.
XX啤酒营销及广告策略.
說 劍 《莊子‧雜篇》─ 第 一 組 賴泊錞 謝孟儒 張維真 羅苡芸
德 国 鼓 励 生 育 的 宣 传 画.
专题培训 企业所得税汇算清缴 (2015年度).
第四章:长期股权投资 长期股权投资效果 1、控制:50%以上 有权决定对方财务和经营.
知识聚焦 光合作用 呼吸作用 条件 场所 原料 产物 物质变化 能量变化 有光无光都可以 需要光 主要是线粒体 叶绿体 二氧化碳、水
控制方长投下的子公司,需要编制合并报表的演示思路
高端楼盘工程招(议) 标管理方案 成本管理中心
苏教版小学语文 二年级下册(五~八)单元教材分析
人民版必修三专题三复习 近代中国 思想解放的潮流 灵石中学 易吉华.
8 企业信息管理的定量分析 第八讲 企业信息管理的定量分析 8.1 企业信息化水平的测评 8.2 企业信息管理绩效的测评.
判断推理,必须学会这些 主讲老师:小胡胡 2016年3月25日20:00 YY频道:
《管理会计》第六章.
《成人健康护理学》的 教学组织与实施 何平先.
江苏省2008年普通高校 招生录取办法 常熟理工学院学生处
N3(個案報告)=N1(文獻查證)+N2(護理過程) A4紙電腦打字,每頁600字(24*25),雙行距14頁,10000 字為準。
“淡雅浓香 中国风尚” 山东低度浓香白酒整合传播侧记
十二年國民基本教育 年度中投區免試入學 超額比序與志願選填宣導說明
9 有理数的乘方.
不会宽容人的人, 是不配受到别人的宽容的。 贝尔奈.
复习回顾 a a×a a×a×a a a×a×a= a×a= 1.如图,边长为a厘米的正方形的面积 为 平方厘米。
缤纷灿烂针织物.
5.5可行性分析 可行性分析的概念 策略可行性分析 操作可行性分析 回报可行性分析.
互斥事件有一发生的概率 瑞四中 林光明.
巧用叠词,妙趣横生.
§3 全称量词与存在量词 3.1 全称量词与全称命题 3.2 存在量词与特称命题 3.3 全称命题与特称命题的否定.
忠孝國小自立午餐老師的叮嚀 教師指導手冊.
长城国际酒店式公寓营销策划报告
跳楼价 亏本大甩卖 清仓处理 买一送一 5折酬宾. 跳楼价 亏本大甩卖 清仓处理 买一送一 5折酬宾.
复 习 纲 要.
104年振聲國中 志願選填個別序位 說明會 104年06月08日 輔導室關心您.
清仓处理 跳楼价 满200返160 5折酬宾.
第二讲 环境污染及其防治、环境管理.
二综防火设计分析.
常用逻辑用语复习.
常用逻辑语.
函数式编程语言、编程和程序验证 计算机科学与技术学院 陈意云
3.1.2 概率的意义.
第四章 时间序列的分析 本章教学目的:①了解从数量方面研究社会经济现象发展变化过程和发展趋势是统计分析的一种重要方法;②掌握时间数列编制的基本要求;③理解和掌握水平速度两方面指标的计算及运用④理解和掌握长期趋势分析和预测的方法。 本章教学重点:现象发展的水平指标和速度指标。 本章教学难点:现象变动的趋势分析。
“08高考化学学业水平(必修科目)测试的命题和教学对策研究”
北师大版七年级数学 5.5 应用一元一次方程 ——“希望工程”义演 枣庄市第三十四中学 曹馨.
新员工职业化培训课程 主讲人 人力资源部 二零零五年六月.
海洋存亡 匹夫有责 ——让我们都来做环保小卫士 XX小学三(3)班.
XX信托 ·天鑫 9号集合资金信托计划 扬州广陵
你一定要認識的數學家.
105學年度高一普通科(1~8班) 新生選修課程說明
概率论与数理统计模拟题(3) 一.填空题 3且 1.对于任意二事件A 和 B,有P(A-B)=( )。 2.设 已知
如何寫工程計畫書 臺北市童軍會考驗委員會 高級考驗營 版.
語法與修辭 骨&肉 老師:歐秀慧.
制冷与低温技术原理 (四) 多媒体教学课件 李文科 制作.
代数等式理论的自动定理证明 计算机科学导论第一讲
12.3.1运用公式法 —平方差公式.
苏 教 版 五 年 级 数 学(上) 用字母表示数 青阳体仁小学 胡春雅.
材料二甲 授課教師:王致傑 老師 (學420、分機5305)
第二部分 集合论 第六章 集合代数 主要内容 集合的基本概念 属于、包含 幂集、空集 文氏图等 集合的基本运算 并、交、补、差等 集合恒等式
107上五年級〈社會科〉學校日簡報 教師個人檔案 ★民國77年8月開始任職本校 ★在本校擔任自然科任1年、導師8年、
5431-數位- 課號: 5431 課程名稱:認知與數位教學 (一) 作業名稱:5431-數位-6-解錄-0110 系級:科技與數位學習組 學號: 姓名:王品涵 個人相片 檔案命名規則 5431-數位-學號-姓名-.ppt.
寢具通路業經營分享與創意行銷 億進寢具生活館 總經理 柯智正.
§12-5 同方向同频率两个简谐振动的合成 一. 同方向同频率的简谐振动的合成 1. 分振动 : 2. 合振动 : 解析法
幂的乘方.
第二章 一元一次不等式和一元一次不等式组 回顾与复习(一).
我们探究学习 成果 直线的 倾斜角与斜率.
利用十字交乘法將二次多項式化為兩個一次式的乘積。
2.2.2双曲线的简单几何性质 海口市灵山中学 吴潇.
Presentation transcript:

程序设计语言理论 计算机科学与技术学院 陈意云,3607043 http://staff.ustc.edu.cn/~yiyun yiyun@ustc.edu.cn

课 程 简 介 计算机科学的理论体系 1、模型理论  关心的问题 给定模型M,哪些问题可以由模型M解决 如何比较模型的表达能力  经典计算 确定的图灵机,可计算性理论属于模型理论  新型计算 本质特点是交互( 并发、分布、网络、网格、云 )  计算和交互的统一模型理论尚未出现

课 程 简 介 计算机科学的理论体系 2、程序理论  关心的问题 给定模型M,如何用模型M解决问题  包括的领域 程序设计范型、程序设计语言、程序设计、形式语义、类型论、程序验证、程序分析等 3

课 程 简 介 计算机科学的理论体系 3、计算理论  关心的问题 给定模型M和一类问题,解决该类问题需要多少资源  包括的领域 计算复杂性理论 4

课 程 简 介 围绕程序设计语言的研究(课程涉及内容用 绿色表示) 语法:形式语言和自动机理论,语法分析的实现技术 语义:公理语义、操作语义、指称语义 形式描述技术还有:代数规范、范畴论、属性文法 程序设计的范型:命令式语言、函数式语言、逻辑程序设计语言、面向对象程序设计语言、并行程序设计语言

课 程 简 介 围绕程序设计语言的研究(课程涉及内容用 绿色表示) 类型论与类型系统:多态类型、子类型、存在类型 程序验证:程序正确性证明 程序分析技术:数据流分析、控制流分析、模型检查、抽象解释 程序的自动生成技术:程序变换

课 程 简 介 学习的意义 掌握与程序设计语言有关的理论,为从事有关的研究起一个奠基的作用 应用: 程序设计语言的设计和实现 程序的自动生成 程序分析与程序验证 提高软件的可信程度 协议的形式描述和验证

课 程 简 介 教材和参考书 陈意云、张昱,程序设计语言理论(第二版),高等教育出版社,2010.2 教学资源网页:http://staff.ustc.edu.cn/~yiyun 马世龙、眭跃飞等译,类型和程序设计语言,电子工业出版社,2005.5 许满武译,程序设计语言理论基础,电子工业出版社,2006.11 陈意云、张昱,编译原理(第二版),高等教育出版社,2008.6

课 程 简 介 教材和参考书 John C. Mitchell, Foundations For Programming Languages, MIT Press, 1996. Banjamin C. Pierce, Types and Programming Laungages, MIT Press, 2002. Robert Harper, Practical Foundations for Programming Languages, working draft, 2009. John C. Reynolds, Theories of Programming Languages , Cambridge University Press, 1998. Glynn Winskel, The Formal Semantics of Programming Languages: An Introduction , MIT Press, 1993.

课 程 简 介 课程要求 讲课进展较快,平时不复习不加深理解,后面将听不懂 作业较多,要求独立完成 没有上机实验 考试开卷 成绩:考试成绩占70%,作业占30%

第1章 引 言 介绍一个非常简单的、以自然数和布尔值作为基本类型的、基于类型化演算的语言 介绍该语言的语法、公理语义和操作语义 第1章 引 言 介绍一个非常简单的、以自然数和布尔值作为基本类型的、基于类型化演算的语言 介绍该语言的语法、公理语义和操作语义 主要议题如下: 表示法和演算系统概述 类型和类型系统的扼要讨论 基于表达式的归纳、基于证明的归纳和良基归纳

1.1 基 本 概 念 1.1.1 模型语言 对程序设计语言进行数学分析 语言的形式化分为两部分 1.1 基 本 概 念 1.1.1 模型语言 对程序设计语言进行数学分析 从设计模型语言开始 突出感兴趣的程序构造,忽略无关的细节 语言的形式化分为两部分 能抓住语言本质机制的非常小的核心:演算 导出部分:它们可以翻译成核心的演算 用类型化演算的框架来研究程序设计语言的各种概念

1.1 基 本 概 念 1.1.2 表示法 表示法的主要特征 抽象的例子 (自然数类型上的几个例子) 1.1 基 本 概 念 1.1.2 表示法 表示法的主要特征 抽象:用于定义函数 应用:将所定义的函数作用于变元 抽象的例子 (自然数类型上的几个例子) 恒等函数:x : nat.x // 命令式表示Id(x : nat) = x 后继函数:x : nat.x  1 // 函数式无需给函数命名 常函数:x : nat.10 x : nat.x  true 不是良形的表达式 表示法写出的表达式叫做表达式或项

1.1 基 本 概 念 项x:.M 和谓词演算公式x :A. 的比较 应用:用项的并置来表示函数应用,例: 是一个约束算子 1.1 基 本 概 念 项x:.M 和谓词演算公式x :A. 的比较 是一个约束算子 x是一个占位符,约束变元,可以重新命名约束变元而不改变表达式的含义 在x:.x + y中,x的出现是约束的, y的出现是自由的 不含自由变元的表达式称为闭表达式 应用:用项的并置来表示函数应用,例: (x : nat.x) 5 (x : nat.x) 5  5 // 应用后面介绍的公理

1.1 基 本 概 念 一个简单的例子 ( x : nat. ( y : nat. z : nat. ( x + y ) + z ) 3 ) 4 5 = ( x : nat. z : nat. ( x + 3 ) + z ) 4 5 = ( z : nat. ( 4 + 3 ) + z ) 5 = ( 4 + 3 ) + 5 = 12

1.1 基 本 概 念 表示法中有两个约定 例 函数应用是左结合的: MNP 应看成 (MN)P 每个的约束范围尽可能地大: 1.1 基 本 概 念 表示法中有两个约定 函数应用是左结合的: MNP 应看成 (MN)P 每个的约束范围尽可能地大: 一直到表达式的结束,或 碰到不能配对的右括号为止 例 x:.MN解释为x:.(MN),而不是(x:.M)N x:.y:.MN是x:.(y:.(MN))的简写 (((x:.(y:.(z:.M)))N)P)Q可以简写为 (x:.y:.z:.M)NPQ

1.2 等式、归约和语义 表示法是演算的一部分,演算是关于表达式的一个推理系统 除了语法外,该形式系统有三个主要部分 公理语义:推导表达式相等的一个形式系统 操作语义:基于单方向的等式推理(归约、符号计算) 上述两者都称为证明系统 指称语义:形式系统的模型

1.2 等式、归约和语义 1.2.1 公理语义 一个等式公理系统 约束变元改名公理(公理) 函数应用公理(公理) 1.2.1 公理语义 一个等式公理系统 约束变元改名公理(公理) x:.M  y:.yxM,M中无自由出现的y 其中NxM表示M中的x用表达式N代换的结果 例如 x:.x  y:.y 函数应用公理(公理) (x:.M)N  [N/x]M 例如 (x:nat.x+4) 4  [4/x](x+4)  4 + 4

1.2 等式、归约和语义 自反公理、对称性规则、传递性规则 同余规则 等式证明规则允许推导任何一组等式前提的逻辑推论 相等的函数应用于相等的变元产生相等的结果 等式证明规则允许推导任何一组等式前提的逻辑推论 M1 = M2 N1 = N2 M1 N1 = M2 N2

1.2 等式、归约和语义 1.2.2 操作语义 语言的操作语义可用不同的方式给出 定义一个抽象机,通过一系列的机器状态变换来计算程序 演绎出最终结果的证明系统 前面所列的等式公理的单向形式给出了归约规则 最核心的归约规则是()的单向形式 (x:.M)N  [N/x]M 通常没有 归约规则:x:.M  y:.yxM

1.2 等式、归约和语义 1.2.3 指称语义 确定语言构造(程序、语句、表达式等)到指称物(各种集合)的语义映射,满足: 1.2.3 指称语义 确定语言构造(程序、语句、表达式等)到指称物(各种集合)的语义映射,满足: 各种语言构造的实例都有对应的指称物 复合构造的指称只依赖于它的子构造的指称 类型化演算的指称语义 每个类型表达式对应到一个集合 类型 的项解释为其值集上的一个元素 类型   的值集是函数集合,项x:.M解释为一个数学函数

1.3 类型和类型系统 类型论 类型提供了所有可能值的一种划分 对于不同的类型系统,类型的多少和值所属的类型可能不同 为避免集合论悖论而建立起来的数学理论 主要研究集合的分层、分类方法 在程序设计语言理论中,类型论是指类型系统的设计、分析和研究 类型提供了所有可能值的一种划分 一个类型是一群有某些公共性质的值 对于不同的类型系统,类型的多少和值所属的类型可能不同

1.3 类型和类型系统 1.3.1 类型和类型系统 类型语言:变量都被给定类型 未类型化的语言:不限制变量值的范围 类型系统 语言的一个组成部分 由一组定型规则构成 类型系统的研究有两个分支 类型系统在程序设计语言中的应用 “纯类型化演算”和各种逻辑之间的对应关系

1.3 类型和类型系统 设计类型系统的目的 用来证明程序不会出现不良行为 类型可靠的语言(安全语言) 显式类型化的语言:类型是语法的一部分 所有程序运行时都没有不良行为出现 类型系统的研究也需要形式化的方法 许多语言定义被发现不是类型可靠的,甚至经过类型检查后接受的程序也会崩溃 显式类型化的语言:类型是语法的一部分 隐式类型化的语言

1.3 类型和类型系统 1.3.2 类型语言的优点 开发时的实惠 编译时的实惠 运行时的实惠 可以较早发现错误 类型信息具有文档作用(比程序注解精确,比形式规范容易理解) 编译时的实惠 程序模块可以相互独立地编译 运行时的实惠 更有效的空间安排和访问方式,提高了目标代码的运行效率

1.3 类型和类型系统 类型系统的其他应用 许多程序分析工具使用类型检查或类型推断算法 类型系统用来表示逻辑命题和证明

1.4 归 纳 法 本节介绍本书常用的归纳法 自然数归纳法(有两种形式,不专门介绍) 结构归纳(介绍表达式上的归纳,有两种形式) 1.4 归 纳 法 本节介绍本书常用的归纳法 自然数归纳法(有两种形式,不专门介绍) 结构归纳(介绍表达式上的归纳,有两种形式) 证明上的归纳 良基归纳法(重点介绍)

1.4 归 纳 法 1.4.1 表达式上的归纳 表达式文法 e ::= 0 | 1 | v | e + e | e  e 1.4 归 纳 法 1.4.1 表达式上的归纳 表达式文法 e ::= 0 | 1 | v | e + e | e  e 每个表达式都有各自的语法树 如果P是表达式的性质,Q是自然数的性质 Q(n)  语言树t.如果height(t) = n 并且t是e的语法树,那么P(e)为真 首先必须为高度是0的语法树直接证明P 然后,对于语法树高度至少为1的表达式e,假定对于语法树高度较小的表达式,P都为真,证明P(e)为真

1.4 归 纳 法 结构归纳(形式1) 结构归纳(形式2) 形式2的归纳假设包含了所有的子表达式,并非只是直接子表达式 1.4 归 纳 法 结构归纳(形式1) 对每个原子表达式e,证明P(e) 对直接子表达式为e1,…, ek的任何复合表达式e,证明,如果P(ei)(i=1,…, k)都为真,那么P(e) 也为真 结构归纳(形式2) 证明:对任何表达式e,如果P(e)对e的任何子表达式e都成立,那么P(e)也成立 形式2的归纳假设包含了所有的子表达式,并非只是直接子表达式

1.4 归 纳 法 1.4.2 证明上的归纳 证明系统由公理和推理规则组成 1.4 归 纳 法 1.4.2 证明上的归纳 证明系统由公理和推理规则组成 证明是一个公式序列,该序列中的每个公式都是公理或者是由前面的公式通过一个推理规则得到的结论 基于证明的长度,用自然数归纳法来讨论证明的性质 另一种观点把证明看成是某种形式的树

1.4 归 纳 法 A1 An - - - 证明上的结构归纳 证明树示意图 B 对该证明系统中的每个公理,证明P成立 1.4 归 纳 法 证明上的结构归纳 对该证明系统中的每个公理,证明P成立 假定对证明1, …, k,P成立,证明P()也为真 是这样的证明,它结束于用一个推理规则,并且是从证明1, …, k延伸出来的一个证明 B An - - - A1 证明树示意图

1.4 归 纳 法 1.4.3 良基归纳 集合A的二元关系被称为是良基的:若A上不存在无穷递减序列a0  a1  a2  … 1.4 归 纳 法 1.4.3 良基归纳 集合A的二元关系被称为是良基的:若A上不存在无穷递减序列a0  a1  a2  … 例:在自然数上,如果j  i +1,则i  j。这个关系是良基关系 良基关系的一些特点 良基关系不一定有传递性 良基关系都是非自反的,即对任何aA,a  a不成立;否则会出现无穷递减序列a  a  a  …

1.4 归 纳 法 引理1.1 若是集合A上的二元关系,是良基的,当且仅当A的每个非空子集都有极小元 证明 1.4 归 纳 法 引理1.1 若是集合A上的二元关系,是良基的,当且仅当A的每个非空子集都有极小元 证明 假定是良基的,证明非空子集B(BA)有极小元 用反证法。如果B无极小元,那么对每个aB,可以找到某个aB使得aa。则可以从任意的a0B开始,构造一个无穷递减序列a0  a1  a2  … 假定每个子集都有极小元 则不可能存在a0  a1  a2  …,因该序列给出了无极小元的集合{a0, a1, a2, …}。故是良基的

1.4 归 纳 法 命题1.2(良基归纳) 令是集合A上的良基关系, 令P是A上某个性质, 1.4 归 纳 法 命题1.2(良基归纳) 令是集合A上的良基关系, 令P是A上某个性质, 若每当所有的P(b) (b  a)为真,则P(a)为真,即 a.(b.(b  a  P(b))  P(a)) 那么,对所有的aA,P(a)为真

1.4 归 纳 法 命题1.2(良基归纳) 证明 若a.(b.(b  a  P(b))  P(a)),则a.P(a) 1.4 归 纳 法 命题1.2(良基归纳) 若a.(b.(b  a  P(b))  P(a)),则a.P(a) 证明 若存在某个xA使得P(x)成立,则下面集合非空 B  { aA |  P(a) } 由引理1.1,B一定有极小元aB 但是,对所有的b  a,P(b)一定成立(否则a不是B的极小元) 这就和假定b.(b  a  P(b))  P(a)矛盾

1.4 归 纳 法 良基归纳法的使用 如何理解:若每当所有的P(b) (b  a)为真,则P(a)为真,即: (b.(b  a  P(b))  P(a)) 对某些a,不存在b,使得b  a,则 b.(b  a  P(b))  P(a) 等价于 P(a) (因为b: . P(b)为真,其中表示空集) 对另一些a,存在b,使得b  a,则 b.(b  a  P(b))  P(a) 的证明是基于b.(b  a  P(b)) 为真来推导P(a)为 真

1.4 归 纳 法 表1.1 常用归纳形式的良基关系 归纳形式 良基关系 自然数归纳(1) m  n,如果m +1  n 1.4 归 纳 法 表1.1 常用归纳形式的良基关系 归纳形式 良基关系 自然数归纳(1) m  n,如果m +1  n 自然数归纳(2) m  n,如果m  n 结构归纳(1) e  e,如果e是e的直接子表达式 结构归纳(2) e  e,如果e是e的子表达式 基于证明的归纳   ,如果是证明的最后一步推导规则的某个前提的证明

1.4 归 纳 法 自然数归纳(形式1) 自然数归纳(形式2) 词典序(以自然数序列为例 ) 1.4 归 纳 法 自然数归纳(形式1) 为证明对所有n,P(n)为真,只需证明P(0)以及证明对任何m,如果P(m)为真则P(m+1)必定为真 自然数归纳(形式2) 为证明对所有n,P(n)为真,只需证明对任何m,如果所有的P(i) (i  m)为真则P(m)必定为真 词典序(以自然数序列为例 ) n1, n2, …, nk  m1, m2, …, ml iff k < l 或者k  l并且存在一个 i  k,使得对所有的 j < i有 nj  mj 并且ni < mi

习 题 1.2,1.5,1.6