美文网首页
【编译原理】讨论

【编译原理】讨论

作者: 乐音X | 来源:发表于2021-03-08 20:10 被阅读0次

第一讲 【绪论】

【讨论1-1】编译过程与人工翻译过程之间的关系两者存在一定的对应关系。

编译的过程与人工翻译自然语言的过程存在着什么样的对应关系?

例如,人工翻译在进行的时候先会分析源语言的语义,获取语义(以抽象的概念存储在翻译者的脑中)后,再用目标语言表达出来,就此完成翻译。

而在编译的过程中,编译器也是先通过词法分析、语法分析、语义分析获取句子的语义,以中间形式表示(如三地址码或语法树),再从中间形式生成目标代码。

可见,这两个过程存在很大的相似性。

【讨论1-2】符号表中NAME字段的设计

符号表中NAME字段为什么要设计字符串表这样一种数据结构,而不是把标识符对应的字符串直接存放到name字段中?

类比数据库设计的知识,两者存在一定的相似性。

不同标识符的NAME字段长度往往不同,如果以变长存储,就会使得符号表的查询效率降低,增大符号表管理的难度;

而若是以定长存储,很显然必须为该字段按照最大长度分配空间,而造成空间的严重浪费。

因此,只在NAME字段里面存储类似指针功能的定长字段,既能节省空间,又不会显著影响查询效率,是一种较好的设计思路。

第二讲 【语言及其文法】

【讨论2-1】计算机中是如何表示语言的?

计算机中是如何表示语言的?

计算机中的语言以编码形式存储,常见的有ascii码、utf码、gbk码,通过将各种字符串编码为16进制字符串存储,在底层以二进制方式存储在存储设备上。

【讨论2-2】每一类单词可否看成一种语言?

每一类单词可否看成一种语言?

语言的形式化定义为:由文法G的开始符号S推导出的所有句子构成的集合,称为文法G生成的语言。那么,只要存在相应的文法,每一类单词当然可以看成是一种语言。

那么是否存在这样的语言呢?乍看之下合法单词的生成好像很难有形式化的定义,但是实际上单词的数目是有限的,那么我们可以通过穷举来定义满足要求的文法:将所有的某一类的单词都定义为终结符,开始符号S作为生成式的左端,右端是这些终结符通过或符号“|”连接。这样,我们的文法就定义好了。

因此,这个问题的回答应该是肯定的。

相关文章

  • 【编译原理】讨论

    第一讲 【绪论】 【讨论1-1】编译过程与人工翻译过程之间的关系两者存在一定的对应关系。编译的过程与人工翻译自然语...

  • 基础回顾之C编译过程及预处理器

    编译过程 如果需要弄清整个编译过程,那还得好好复习下编译原理。这里只是通过一个小例子讨论大致过程。 准备好一个he...

  • 编译原理

    编译原理 标签(空格分隔): 编译原理 编译和解释 编译 整个程序全部翻译结束之后,程序才能开始运行;编译和运行是...

  • 《你不知道的JavaScript(上)-作用域和闭包》学习笔记

    1.编译原理: (1)编译器、作用域、引擎 编译器会忽略重复声明 编译原理(p7): 例如:var a=2,编译器...

  • 《深入解析Hello,World》 :第三章 java源代码是怎

    javac实现原理 编译器原理

  • 编译原理总结提炼

    一、前言 编译原理是大学一门计算机基础课程,学习了编译原理并不意味着可以写出一个编译器,但学习编译原理可以给我们程...

  • JavaScript的工作原理:解析、抽象语法树(AST)+ 提

    摘要: JS的"编译原理"。 原文:JavaScript的工作原理:解析、抽象语法树(AST)+ 提升编译速度5个...

  • 编译原理

    编译执行和解释执行的区别把计算机高级语言编写的程序(源程序)翻译成该计算机的汇编语言或机器语言书写的程序(目标程序...

  • 编译原理

    编译原理领域,龙书就是THE BOOK

  • 编译原理

    ·1#第一章 编译程序概论 学习目标 编译的各个阶段 编译程序的概念 解释器,编译程序的结构和组合 编译程序的概念...

网友评论

      本文标题:【编译原理】讨论

      本文链接:https://www.haomeiwen.com/subject/aslmqltx.html