单选题 (4分)

令文法G[E]为:E->E+T | T     

                       T->T*F | F

                        F-> (E) | i

句型 F*i+T 的最左素短语是( )

A.F

B.i

C.T

D.F*i

B

短语:

F*i+T、F*i、F、i

素短语:

i

最左素短语:

i

单选题 (4分)

若在C语言程序中出现“aa 11 bb=123;”,且不出现在引号和注释里,在编译时会

A.语法分析时报错

B.语义分析时报错

C.生成中间代码时报错

D.语法分析时报错

D

单选题 (4分)

活动记录中静态链的作用是(  )

A.用以实现对非局部名字的访问

B.用来指向静态数据区

C.表明过程的嵌套层次

D.建立本过程和主调过程间的联系

A


嵌套过程语言的程序,内层过程引用非局部量可通过(B )跟踪外层过程最新活动记录的位置

A 老SP B 静态链C Previous链 D 全局display


静态链的作用是(A)

A.存放过程的直接外层过程最新活动记录的地址,用以访问局部数据

B.存放主调过程最新活动记录的地址,用以建立主被调的联系

C.存放代码的返回地址,用以返回主调程序

D.存放静态数据区的地址,用以访问静态数据

表达式(A + B) * (- C - D) 的逆波兰式是:

A.ABCD+*--

B.AB+CD--*

C.AB+C-D-*

D.AB+-CD-*

C

如果某种程序设计语言设计的程序,其所需数据空间的总量在编译时是完全确定了的,则最好采用以下哪种存储分配策略

A.堆式分配策略

B.栈式分配策略

C.静态分配策略

D.以上都有

C

下面哪种不是自底向上的语法分析文法(  )。

A.LR(1)

B.SLR(1)

C.LL(K)

D.算符优先法

C

若一个文法是递归的,则它产生的句子个数是()

A.无穷个

B.可能有限个,可能无穷个

C.有限个

A

以下关于DFA描述错误的是(   )

A.初态唯一

B.终态唯一

C.转态转换函数是单值映射

D.不含标记有空串的转换弧

B

下面关于编译方式与解释方式描述有误的是(  )

A.编译方式是先翻译后执行

B.解释方式是边翻译边执行

C.在解释方式下,程序运行时解释器掌握控制权

D.解释方式优于编译方式

D

令文法G[E]为:E->E+T| T

         T->T*F| F

         F->(E) | i

E+F*(T+i)文法G的一个规范句型,指出这个规范句型的句柄是(   )

A.i

B.T

C.T+i

D.F

D

LR分析器的核心部分是一张分析表,这张表包括(  )

A.预测分析表、转态转换表

B.优先关系矩阵、动作表

C.动作表、状态转换表

D.内情向量表、符号表

C

局部优化是在什么范围内进行的优化?

A.过程体

B.函数体

C.基本块

D.循环体

C

如果文法无二义性,则与规范归约互为逆过程的是(  )

A.最右归约

B.最左归约

C.规范推到

D.最左推导

C

在C语言中,不同过程中的变量名可以相同,这些相同的变量名在符号表中存入同一符号表入口。

递归文法的语言是无穷集,程序设计语言的文法通常是递归的

中间代码优化的目的是生成更有效的目标代码,为了追求高效的目标代码,优化应不计代价。

“遍”是对源程序或源程序的中间结果从头到尾扫描一次,并做有关加工处理,生成新的中间结果或目标程序。一个编译程序所分遍数越多越好。

只能用机器语言编写编译程序

过程的活动指该过程的一次执行,在任一时刻,一个过程只可能有一个活动活跃着。( )

如果文法中的某个句型,存在不同的推导序列,则该文法就是二义性文法

反例:存在非二义性文法,其某些 句型 有多个推导序列,但所有 句子 只有一个推导树。

S → A b | B c
A → a
B → a

  • 句型 S 的推导序列

    • 序列 1:S ⇒ A b

    • 序列 2:S ⇒ B c

    • 句型 S 有两个不同的推导序列。

  • 句子分析

    • 句子 a b 的唯一推导:S ⇒ A b ⇒ a b

    • 句子 a c 的唯一推导:S ⇒ B c ⇒ a c

    • 所有句子(如 a ba c)都只有唯一语法树,因此文法 非二义性


句型和句子

句子:仅含终结符的句型

二义性文法的正确定义

  • 一个文法是二义性的,当且仅当存在 至少一个句子(即终结符串),该句子对应:

    • 两个或更多不同的 最左推导(或等价地,两个或更多不同的 最右推导),或

    • 两个或更多不同的 语法树

  • 关键点:二义性必须针对 句子(终结符串) 定义,而不是针对一般的句型(可能包含非终结符)。

现有文法G[S]: S—>a |b | (T)

                          T —>S T’

                          T’->*ST’|ɛ

则FOLLOW(S)为:( )

