摘要: 词法单元的规约: 串和语言: 字母表:一个有限的符号集合,符号的典型例子包括字母、数位和标点符号 串:字母表中符号的一个有穷序列 串s的前缀:从s的尾部删除0个或多个符号得到的串 串s的后缀:从s的开始处删除0个或多个符号后得到的串 串s的子串:删除s的某个前缀和某个后缀之后得到的串 串s的真前缀: 阅读全文
posted @ 2020-03-11 17:47 方知有 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 输入缓冲: 加快源程序读入速度 缓冲区对: 减少用于处理单个输入字符的时间开销 lexemeBegin指针:该指针指向当前词素的开始处,当前正试图确定这个词素的结尾;确定一个词素后,lexemeBegin指针指向该词素之后的第一个字符 forward指针:一直向前扫描,直到发现某个模式被匹配为止,并 阅读全文
posted @ 2020-03-11 16:10 方知有 阅读(704) 评论(0) 推荐(0) 编辑
摘要: 词法分析器: 作用: 与符号表进行交互,存储和读取符号表中的标识符的信息 读入源程序的输入字符,将他们组成词素,生成并输出一个词法单元序列,每个词法单元序列对应一个于一个词素 过滤掉程序中的注释和空白 将编译器生成的错误消息与源程序的位置联系起 相关概念: 词法单元:由一个词法单元名和一个可选的属性 阅读全文
posted @ 2020-03-11 15:36 方知有 阅读(1551) 评论(0) 推荐(0) 编辑
摘要: 生成中间代码: 两种中间表示形式: 树形结构:语法分析树、抽象语法树 抽象语法树的构造: 可以为任意的构造创建抽象语法树,每个构造用一个结点表示,其子结点代表此构造中具有语义含义的组成部分 在语法分析过程中,将创建抽象语法树的结点来表示有意义的程序构造,随着分析的进行,信息以与结点相关的属性的形式被 阅读全文
posted @ 2020-03-11 12:11 方知有 阅读(756) 评论(0) 推荐(0) 编辑
摘要: 符号表: 定义:是一种供编译器用于保存有关源程序构造的各种信息的数据结构 用途:在综合阶段用于生成目标代码 存储信息:符号表的每个条目中包含与一个标识符相关的信息,比如它的字符串、类型、存储位置等 构建: 符号表条目是在分析阶段由词法分析器、语法分析器和语义分析器创建并使用的 一个声明的作用域是指该 阅读全文
posted @ 2020-03-10 23:16 方知有 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 简单表达式的翻译器: 将算术表达式翻译成为等价的后缀表达式 调整翻译方案: 非终结符的过程: 翻译器的简化: 消除尾递归: 尾递归:一个过程体中执行的最后一条语句是对该过程的递归调用的递归 完整程序: 例: 参考——《编译原理(第二版)》 阅读全文
posted @ 2020-03-10 22:18 方知有 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 先用字符串数组存储输入数字,然后依据num[i]-'0'对输入数字求和。然后对求和后的数字,进行分割,存储到数组中,然后遍历数组,依据存储汉语拼音的字符串二维数组进行输出 注意点: 注意输出末尾不能有空格 代码: 1 #include<iostream> 2 #include<std 阅读全文
posted @ 2020-03-08 23:35 方知有 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 构建校验码的映射表,使用字符串数组存储输入号码。对字符串数组进行遍历,并利用num[i]-'0'进行运算和判断是否符合题目条件(前17位不出现字母),对求和结果进行取模并由映射表进行判断,依据前述的各种判断,输出结果 注意点: 利用数组存储输入数字,存储权重;利用映射表存储校验码对应 阅读全文
posted @ 2020-03-08 22:17 方知有 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 由题得知输入得正整数位数很大,故超出C++整型的范围,于是使用字符串数组进行存储。另外使用一个数组对输入数字的个位数字进行统计,然后进行输出 注意点: 字符串数组中,每个位置存储的元素的类型为char类型,故利用ASCLL码获取其在C++中的整型数字,res[num[i]-'0']+ 阅读全文
posted @ 2020-03-08 21:28 方知有 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4 输入格式: 每个测试输入包含 1 阅读全文
posted @ 2020-03-08 20:50 方知有 阅读(186) 评论(0) 推荐(0) 编辑