I love you to the moon and back

7 LLVM-IR

7 LLVM-IR

在之前 LLVM 是 Low-Level Virtual Machine 的缩写,然后发展到现在,已经脱离的虚拟机的概念,因此 LLVM 不再是缩写,而是这个项目就叫 LLVM。

LLVM 不是一个编译器,而是编译器的基础设施,当写一个编译器时,可以在 LLVM 上进行开发,而不是从头开始。

image-20221222200155928

阅读更多>>

6.2 语义分析——属性文法

6.2 语义分析——属性文法

形式文法描述形式语言的基本想法是,从一个特殊的初始符号出发,不断的应用一些产生式规则,从而生成出一个字串的集合。产生式规则指定了某些符号组合如何被另外一些符号组合替换。

所有的文法分成四种类型:无限制文法上下文相关文法上下文无关文法和**正规文法**

对于规则 V->w,上下文无关文法取名为“上下文无关”的原因就是因为字符 V 总可以被字串 w 自由替换,而无需考虑字符 V 出现的上下文。一个形式语言是上下文无关的,如果它是由上下文无关文法生成的。

上下文无关文法重要的原因在于它们拥有足够强的表达力来表示大多数程序设计语言的语法;实际上,几乎所有程序设计语言都是通过上下文无关文法来定义的。另一方面,上下文无关文法又足够简单,使得我们可以构造有效的分析算法来检验一个给定字串是否是由某个上下文无关文法产生的。例子可以参见LR 分析器和LL 分析器。

属性文法:为上下文无关文法赋予语义

阅读更多>>

8 LLVM-IR-(表达式的翻译与控制流的翻译)

8 LLVM-IR-(表达式的翻译与控制流的翻译)

父节点需要为子节点传递跳转指令的目标标签,以继承属性的形式传递给子节点

如上面的例子中,B 是条件语句需要生成跳转指令,但 B 不知道该跳转到什么标签,如果 B 是 true,应该跳转到 S1 标签,而 S1 是 S 才知道的,因此由 S 传递给 B;如果 B 是 false,那么应该跳转到 S 后面的语句的标签,但 S 也不知道到底是什么标签,但 P 知道,因此需要由 p 传递给 B。

阅读更多>>

需求部分期末复习

需求部分期末复习

参考自 zhy 的博客2020-需求与商业模式分析-Exam-需求 - SpriCoder的博客

1. 需求工程导论

  1. 需求工程:

    1. 基本活动:
      1. 需求获取
      2. 需求分析:目标、功能和约束映射为软件行为,建立系统模型
      3. 需求规约:以文档的方式固化下来。
      4. 需求验证
        1. 保证需求及文档的正确性
        2. 通过检查和修正,保持文档的完整性和一致性
        3. 所有涉众一致同意
      5. 需求管理:管理建立的基线
阅读更多>>
  • Copyrights © 2022-2024 zzb
  • RZ
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信