一、实验目的 通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法。 二、实验要求 采用递归下降语法制导翻译法,对算术表达式、赋值语句进行语义分析并生成四元式序列。 三、实验的结果验证 1.输入是语法分析后提供的正确的单词串,输出为三地址指令形式的四元式序列。 给出语句串: begin_a:=2+3*4; _x:=(a+b)/c_end# 输出如下三地址指令: (1) t1=3*4 (2) t2=2+t1 (3) a=t2 (4) t3=a+b (5) t4=t3/c (6) x=t4 2.自己任意给出一语句串,输出四元式序列。 要求:将上述2个语句串的执行结果显示保留在实验报告中(拷屏)。 四、算法思想 1、设置语义过程。 (1)emit(char *result,char *ag1,char *op,char *ag2) 该函数的功能是生成一个三地址语句送到四元式表中。 四元式表的结构如下: struct{char result[8]; char ag1[8]; char op[8]; char ag2[8]; }quad[20]; (2) char *newtemp() 该函数回送一个新的临时变量名,临时变量名产生的顺序为T1,T2,… char *newtemp(void) {char *p; char m[8]; p=(char *)malloc(8); k++; itoa(k,m,10); strcpy(p+1,m); p[0]=’t’; return(p); } 2、函数lrparser 在原来语法分析的基础上插入相应的语义动作:将输入串翻译成四元式序列。在实验中我们只对表达式、赋值语句进行翻译。 五、语义分析程序的C程序。 #include #include #include #include struct {char result[12]; char ag1[12]; char op[12]; char ag2[12]; }quad; char prog[80],token[12]; char ch; int syn,p,m=0,n,sum=0,kk; //p是缓冲区prog的指针,m是token的指针 char *rwtab[6]={"begin","if","then","while","do","end"}; void scaner(); char *factor(void); char *term(void); char *expression(void); int yucu(); void emit(char *result,char *ag1,char *op,char *ag2); char *newtemp(); int statement(); int k=0; void emit(char *result,char *ag1,char *op,char *ag2) { strcpy(quad.result,result); strcpy(参数设置); strcpy(quad.op,op); strcpy(quad.ag2,ag2); cout<
1
梯度下降法是机器学习算法更新模型参数的常用的方法之一。 相关概念 梯度 : 表示某一函数在一点处变化率最快的方向向量(可理解为这点的导数/偏导数) 样本 : 实际观测到的数据集,包括输入和输出(本文的样本数量用 m 表述,元素下标 i 表示) 特征 : 样本的输入(本文的特征数量用 n 表示,元素下标 j 表示) 假设函数 : 用来拟合样本的函数,记为 $ h_θ(X) (θ 为参数向量, X 为特征向量)$ 代价函数 : 用于评估模型拟合的程度,训练的目标是最小化代价函数,记为 J(θ)J(θ)J(θ) 通过代价函数使得假设函数更好的拟合给定数据 线性假设函数 : $ h_θ(X) = θ_
2021-11-16 11:13:23 69KB 梯度 梯度下降 特征向量
1
机器学习算法,线性回归于逻辑回归推导过程及代码
2021-11-15 18:55:04 342KB 算法
1
IRENA-绿氢成本下降—扩大电解槽规模以满足1.5℃气候目标(英文)-2020.12-106页.pdf
2021-11-15 09:03:21 5.78MB 研报
主要为大家详细介绍了基于随机梯度下降的矩阵分解推荐算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2021-11-14 11:02:08 109KB python 梯度下降 矩阵分解
1
matlab 代码梯度下降法 Machine Learning NJUST研究生硕士课程Machine Learning,主讲人夏睿。 代码有三个版本:C++、Python、Matlab。由于C++图形库比较麻烦,使用Qt又多此一举,所以C++版本不附带图例。 C++ must require: cmake>=3.15 C++>=11 armadillo==9.900.3 Python must require: python>=3.7.7 numpy>=1.19.1 matplotlib>=3.3.1 jupyter>=1.0.0 Matlab must require: Matlab>=R2016a 课程地址: Project1: Nanjing Housing Price Prediction 基于GD(梯度下降)算法以及正规方程解,使用线性回归建立模型,预测南京2014年房价。
2021-11-13 19:51:50 6.93MB 系统开源
1
机器学习 这些是我用一些数据集实现的一些流行的机器学习算法。 其中包括线性回归(多变量)的实现,逻辑和线性回归的梯度下降,决策树,随机森林,朴素贝叶斯。 它们都是用python 3.5编写的。
2021-11-13 19:48:43 4.12MB JupyterNotebook
1
基于梯度下降法的线性回归模型预测房价,进行多元线性回归,其中包括一套关于房价预测的数据和基于numpy和pandas基础库的源代码
2021-11-13 15:17:23 1.46MB python 线性回归
1
一种用于焦炭下降的调速器及其调速方法与流程.docx
2021-11-13 10:02:18 17KB
问答网站问题、回答数量预测中的数据集
2021-11-13 09:11:16 20KB 机器学习 全批量梯度下降法
1