《编译原理-龙书》练习第4章

《编译原理-龙书》练习第8章 代码生成: 中间表示形式+符号表 -> 指令选择,寄存器分配和指派,指令排序 8.2 目标语言 8.2.1 1) x = 1 LD   r, #1 ST   x, r 3)x = a+1 LD    r, a ADD r, #1 ST    a, r 5)x = b*c LD    R1, b MUL R1, c ST     x, R1 8.2.2 1)x=a 阅读详情
AI摘要

本文深入探讨上下文无关文法表示方法,详细解析文法构建与转换过程,涉及正则表达式转文法、文法无用符号识别、自顶向下与自底向上语法分析等关键概念。同时,介绍LR语法分析技术,包括SLR(1)与LL(1)文法特点及构造LR(0)自动机方法,以及更强大的LR语法分析器的理解与应用。文章旨在提供全面的文法与语法分析技术指南。

4.2 上下文无关文法

**4.2.7节中L={a^nb^n|n>=1}怎么用文法表示?
S -> aAb
A -> ab|ε

4.2.1

1) E -> EE* 

-> EE+E*

-> aa+a*

左到右依次a

2) 与1)一样,只是最后一步右到左依次a

3)       E

      E       E  *

 E E +

id id        id

4)无二义性,但是怎么证明呢?

5)+*组成的后缀表达式

4.2.3 如果是正则表达式,可以采用4.2.7的方法转成文法

1) (0*1+)* 根据DNF推出:

S -> 0A

S -> 1S

S -> ε

A -> 1S

2)

S -> ABA

A -> BB

B -> 0|1|ε

4.2.4

对于A->X[Y]Z,可以表示为

A->XBZ

B->Y|ε

对于A->X{YZ},可以表示为

A->XB

B->CC

C->YZ|ε

4.2.5 stmt -> if expr then stmt [ else stmt ] | begin stmt{; stmt} end

4.2.6 基本的正则表达式还剩*,表示为A->Z*,可以改写为:

A->BB

B->Z|ε

4.2.7 1)

建立一个集合表示所有非“无用符号”集合T,开始置为所有终结符号

集合A表示所有推导式,默认不打标记

for(所有没有打标记的A中推导式)

{

 if( 如果右边只有T中符号集合)

  {

    将这个表达式打标记

    表达式左边符号加入集合T

  }

 if(一个循环结束没有新的表达式被打标记)

   循环退出

}

将开始符号加入T

2)非“无用符号”集合T会依次加入{0, B, S},所以A是无用符号

4.2.8 读懂这道题费了好大劲,不知到是因为最后一道题了还是比较晚了(2012-12-20 22:49,离世界末日不远了)

1)前2行不变,后面改为:

option -> A1|A2|...|An

A1 -> a1|b1

...

An -> an|bn

2)又花了一段时间读懂了这个题目,生成的串固定长度n,不考虑<n的串

n!*n的产生式是这样的,1)中的第一行改为:

option->Aa1|Aa2...|Aan

其中a1有n种选择(A1-An),a2有剩下的n-1种.....an为剩下的一种。

这些产生式一共包括n!个长度为n的产生式,即O(n!*n)


如果有一个O(n*2^n)的产生式序列,那么可能是n个长度为2^n的产生式,具体构造方法没想出来


4.3 设计文法

4.3.1 1)没有左公因子

2)有左递归,不能自顶向下语法分析

3)

rexpr -> rterm | E1

E1 -> +rterm | ε

rterm -> rfactor | F1

F1 -> rfactor | ε

rfactor -> rprimary | P1

P1 -> * | ε

rprimary -> a|b

4)目前没有左递归、左公因子,可以自顶向下语法分析

4.3.3 考虑 if E1 then if E2 else if E3 then MATCHED1 else MATCHED2

if E3 then MATCHED1 else MATCHED2不能确定跟前面两个if中的哪个匹配

4.4 自顶向下的语法分析

4.4.1 1)S -> 0S1 | 01
S -> 0T
T -> S1|1
FIRST(S) = {0}
FIRST(T) = {0,1}
FOLLOW(S) = {1,$}
FOLLOW(T) = {1,$}
 01$
SS->0T  
TT->S1T->1 


4.4.2 S -> SS+ | SS* | a
提取左公因子
S -> SST|a
T -> +|*
消除左递归

S -> aX

X -> STX |ε 

T -> +|*

