- 4
- 0
- 约8.34千字
- 约 20页
- 2018-04-15 发布于浙江
- 举报
[2018年最新整理]实验三语义分析
简单复习 语法制导翻译的基本步骤 2.3.3.2 语义函数的设计 1 全程变量:(类似于设计属性) double Parameter=0; // 为参数T分配的变量 double Origin_x=0.0, Origin_y=0.0; // 用于记录平移距离 double Rot_ang=0.0; // 用于记录旋转角度 double Scale_x=1, Scale_y=1; // 用于记录比例因子 2 辅助语义函数 a) 计算表达式的值:深度优先后序遍历语法树 double GetExprValue(struct ExprNode * root); 3 辅助语义函数设计举例 a) 表达式值的计算 b) 点轨迹的循环绘制 2.3.3.3 递归子程序中语义规则的嵌入 a) OriginStatement b) ForStatement 2.5 上机题的改进建议 2.5.1 函数绘图语言的扩充 1 修改显示屏的直角坐标系,使得它与习惯上的坐标系一致; 2 扩充语句类型,使得用户可以规定图形颜色; 3 扩展循环绘图语句,使得for_draw语句可以嵌套; 4 增加文本框,使得用户可以在图形中添加文字说明; 5 增加清图功能,使得图形可以具有简单的动画效果。 2.5.2 采用面向对象技术实现解释器 语法制导翻译的本质反映在面向对象的程序设计方法上就是一种继承关系。 static void ForStatement (void) { tree_node_ptr start_ptr, end_ptr, step_ptr, x_ptr, y_ptr; 1 不利用类机制 tree_node_ptr start_ptr, end_ptr, step_ptr, x_ptr, y_ptr, angle_ptr; 2 利用类机制 tree_node_ptr start_ptr, end_ptr, step_ptr, x_ptr, y_ptr, angle_ptr; 1 程序设计方法与程序设计语言支持方法无必然联系; 2 C++对C的发展不仅是提供了对面向对象方法的支持,还扩展了常量定义、类属机制、异常处理,等等; 3 灵活利用C++提供的机制可提高程序的可读性与可维护性。 double GetExprValue(struct ExprNode * root) { if (root == NULL) return 0.0; switch (root - OpCode) { case PLUS : return GetExprValue(root-Content.CaseOperator.Left ) + GetExprValue(root-Content.CaseOperator.Right) ; case MINUS : ...... // 其它二元运算类似处理 case POWER : return pow( GetExprValue(root-Content.CaseOperator.Left), GetExprValue(root-Content.CaseOperator.Right)); case FUNC : return (* root-Content.CaseFunc.MathFuncPtr) (GetExprValue(root-Content.CaseFunc.Child) ); case CONST_ID : return root-Content.CaseConst ; case T : return *(root-Content.CaseParmPtr); default : return 0.0 ; } }(返回) void DrawLoop(double Start, double End, double Step, struct ExprNode * HorPtr, struct ExprNode * VerPtr) { extern double Parameter; double x, y; for(Parameter=Start; Parameter=End; Parameter+=Step) { CalcCoord(HorPtr, VerPtr, x, y);// 计算点的实际坐标 DrawPixel((unsigned long)x,
您可能关注的文档
- [2018年最新整理]安全生产责任书及安全技术交底.doc
- [2018年最新整理]安全生产许可证条例.ppt
- [2018年最新整理]安全生产责任目标分级管理.doc
- [2018年最新整理]安全生产风险管理体系知识考试题库.doc
- [2018年最新整理]安全生产考核知识点.doc
- [2018年最新整理]安全监护人培训课件.ppt
- [2018年最新整理]安全监理细则.doc
- [2018年最新整理]安全监理培训教材.doc
- [2018年最新整理]安全监理知识.ppt
- [2018年最新整理]安全监督基本知识.ppt
- [2018年最新整理]实验三、疲劳实验.ppt
- [2018年最新整理]实验专题(三)验证牛顿第二定律、机械能守恒、探究动能定理.doc
- [2018年最新整理]实验九 PROE创建工程图.doc
- [2018年最新整理]实验二 Matlab矩阵的初等运算及其答案.doc
- [2018年最新整理]实验二 用户线接口电路及二四线变换实验.docx
- [2018年最新整理]实验二 DFA确定化实验报告.doc
- [2018年最新整理]实验二 使用vi编辑器.doc
- [2018年最新整理]实验二 离散时间傅里叶变换.docx
- [2018年最新整理]实验二 :系统编程实现.ppt
- [2018年最新整理]实验二 茶叶外形审评及炒青老嫩茶审评.ppt
最近下载
- 职业学校学分制实施细则.docx
- AP微观经济学 2010年真题 附答案和评分标准 AP Microeconomics 2010 Real Exam with Answers and Scoring Guidelines.pdf VIP
- T_BIAS 14-2025 预制混凝土构件生产与运输标准.docx VIP
- T_ZAEPI 051-2025 再生有色金属工厂低碳运行评价指标体系.docx VIP
- 部编版五年级语文下册第一单元整体作业设计.docx
- 中国养老产业发展研究报告_1.doc VIP
- 2026年养老产业行业创新报告.docx
- C正谱怜悯我吧上帝 pieta signore.pdf VIP
- 《专业工程管理与实务》.pdf VIP
- 中国血栓性疾病防治指南(2025版).docx VIP
原创力文档

文档评论(0)