编译原理王生原第二章

上传人:sh****d 文档编号:118619024 上传时间:2019-12-20 格式:PPT 页数:42 大小:350.01KB
返回 下载 相关 举报
编译原理王生原第二章_第1页
第1页 / 共42页
编译原理王生原第二章_第2页
第2页 / 共42页
编译原理王生原第二章_第3页
第3页 / 共42页
编译原理王生原第二章_第4页
第4页 / 共42页
编译原理王生原第二章_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《编译原理王生原第二章》由会员分享,可在线阅读,更多相关《编译原理王生原第二章(42页珍藏版)》请在金锄头文库上搜索。

1、编译原理 第二讲 Decaf / Mind 编译实验项目 编译原理 项目框架的总体结构 实验环境 实验内容 Decaf / Mind 编译实验项目 实验安排 项目回顾 考核方案 编译原理 项目回顾 Decaf 语言 - 一种强类型的、单继承的简单面向对象语言 - 许多大学用作教学语言 Stanford University Massachusetts Institute of Technology University of Tennessee Brown University Texas A % % n +num_lines; +num_chars; . +num_chars; % Int

2、main() yylex(); printf( “num of lines = %d, num of chars = %dn, num_lines, num_chars ); return 0; Lex 源程序举例 count.l Lex return INTEGER; +*()n return yytext0; . /*do nothing*/ % Lex 源程序举例 Lex line: n | exp n printf (t%dn, $1); | error n ; exp: INTEGER $ = $1; | exp + exp $ = $1 + $3; | exp * exp $ =

3、$1 * $3; | ( exp ) $ = $2; ; % Lex int yylex() /* 自行编写或从 Lex 得到, 随后介绍 Lex和YACC 的联用,需删去这里的 yylex()定义 */ yyerror (char *s) printf (%sn, s); YACC 源程序举例 (续) Lex & YACC 简介 编译原理 - 设 exp.l 和exp.y 分别为前述的Lex 和YACC 源程序文件 可如下实现Lex 和YACC的联编: lex exp.l /* 产生lex.yy.c,其中包含 yylex() */ yacc -d exp.y /* 产生y.tab.c (其中

4、包含 yyparse())及 y.tab.h gcc y.tab.c lex.yy.c -ly -ll -o exp 运行结果 $ ./exp 4+3*5 19 Lex 与YACC 的联用举例 Lex & YACC 简介 编译原理 实验安排 时间安排 - 第 4 周开始 - 共 8 周 - 自行扩展部分随后两周内完成提交 提交方式 - 通过课程 ftp 服务器 - 具体要求参见实验说明 编译原理 考核方案 评分 - Phase 1-3 各 9 分 - Phase 4 8 分 - 自行扩展部分 5 分 (直接加入总评成绩) 迟交和扣分说明 - 共有 2 天的晚交额度(可在任何阶段使用) - 每超过额度一天在实验总成绩中扣两分 - 发现抄袭者取消阶段成绩 - 进一步的信息参见实验说明 编译原理 课后作业 1. 进一步阅读有关 Lex & Yacc 的技术文档 2. 掌握 Jflex & BYACC/J 的使用 编译原理 Thank You Thats all for today.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号