A.{#}

B.{#,)}

C.{#,*,)}

D.{*,)}

C

FIRST(S)={a,b,(}

FIRST(T)=FIRST(S)={a,b,(}

FIRST(T')={*,\varepsilon}

FOLLOW(S)={#}\cup FIRST(T')-\varepsilon \cup FOLLOW(T)={#,*,)}

FOLLOW(T)={)}

FOLLOW(T')=FOLLOW(T)={)}

非终结符FOLLOW 集关键步骤说明
S{#,∗,)}

1. 开始符号加入 #  [1]
2. T→ST′加入 *   [3] FIRST(T')-\varepsilon


3.  T→ST′,T′⇒∗ε 时加入 FOLLOW(T)={)} [4]

T{)}S→(T) 直接加入 )  [2]
T′{)}

T→ST′ 末尾加入 FOLLOW(T)={)}   [4]

T’推导出 ε 时,产生式T→ST’等价于T→S(即T’“隐身”)。此时,ST中的位置相当于直接处于T的末尾,因此S后面的符号(即FOLLOW(T))会直接成为T’后面的符号。
换句话说,T’作为可空后缀,其后面的符号本质上就是T后面的符号,因此FOLLOW(T')FOLLOW(T)相同。

空符号串在语法分析中对后继符号集的传递作用

间接三元式表示法的特点为(  )。

A.采用间接码表,便于优化处理

B.节省存储空间,不便于表的修改

C.便于优化处理,浪费存储空间

D.节省存储空间,不便于优化处理

A

四元式(Quadruples)

  • 结构:包含四个字段 (运算符, 运算对象1, 运算对象2, 结果)
  • 特点
    • 每个四元式独立存储运算信息,便于代码优化(如删除无用代码、重新安排计算顺序)。
    • 需要显式存储临时变量(结果字段),可能导致存储空间浪费。
  • 对应选项
    C. 便于优化处理,浪费存储空间

三元式(Triples)

  • 结构:通过运算对象的位置(编号)引用操作数,不单独存储临时变量,而是通过 “对三元式的引用” 表示中间结果。
  • 特点
    • 无需显式存储临时变量,节省存储空间。
    • 若需调整计算顺序(如优化时),可能需要大量修改三元式编号的引用,不便于优化。
  • 对应选项
    D. 节省存储空间,不便于优化处理

间接三元式(Indirect Triples)

  • 结构:在三元式基础上增加一个 “执行顺序表”(间接码表),通过该表记录三元式的执行顺序,而非直接修改三元式本身。
  • 特点
    • 优化时只需调整间接码表,无需修改三元式,便于优化处理。
    • 需额外维护间接码表,增加了实现复杂度。
  • 对应选项
    A. 采用间接码表,便于优化处理

正规表达式与正规文法是不同的形式化描述工具,它们之间不存在等价性。

不是所有句型都有规范推导

面向人类语言的特点是程序执行效率低,编制效率低,可读性差

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/86597.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/86597.shtml
英文地址,请注明出处:http://en.pswp.cn/web/86597.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个简单测试Deepseek吞吐量的脚本,国内环境可跑

一个简单测试Deepseek吞吐量的脚本,这里用DeepSeek-R1-Distill-Qwen-32B ,支持单卡4090 24G可跑,具体看你的硬件情况做调整,理论支持所有的模型,看你需要,可以修改模型名称,重点是pip使用国内的源,模型下载用阿里的ModelScope,无障碍下载,使用. 最后可以生成一个txt与html报表.…

前端基础知识JavaScript系列 - 19(正则表达式)

一、是什么 正则表达式是一种用来匹配字符串的强有力的武器 它的设计思想是用一种描述性的语言定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的 在 JavaScript中,正则表达式也…

Java锁机制知识点

一、锁的基础概念 1.1 什么是锁 在并发编程中,锁是用于控制多个线程对共享资源进行访问的机制。锁可以保证在同一时刻最多只有一个线程访问共享资源,从而保证数据的一致性。 1.2 锁的分类 可重入锁 vs 不可重入锁:可重入锁允许同一个线程…

2025下半年软考软件设计师(中级)怎么高效备考,目标是稳过线!

25下半年软考开始进入备考阶段,现在咱们就抛开那些文绉绉的官话,用大白话来聊聊2025下半年软考软件设计师(中级)怎么高效备考,目标是稳过线! 核心思想:抓大放小,真题为王&#xff0…

Jupyter常见操作(持续更新)

Jupyter常见操作(持续更新) 本文主要整理一些常见的或者比较简单的Jupyter操作,尽量保证一次性整理出来,方便需要但是忘记的情况下可以直接查,希望能当字典。 1.查看Jupyter内核 jupyter kernelspec list 2.使用指定…

连点成画面积计算算法

连点成画面积计算算法 问题分析与算法设计 1. 问题特征分析 闭合多边形(起点和终点相同)线段可能交叉形成复杂形状需要处理自交多边形可能有多个内部空洞点数较多(≥50个点),需要高效算法2. 解决方案选择 采用平面扫描算法结合多边形布尔运算来准确计算最外层边界包围的…

华为云Flexus+DeepSeek征文 | 华为云MaaS平台上的智能客服Agent开发:多渠道融合应用案例

华为云FlexusDeepSeek征文 | 华为云MaaS平台上的智能客服Agent开发:多渠道融合应用案例 🌟 嗨,我是IRpickstars! 🌌 总有一行代码,能点亮万千星辰。 🔍 在技术的宇宙中,我愿做永不…

03.BUG

Bug 1.软件测试的生命周期2. BUG2.1 表述BUG的要素2.2 BUG级别2.3 BUG的声命周期 1.软件测试的生命周期 ​ 软件测试贯穿于软件的整个生命周期:软件测试的生命周期(Software Testing Life Cycle, STLC),是指测试流程,这个流程是按…

【数据标注师】问答标注

目录 一、 **问答标注的认知底层架构**1. **三维评估体系**2. **四类问题处理范式** 二、 **五阶能力培养体系**▶ **阶段1:问题解析能力筑基(2周)**▶ **阶段2:答案质量评估训练**▶ **阶段3:复杂场景处理**▶ **阶段…

使用DBeaver 连接mysql,使用存储过程插入5万条数据

使用DBeaver连接MySQL并创建存储过程生成5万条数据 连接MySQL数据库 打开DBeaver,点击"数据库"菜单选择"新建连接",选择MySQL驱动。填写主机、端口、数据库名称、用户名和密码等信息,测试连接成功后保存。 创建测试表…

某省赛题-windows内存取证

1.获取admin用户密码是多少? 这里我们使用hashdump之后用john爆破没有结果,然后使用lsadump出来了flag 2.获取ip和主机名是什么? 主机名: 看注册表 SAM:记录了所有的用户 SYSTEM:可以看主机名 SOFTWARE&a…

【软考高项论文】论信息系统项目的成本管理

摘要 在信息系统项目管理里,成本管理是极为关键的环节,直接影响项目的顺利开展与最终成败。本文结合项目管理实际情况,从项目成本基准的形成过程、项目S曲线的绘制以及成本控制的具体实施三个方面,详细阐述了对信息系统项目成本管…

AI人工智能技术应用于人社服务领域的创新研究报告

AI 人工智能技术应用于人社服务领域的创新研究报告 一、研究背景与市场概况 1.1 研究背景与政策环境 人工智能技术正深刻改变政府治理模式和公共服务方式。在国家全面推进数字化转型的战略背景下,人社部《数字人社建设行动实施方案》明确提出:到 2025 年,人社数字化底座…

javaEE-mybatis操作数据库

前言 在MySQL的学习阶段,我们知道了如何使用JDBC去操作,也正是因为学习了JDBC也知道其操作的繁琐,每次的CRUD操作都需要从数据库连接池中去获取数据库连接,然后再编写SQL语句,并绑定对应的参数,接着通过连…

移动端测试——如何解决iOS端无法打开弹窗式网页(Webkit)

目录 一、什么是webkit? 1. 核心定义 2. iOS 的特殊限制 3. 弹窗拦截的逻辑 二、为什么 iOS 必须用 WebKit? 1. 苹果的官方理由 2. 实际后果 3.然而…… 三、如何解决iOS端无法打开弹窗式网页? 1.用户 1.1 safari浏览器 1.2 夸克…

【github】从本地更新仓库里的文件笔记

1. 打开GitHub官网,并登录到您的账户。 2. 在页面右上角的搜索栏中,输入您要更新的仓库名称,并选择相应的仓库进入。 3. 在仓库页面中,找到并点击红色的“Code”按钮,然后复制仓库的HTTPS或者SSH链接。 4. 右键包含…

Excel基础:数据编辑

Excel是Windows下最常用的数据处理工具,本文详细介绍Excel的数据编辑功能,熟练掌握编辑技巧能可以极大提升工作效率,文章最后附加了一张总结思维导图,方便大家查找和记忆。 文章目录 一、数据输入1.1 覆盖输入1.2 追加输入1.3 任…

JavaScript中Object()的解析与应用

在JavaScript中,Object() 是一个基础构造函数,用于创建对象或转换值为对象类型。它既是语言的核心组成部分,也提供了一系列静态方法用于对象操作。以下是详细解析和应用示例: 一、Object() 的基本行为 作为构造函数(…

stream使用案例

1.1 查找所有的偶数并求和 public static void p1() { List<Integer> numbers Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); int sum numbers.stream() .filter(num -> num % 2 0) .mapToInt(Integer::intValue) .sum() ; System.err.printf…

力扣 刷题(第七十一天)

灵感来源 - 保持更新&#xff0c;努力学习 - python脚本学习 4的幂 解题思路 位运算条件&#xff1a;4 的幂的二进制表示中只有一个 1&#xff0c;且位于奇数位&#xff08;如 4 100&#xff0c;4 10000&#xff09;。模运算条件&#xff1a;4 的幂减 1 后能被 3 整除&…