- 博客(6)
- 收藏
- 关注
原创 WebServer 改造为 OJ 测评服务器
第一版 只支持 GET 请求的 WebServer1.1 总览1.2 客户访问一个文件的全部流程客户可以访问服务器的静态资源,如图片文件、文本文件、html 文件等。具体操作是服务端启动后,用户在浏览器输入服务器的 ip 以及端口号和要访问的资源,如 127.0.0.1:8089/pic.png。服务端主线程监听到有请求到来,把该请求放到请求队列中,线程池中的线程竞争该请求,通过互斥锁实现多线程间的互斥。竞争到请求的某个工作线程对该 http 报文进行解析:以 1 中的请求为例,用 ch
2021-09-03 10:34:45
526
原创 构造LALR分析表
一、 本文目的\quad 在编译器工具中有lex实现词法分析,有yacc实现LALR分析。\quad 本文目的是手动造轮子,动手实现LALR分析表的自动构造。二、 构造LALR分析表的两种方法首先构造LR(1)分析表(前文已有),合并具有相同核心的LR(1)项集;高效构造LALR项集,算法详见《编译原理(本科教学版)》P162三、 LALR与LR(1)的区分\quad 本文使用的是方法1,虽然耗费空间稍微大一点,但毕竟已有LR(1)分析表在前,基于LR(1)构造LALR会容易很多。在构
2021-07-01 23:28:24
3002
1
原创 C++实现的利用LR(1)分析表对赋值表达式进行语法制导翻译生成四元式及汇编代码
赋值语句的语法制导翻译一、需要的语义过程如下:newtemp()\quad每次调用送回一个代表新临时变量的序号,可认为是送回T1、T2这样的一些临时变量ENTRY(i)\quad用于查变量i的符号表入口地址GEN(OP,ARG1,ARG2,RESULT)\quad产生一个四元式,并填入四元式序列表E.PLACE\quad含义:与非终结符E相关联的语义变量(值),值为某变量的符号表入口地址或临时变量序号二、 赋值表达式文法如下(1)S→A(2)A→i=E(3)E→−E
2021-06-02 21:21:20
5078
7
原创 C++实现LR(1)分析表的构造
构造LR(1)分析表的算法参考了龙书本科教学版:龙书给的例子:(1)S′→S(2)S→CC(3)C→cC∣d\begin{aligned}&(1) S' \rightarrow S \\ &(2) S\rightarrow CC\\&(3) C \rightarrow cC|d \\\end{aligned}(1)S′→S(2)S→CC(3)C→cC∣d以下是用上述文法,程序的输出结果:所得结果一致,理论上对其他文法都是可以自动构造相应的
2021-06-02 19:58:54
3815
4
原创 C++实现的自动构造LL(1)文法的first集、follow集和预测分析表。
\qquad要求:程序识别的文法需是LL(1)文法,具体输入格式说明见initGrammer()。本例采用的文法如下:(1)E→E+T∣T(2)T→T∗F∣F(3)F→(E)∣i\begin{aligned}&(1)E \rightarrow E+T|T \\&(2)T \rightarrow T*F|F \\ &(3)F \rightarrow(E)| i\\\end{aligned}(1)E→E+T∣T(2)T→T∗F∣F(3)F→(E)∣i因为LL(1)
2021-05-06 01:44:38
1917
3
原创 k-medoids 聚类中距离度量函数的选取对聚类效果的影响
k-medoids 聚类中距离度量函数的选取数据聚类的一般流程为:选定特征、确定相似度、选择聚类算法、聚类结果评估。在此次试验中,各步骤具体采用方法如下:选定特征生成满足二维高斯分布的集合,特征为[x,y]确定相似度(距离度量) :若有两个样本点(x1,y1),(x2,y2)(x_1,y_1),(x_2,y_2)(x1,y1),(x2,y2)(1)欧式距离: d=(x1−x2)2+(y1−y2)2d =\sqrt{(x_1-x_2)^2 +(y_1-y_2)^2 }d=(x1−x
2021-04-29 18:38:50
1414
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人