FIRST(S) = {a}
FIRST(X) = {a}
FOLLOW(S) = {+,*,$}
FOLLOW(X) = {+,*,$}
提取左公因子
 a+*$
SaX   
XSTXεεε
T +* 

4.4.5 感觉可以识别aaaaaa,为啥不行呢?

aaaaaa aSa

  aaaaa  Sa

  aaaaa  aSaa 如果可以向前看4个输入符号,则可以识别aaaaa,否则,会继续采用S -> aSa

    aaaa  Saa    aSaaa

      aaa  aSaaaa

        aa  Saaaa    aSaaaaa

          a  Saaaaa  需要回溯,回溯到一定程度就可以识别

4.4.6 1)如果产生式左边只能生成ε,则将其在文法中所有出现的地方删除即可

否则,就是类似T -> X | ε,这种情况下,将T在其他推导中出现的地方用这两个替换

这样有可能粗先左递归或左公因子。

2)

S -> aSbS  => S -> aaSbSbaSbS | abSaSbbSaS | aSbS

S -> bSaS  => S -> baSbSaaSbS | bbSaSabSaS | bSaS

S -> ε

综合得到S -> aaSbSbaSbS | abSaSbbSaS | aSbS | baSbSaaSbS | bbSaSabSaS | bSaS

4.4.7 1)如果有A=》B,则将B进行替换,替换为B可推导得到的表达式

2)E -> E+T | T   T -> T*F | F   F->(E) | id 进行替换如下:

T -> T*F | (E) | id

E -> E+T | T*F | (E) | id

3)一步推导得到的环可以直接删除,如果是多步,不失一般性,假设为2步,由于文法中不存在ε,所以必然存在这样的推导:

A->B B->A,我们可以爱用上面方法将B去掉,并去掉一步环。

4.4.8 根据4.4.7不难得到,但是得到的结果有左递归

4.4.9 如果n*n的表能够构造成功直到j-i=n-1,说明串在这个语言中

4.5 自底向上的语法分析

4.5.1  S -> 0S1 | 01

1)000111 最右推导:S -> 0S1 -> 00S11 -> 000111

最中间的01

2)00S11   最右推导: S -> 0S1 ->00S11

中间的0S1

4.5.2  S -> SS+ |SS* | a

1)SS+A*+      SS+

2)SS+a*a+   SS+

3)aaa*a++    a

4.5.3

1)

$            000111$

$0001            11$

$00S              11$

$00S1              1$

$0S                   1$

$0S1                   $

$S                       $

2)

aaa*a++

Saa*a++

SSa*a++

SSS*a++

SSa++

SSS++

SS+

S

4.6 LR语法分析技术介绍:简单LR技术

4.6.1

1) 0,0S,00S....

2)

4.6.2 S -> SS+| SS* | a

采用图4-33中算法处理 

(1) S`->S

(2) S -> SS+

(3) S -> SS*

(4) S -> a

01 0S2 0a3 1S4 3+5 3*

S`->.S

S->.SS+

S->.SS*

S->.a

S`->S.

S->S.S+

S->S.S*

S->.a

1$ = accept

S->a.

S->SS.+

S->SS.*

S->SS+.S->SS*.

采用算法4.46

FOLLOW(S) = {+, *,a $}    FOLLOW(+)={+, *, a}    FOLLOW(*)={+, *, a}   FOLLOW(a)={+, *, a}

 a+*$S
0s2   1
1s2  acc3
2r4r4r4  
3 s4s5  
4r2r2r2  
5r3r3r3  

没有发现哪个ACTION既有归约又有移入操作,应该是SLR文法

4.6.3

栈符号输入动作
0 aa*a+$移入
02aa*a+$归约S->a
01Sa*a+$移入
012Sa*a+$归约S->a
013SS*a+$移入
0135SS*a+$归约S->SS*
01Sa+$移入
012Sa+$归约S->a
013SS+$移入
0134SS+$归约S->SS+
01S$接收
    


对于下面两题

LL(1)文法特点:需要满足4.4.3中的三个条件

SLR(1)文法特点:在输入某个表示串以后,有移入/规约冲突或规约/规约冲突

LL文法是LR文法的一个真子集,而不是SLR的

4.6.5

S`->S

S -> AaAb | BbBa

A ->ε

B ->ε

构造LR(0)自动机

0

