函数式语言的编译课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《函数式语言的编译课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 语言 编译 课件
- 资源描述:
-
1、第十三章第十三章 函数式语言的编译函数式语言的编译本章内容本章内容 介绍一种简单的函数式编程语言介绍一种简单的函数式编程语言SFP 介绍一种抽象机介绍一种抽象机FAM,它的机器语言是,它的机器语言是SFP语言的目标语言语言的目标语言 介绍介绍SFP各种语言构造到各种语言构造到FAM的编译的编译13.1 函数式编程语言简介函数式编程语言简介13.1.1 语言构造语言构造 函数是构建程序的基本成分函数是构建程序的基本成分 还提供一些机制用于构造更为复杂的函数还提供一些机制用于构造更为复杂的函数 纯函数式语言禁止使用赋值语句,从而不会产生纯函数式语言禁止使用赋值语句,从而不会产生副作用,其优点是具有
2、引用透明性,有助于程序副作用,其优点是具有引用透明性,有助于程序的等式变换和推理的等式变换和推理 程序设计的任务就是定义函数程序设计的任务就是定义函数 计算机按照所定义函数的相应表达式,根据计算计算机按照所定义函数的相应表达式,根据计算规则逐步计算,最后得到所需的结果规则逐步计算,最后得到所需的结果 13.1 函数式编程语言简介函数式编程语言简介 语法论域和语法产生式语法论域和语法产生式 B:基值集,如布尔值、整数、:基值集,如布尔值、整数、.,用,用b示例示例 Opbin:二元算符集,如:二元算符集,如+,=,and,.,用用opbin示例示例 Opun:一元算符集,如一元算符集,如,not
3、,.,用,用opun示例示例 V:变量集,用:变量集,用v 示例示例 E:表达式集,用:表达式集,用e 示例示例 e b|v|(opun e)|(e1 opbin e2)|(if e1 then e2 else e3)|(e1 e2)/函数应用函数应用|(v.e)/函数抽象函数抽象,如如 x.x+1,即即f(x)=x+1|(letrec v1=e1;v2=e2;.vn=en in e0)/联立递归定义联立递归定义13.1 函数式编程语言简介函数式编程语言简介 约定约定e b|v|(opun e)|(e1 e2)|(v.e)|(letrec v1=e1;v2=e2;.vn=en in e0)函数
4、应用有最高优先级并且左结合函数应用有最高优先级并且左结合 算术和逻辑算符有通常的优先级算术和逻辑算符有通常的优先级 抽象选择最大可能的语法表达式作为抽象选择最大可能的语法表达式作为 v.e的体的体e,即即e延伸到表达式的结尾或碰到第一个不能配对的延伸到表达式的结尾或碰到第一个不能配对的右括号为止右括号为止 n元函数写成元函数写成 v1 vn.e的形式的形式 把把fe1 em实现为一次函数应用,而不是实现为一次函数应用,而不是m次应用次应用 13.1 函数式编程语言简介函数式编程语言简介13.1.2 参数传递机制参数传递机制对于表达式对于表达式e1e2,用按需调用的方式传递参数,用按需调用的方式
5、传递参数 值调用值调用 换名调用换名调用 按需调用按需调用又称惰性计算。从又称惰性计算。从e1的计算开始,当第一次需要的计算开始,当第一次需要e2时,计算它的值,也就计算这一次。其它访问时,计算它的值,也就计算这一次。其它访问用第一次访问时计算的值。这种方式结合了前两用第一次访问时计算的值。这种方式结合了前两种方式的优点种方式的优点 13.1 函数式编程语言简介函数式编程语言简介 例例1letrec x=2;f=y.x+y;F=g x.g2in F f 1 静态作用域,结果等于静态作用域,结果等于4 x:2,f:y.x+y,F:g x.g2是表达式是表达式2,y.x+y,g x.g2和和F f
展开阅读全文