张家港建网站价格,信息型网站有哪些,长沙网站建设有哪些,电商视觉设计是干什么的一、实验目的 1#xff0e;熟悉体系结构的风格的概念 2#xff0e;理解和应用管道过滤器型的风格。 3、理解解释器的原理 4、理解编译器模型 二、实验环境 硬件#xff1a; 软件#xff1a;Python或任何一种自己喜欢的语言 三、实验内容 1、实现“四则运算”的简易翻译器。…一、实验目的 1熟悉体系结构的风格的概念 2理解和应用管道过滤器型的风格。 3、理解解释器的原理 4、理解编译器模型 二、实验环境 硬件 软件Python或任何一种自己喜欢的语言 三、实验内容 1、实现“四则运算”的简易翻译器。 结果要求 1实现加减乘除四则运算允许同时又多个操作数如23*5-6 结果是11 2被操作数为整数整数可以有多位 3处理空格 4输入错误显示错误提示并返回命令状态“CALC” 图1 实验结果示例 加强练习 1、有能力的同学可以尝试实现赋值语句例如x23*5-6返回x11。注意要实现解释器的功能而不是只是显示 2、尝试实现自增和自减符号例如x 2、采用管道-过滤器Pipes and Filters风格实现解释器 图2 管道-过滤器风格 图 3 编译器模型示意图 本实验实现的是词法分析和语法分析两个部分。 四、实验步骤 #include stdio.h#include stdlib.h#include ctype.hint n0;char record[20];float product();float change();float muli(){ float summ; summproduct(); while(record[n]-||record[n]) { switch(record[n]) { case :n;summproduct();break; case -:n;summ-product();break; } } return summ;}float product(){ float sump; sumpchange(); while(record[n]*||record[n]/) { switch(record[n]) { case *:n;sump*change();break; case /:n;sump/change();break; } } return sump;}float change(){ float sumc; char rec[20],i0; if(record[n]() { n; sumcmuli(); } if(record[n])) n; while(isdigit(record[n])||record[n].) { while(isdigit(record[n])||record[n].) rec[i]record[n]; rec[i]\0; sumcatof(rec); } return sumc; }void main(){ while(1) { n0; scanf(%s,record); printf(%s%g\n,record,muli()); } }
对应结构图 五、实验总结 转载于:https://www.cnblogs.com/zzl1/p/7748750.html