S`->.S

S->.AaAb

S->.BbBa

A->.ε

B->.ε

1 0S

S`->S

没法继续构造下去

4.6.6

FIRST(SA)与FIRST(A)都包含{a}。所以不是LL(1)的

4.6.7 1)

S -> Aibi          n个

Ai -> ajAi          n^2-n个

Ai -> aj             n^2-n个 

2)考虑其中某个i和j

index项集

贡献数量

 
0

S`->.S 

S->.Aibi 

Ai->.ajAi 

Ai->.aj

1S`->.S
S->.A1b1 ...
S->.Anbn
A1->.a2A1...
A1->.anA1...
...
An->.a1An...
An->.an-1An
1
0->S
S`->S.1S`->S.
2
0->Ai
S->Ai.binn个S->Ai.bi
3
0->aj

Ai->aj.Ai

Ai->aj.

Ai->.ajAi

Ai->.aj

n对于a1
A2->a1.A2...
An->a1.An
A2->.ajA2
A2->.aj
...an
4
2->bi
S->Aibi.nn个S->Aibi.
5
3->Ai, 6Ai
Ai->ajAi.n*(n-1)对于a1
输入A2...An
6
3->aj,6->aj
Ai->aj.Ai
Ai->.ajAi
Ai->.aj
n*n对于a1
输入a1,a3...an
A2->aj.A2
A2->aj.
    

这样算下来是2n*n+2n+2

结果应该是2^n+n^2+n,看来我算错了,求高手指点

如果势2^n那说明状态数量太多了,手工构造太困难了,做4.6练习过程感觉中间太容易出错了(手动计算的情况)

4.6.8

4.6.9

index项集 
0S'->.S
S->.AS
S->.b
A->.SA
A->.a
 
1
0->S
S'->S.
A->S.A
A->.SA
A->.a
->$
accept
2
0->A
S->A.S
S->.AS
S->.b
A->.SA
A->.a
 
3
0->a
1->a
2->a
5->a
7->a
A->a. 
4
0->b
S->b. 
5
1->S
5->S
7->S
A->S.A
A->.SA
A->.a
 
6
1->A
5->A
7->A
A->SA. 
7
2->S
S->AS.
A->S.A
A->.SA
A->.a
 
8
2->A
8->A
S->A.S
S->.AS
S->.b
 
9
8->S
A->AS. 

FIRST(A)、FIRST(S)、FOLLOW(A)、FOLLOW(S)都是{a,b},7可能有冲突,因为当前状态输入a的情况下,不能确定按S->AS.规约还是移入a。

4.7 更强大的LR语法分析器

学习编译原理真是个痛并快乐的过程,网上说龙书翻译的还行,个人感觉也是如此,只是学习的时候如果希望从头读一遍就理解是不可能的,通常要看3-4次才能理解,而且每次阅读的时候都会有新的收获。

学习4.7.5的时候怎么都想不明白例4.64怎么得出的自发向前看符号,再回头看一遍4.7,并且手动构造下LR项集族,马上明白了。

学习这一节最重要的是理解4.7.2开头对于算法4.53的解释,明白了以后这一节基本也就没问题了

为理解4.7.5中算法执行过程,构造例4.6的规范LR项集族

index项集GOTO
0S`->.S    ,$
S->.L=R ,$
S->.R     ,$
L->.*R    ,=
L->.id     ,=
R->L      ,$
 
1  
2  
3  
4  
5  
6  
7  
8  
8  

4.7.1 FIRST(S) = {a}

S'->S

S->SS+

S->SS*

S->a

构造LR项集族如下


index项集GOTO
0S`->.S     , $
S->.SS+  ,a
S->.SS*   ,a
S->.a        ,a
 
1
0->S
S'->S.       ,$
S->S.S+   ,a/+
S->S.S*   ,a/*
S->.a        ,a/+/*
 
2
0->a
S->a.        ,a 
3
1->S
S->SS.+    ,a/+
S->SS.*     ,a/*
S->.A          ,a/+/*
 
4
1->a
S->a.          ,a/+/* 
5
3->+
S->SS+.     ,a/+ 
6
3->*
S->SS*.      ,a/* 
   

LALR项集族只需要将上面2/4合并即可

4.7.3 算法4.6.3前后看了至少5遍,稍微有了些理解

  INIT12
0S'->.S$$$
1S'->S.
S->S.S+
S->S.S*
aaa
2S->a.aaa
3S->SS.+
S->SS.*
 a/+/*a/+/*
4S->SS+.  a/+
5S->SS*.  a/*

4.7.4/4.7.5 类似例4.58



index项集GOTO
0S`->.S    ,$
S->.L=R ,$
S->.R     ,$
L->.*R    ,=
L->.id     ,=
R->L      ,$
 
1  
2  
3  
4  
5  
6  
7  
8  
8  
【编译原理】龙书第一章作业答案 【编译原理】龙书第一章作业答案 练习1.6.1 :对图1-13a中的块结构的C代码,指出赋给w、x、y和z的值 答案: w=13,x=11,y=13,z=11。可以把图中块结构看作块B1,第一个大括号内是块B2,第二个内是块B3。块B2有变量j的声明,因此w的定义中对j的使用被绑定到这个声明,没有i的声明,只能指向块B1中i的声明,同时B2重新定义该声明的i值为6,所以w=6+7=13。由于x在... 阅读详情

相关推荐

掌握编译原理:《龙书》及其随书资料深入解析

本文还有配套的精品资源,点击获取 简介:《编译原理技术和工具》(即“龙书”)是由Alfred V. Aho等计算机科学领域专家编写的权威教材,深入探讨了编译器的设计原理和技术。本书详细介绍了编译器的核心阶段,包括词法分析、语法分析、语义分析、优化和目标代码生成。随书资料包括练习题解答、源代码示例、教学课件和实验指导,旨在帮助读者通过实践加深对编译原理的理解,具备解决实际问题...

weixin_27645199的博客 1576

编译原理龙书第四章部分习题(编译原理作业三)

编译原理作业3 所有题目均为自己所写,觉得有用可以点个赞哟:-) 答案仅供参考,若有问题欢迎评论区讨论~ 文章目录编译原理作业34.2.14.2.24.2.34.2.54.4.14.4.44.6.54.6.64.7.24.7.5 4.2.1 考虑上下文无关文法:S ->SS+|SS|a,以及串aa + a 。 (1)给出这个串的一个最左推导。 (2)给出这个串...

LoveMQ_919的博客 2万+

编译原理 龙书答案

练习4.2.1:考虑上下文无关文法: S-> S S + | S S * | a 以及串aa+a*。 1) 给出这个串的一个最左推导。 解:S ---> SS* ---> SS + S ---> aS + S ---> aa + S ---> aa + a*

编译原理(龙书):第四章部分题目参考答案

目录 4.2.1 4.2.2 4.2.3 4.3.1 4.4.1 4.4.3 4.4.4 4.5.1 4.6.2 4.6.5 4.6.6 4.7.4 4.7.5 4.2.1 4.2.2 4.2.3 4.3.1 4.4.1 4.4.3 4.4.4 4.5.1 4.6.2 4.6.5 4.6.6 4.7.4 4.7.5 ...

乔卿的博客 2万+

编译原理-龙书-习题答案

编译原理-龙书-习题答案,word版。内容举例: 第二章部分习题答案 2.1 考虑文法 S→ S S + | S S * | a 证明文法可生成符号串 a a + a * 解:S→ S S * → S S + S * →a S + S * → a a + S *→ a a + a * 为此符号串构造语法树 解: 文法生成什么样的语言?证明结论 解:将a看作运算数,文法生成语言L={支持加法、乘法的表达式的后缀表示形式} 证明类似2.2题b) ===================================== 2.2 下列文法生成什么样的语言?证明你的结论。是否有二义性? S → 0 S 1 | 0 1 解:生成语言L={0n1n | n>=1} 证明:1) 证文法推导出的符号串都在L中 考虑最小语法树,推导出的符号串01显然∈L 假定结点数<n的语法树对应的符号串都∈L,考虑结点数=n的语法树S,其结构必为,子树S1结点数<n,因此对应符号串t1∈L,S对应符号串为t=0 t1 1,因此t∈L 综合i)、ii),1)得证

编译原理课后第四章答案

编译原理及实现第四章的课后答案 有详细的图文解说 简单易懂

《编译原理-龙书》练习第5章

这一章重要的是2个概念: SDD:语法制导定义,由一个上下文无关文法和属性及规则组成 SDT:语法制导翻译,是在其产生式体内嵌入了程序片段的一个上下文无关文法 5.1 语法制导定义 图5.5中计算过程比较复杂,看完5.2节求值顺序就会理解更多 5.1.1比较简单,就是自底向上语法树中加上 .val就行 5.1.2  5.2 SDD的求值顺序 5.2.1 保证下表中从左到右排就行

buck84的专栏 1万+

龙书第四章答案

编译原理经典著作之龙书,第四章答案。word格式,值得下载。

【编译原理】龙书第2版练习答案汇总

编译原理-龙书第2版练习答案汇总

weixin_62645763的博客 1万+

编译原理--龙书

目 录 译者序 前言 第1章 概论 1 1.1 为什么要用编译器 2 1.2 与编译器相关的程序 3 1.3 翻译步骤 5 1.4 编译器中的主要数据结构 8 1.5 编译器结构中的其他问题 10 1.6 自举与移植 12 1.7 TINY样本语言与编译器 14 1.7.1 TINY语言 15 1.7.2 TINY编译器 15 1.7.3 TM机 17 1.8 C-Minus:编译器项目的一种语言 18 练习 19 注意与参考 20 第2章 词法分析 21 2.1 扫描处理 21 2.2 正则表达式 23 2.2.1 正则表达式的定义 23 2.2.2 正则表达式的扩展 27 2.2.3 程序设计语言记号的正则表达式 29 2.3 有穷自动机 32 2.3.1 确定性有穷自动机的定义 32 2.3.2 先行、回溯和非确定性自动机 36 2.3.3 用代码实现有穷自动机 41 2.4 从正则表达式到DFA 45 2.4.1 从正则表达式到NFA 45 2.4.2 从NFA到DFA 48 2.4.3 利用子集构造模拟NFA 50 2.4.4 将DFA中的状态数最小化 51 2.5 TINY扫描程序的实现 52 2.5.1 为样本语言TINY实现一个扫描 程序 53 2.5.2 保留字与标识符 56 2.5.3 为标识符分配空间 57 2.6 利用Lex 自动生成扫描程序 57 2.6.1 正则表达式的Lex 约定 58 2.6.2 Lex输入文件的格式 59 2.6.3 使用Lex的TINY扫描程序 64 练习 65 编程练习 67 注意与参考 67 第3章 上下文无关文法及分析 69 3.1 分析过程 69 3.2 上下文无关文法 70 3.2.1 与正则表达式比较 70 3.2.2 上下文无关文法规则的说明 71 3.2.3 推导及由文法定义的语言 72 3.3 分析树与抽象语法树 77 3.3.1 分析树 77 3.3.2 抽象语法树 79 3.4 二义性 83 3.4.1 二义性文法 83 3.4.2 优先权和结合性 85 3.4.3 悬挂else问题 87 3.4.4 无关紧要的二义性 89 3.5 扩展的表示法:EBNF和语法图 89 3.5.1 EBNF表示法 89 3.5.2 语法图 91 3.6 上下文无关语言的形式特性 93 3.6.1 上下文无关语言的形式定义 93 3.6.2 文法规则和等式 94 3.6.3 乔姆斯基层次和作为上下文无关 规则的语法局限 95 3.7 TINY语言的语法 97 3.7.1 TINY的上下文无关文法 97 3.7.2 TINY编译器的语法树结构 98 练习 101 注意与参考 104 第4章 自顶向下的分析 105 4.1 使用递归下降分析算法进行自顶向下 的分析 105 4.1.1 递归下降分析的基本方法 105 4.1.2 重复和选择:使用EBNF 107 4.1.3 其他决定问题 112 4.2 LL(1)分析 113 4.2.1 LL(1)分析的基本方法 113 4.2.2 LL(1)分析与算法 114 4.2.3 消除左递归和提取左因子 117 4.2.4 在LL(1)分析中构造语法树 124 4.3 First集合和Follow集合 125 4.3.1 First 集合 125 4.3.2 Follow 集合 130 4.3.3 构造LL(1)分析表 134 4.3.4 再向前:LL(k)分析程序 135 4.4 TINY语言的递归下降分析程序 136 4.5 自顶向下分析程序中的错误校正 137 4.5.1 在递归下降分析程序中的错误 校正 138 4.5.2 在LL(1)分析程序中的错误校正 140 4.5.3 在TINY分析程序中的错误校正 141 练习 143 编程练习 146 注意与参考 148 第5章 自底向上的分析 150 5.1 自底向上分析概览 151 5.2 LR(0)项的有穷自动机与LR(0)分析 153 5.2.1 LR(0)项 153 5.2.2 项目的有穷自动机 154 5.2.3 LR(0)分析算法 157 5.3 SLR(1)分析 160 5.3.1 SLR(1)分析算法 160 5.3.2 用于分析冲突的消除二义性 规则 163 5.3.3 SLR(1)分析能力的局限性 164 5.3.4 SLR(k)文法 165 5.4 一般的LR(1)和LALR(1)分析 166 5.4.1 LR(1)项的有穷自动机 166

电子纸价签实战:基于SSD1680的墨水屏驱动开发与优化

本文详细介绍了基于SSD1680驱动芯片的电子纸价签开发实战,涵盖硬件连接、驱动框架搭建、核心流程解析及性能优化。重点剖析了初始化配置、波形文件加载、图像数据写入与刷新触发等关键步骤,并提供了功耗优化、显示效果提升及代码健壮性等实用避坑指南,帮助开发者高效实现稳定低功耗的墨水屏驱动。

weixin_28278377的博客 228

【免费下载】 龙书 编译原理第二版 资源下载

龙书 编译原理第二版 资源下载 【下载地址】龙书编译原理第二版资源下载 本仓库提供《龙书 编译原理第二版》的相关资源下载。龙书是由Alfred V. Aho等人于1986年出版的经典编译原理教材。尽管出版年代较早,其中包含了一些过时的技术,但仍然是学习编译原理的重要参考资料。新编的《编译原理》第二版在保留经典内容的基础上...

gitblog_09812的博客 1096

重磅!Repo Wiki!

RepoWiki是Qoder平台的智能文档生成功能,通过静态代码分析自动提取项目架构、模块依赖和核心逻辑,并持续追踪代码变更保持文档同步。其工作流程分为四个阶段:1)代码扫描与AST解析;2)结构分析与依赖映射;3)文档智能生成;4)增量更新机制。支持多种编程语言,能识别设计模式并推断技术决策,适用于新项目搭建和遗留系统维护。优势在于降低理解成本和提高开发效率,但存在文件数量限制和依赖Git的局限性。典型应用场景包括自动生成架构图、API手册和团队知识沉淀。

ayusong870的博客 4023

《编译原理-龙书》练习第3章

3.1 词法分析器的作用 3.1.1          float     limitedSquare     (      x     )     {     float     x     ;      return     (     x     =     10.0     )     ?     100     :     x     *     x     ;      } 除

buck84的专栏 1万+

content-pipeline:一条可落地的内容生产流水线

content-pipeline 是一种将内容创作工程化的系统性方法,其核心在于用确定性流程替代碎片化人工操作。它基于结构化提示(prompt)、预置叙事框架与品牌参数固化三大原理,实现从素材输入到多平台发布的端到端自动化。技术价值体现在显著降低认知负荷、保障输出一致性、支持本地化资源绑定与闭环反馈校验。典型应用场景包括技术教程批量生成、跨平台(公众号/小红书/即刻)内容适配、AI写作质量可控迭代等。本文深入解析其作为‘内容制造业’基础设施的底层设计逻辑与实操路径,尤其聚焦Claude Code环境下的真实

weixin_31199559的博客 269

第二次 PX4仿真环境搭建过程全记录

参考链接 https://blog.csdn.net/yanwumuxi/article/details/80097294 https://www.ncnynl.com/archives/201709/2013.html 一、安装依赖项 我们使用Debian / Ubuntu LTS 作为Linux的标准支持版本,但是也支持Cent OS 和 Arch Linux的发行版本。 权限设置 警告:永远...

移步换景的博客 2261

《编译原理-龙书》练习第6章

f 6.1 语法树的变体 6.1.1 xy+-*/的表达式在纸上构造DAG是比较容易的,如果用LL或LR文法构造,则如第4章,需要先建表,然后分析。 6.1.2 类似6.1.1 6.2 三地址代码 6.2.1 a + -(b+c) 三地址代码 t1 = b + c t2 = minus t1 t3 = a + b2 四元式 op arg1 arg2 re

buck84的专栏 8179

【立创开源】太阳能板充电方案单节3.7v锂电池充电

一直对太阳能板感兴趣,老是感觉充电好麻烦,要是放在那里就可以自己充电多好,所以尝试做了一个太阳能充电板。因为这几天都是阴天,所以测试效果不太好,但是下雨天也是能充电的,但是基本只能维持电量不掉,电压差不多4.2v以上,电流只有2mA。中午出太阳的时候,隔着玻璃放在太阳下测试,电流有12mA以上。能充起一点点电。等大晴天看一看能不能达到卖家说50mA。┗( T﹏T )┛感觉达不到。这个东西只能当一个玩具(;′⌒`)。不过如果汽车上一些行车记录仪加一个这个,汽车经常在太阳下停车,可能再也不用充电了。

贾saisai的博客 1万+

《编译原理-龙书》练习第2章

第2章 一个简单的语法制导翻译器 2.2 语法定义 主要描述了“上下文无关文法” 2.2.1  1) S1 = aa+ S2 = S1a* 2)              *           + a  a        a 3)该文法生成的语言是由+和*组成的后缀表达式,怎么证明呢? 2.2.2 同不懂怎么证明 1)前面n个0后面n个1组成的串 2)+/-组成

buck84的专栏 5547

Allegro16.6详细教程(二)

3-D Viewer,可以直接在allegro中看到board file的3-D顯示效果。3-D Viewer對於PCB Editor Products,只有環境變數中的OpenGL顯示功能開啟後才有效,而對於APD/SiP是無效的。2.3-D viewer是在一個獨立的視窗中打開的。3-D environment環境支援多種顯示內容的過濾,取景視角和顯示效果的選項,透過遊標可以直接控制放大,移動,翻轉等操作。

axingxiansen的博客 1917

基于 STM32 的便携式肌电信号采集与疲劳度评估系统设计与实现

本系统以 STM32 单片机为核心控制器,通过肌电电极采集人体骨骼肌表面的 sEMG 信号,经仪表放大、滤波、AD 采样后送入 MCU 进行时域 / 频域特征提取,利用 RMS(均方根)、MPF(中位频率)、MF(平均频率)等指标实时评估肌肉疲劳状态,最终通过 OLED 显示疲劳等级,并支持蓝牙上传至上位机。

weixin_42300449的博客 105

编译原理三大经典书籍(龙书 虎书 鲸书)

1、龙书(Dragon book) 英文名:Compilers: Principles,Techniques,and Tools 作者:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman 中文名:编译原理技术和工具 第一版龙书 第二版龙书 龙书”。龙书是Alfred V. Aho等人于1986年出版的,由于出版年代较早,其中包含部分过...

lengye7的博客 3778

PyTorch生成式人工智能(7)——生成对抗网络(Generative Adversarial Network, GAN)实践详解

生成对抗网络 (Generative Adversarial Network, GAN) 最早由 Ian Goodfellow 于 2014 年提出,其中生成器试图创建与真实样本无法区分的数据样本,而判别器则试图区分生成器生成的样本与真实样本。在本节中,我们将介绍 GAN 的理论基础。然后,介绍如何使用 PyTorch 从零开始构建 GAN,以便了解所有细节,深入理解 GAN 的内部工作原理,为后续讨论 GAN 的其他更高级内容奠定基础,比如生成高分辨率图像或逼真的音乐。

盼小辉丶的博客 1万+

【亲测免费】 《编译原理》(龙书)部分答案:学习编译原理的得力助手

《编译原理》(龙书)部分答案:学习编译原理的得力助手 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 《编译原理》(龙书)作为计算机科学领域的经典教材,一直是学习编译原理的首选书籍。然而,对于许多初学者来说,书中的课后习题往往是一个不小的挑战。为了帮助广大学习者更好地理解和掌握编译原理的相关知识,本开源项目特别提供了《编译原理》(龙书)前9章的部分课后习题答案。这些答案...

gitblog_09728的博客 991

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

龙书《编译原理练习答案》第二版资源下载

龙书《编译原理练习答案》第二版资源下载 去发现同类优质开源项目:https://gitcode.com/ 简介 本资源库提供了《编译原理》教材(第二版,俗称“龙书”)的习题答案,以及书中lexer(词法分析器)的源代码。此资源旨在帮助读者更好地理解和掌握编译原理相关知识。 内容说明 习题答案:包含了教材中的习题答案,但请注意,第9、10和11章的答案并未包含在内。 lexer源码:提供了书中提及...

gitblog_06713的博客 476

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 《编译原理-龙书》练习第3章
下一篇: windows常用工具
buck
博客等级 码龄14年 185粉丝 127原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值