程计软考题2-编译、解释程序翻译阶段

news2024/11/17 19:31:28

(一) 编译器和解释器的工作阶段

1.编译和解释与源程序的区别

在这里插入图片描述

分析:编译和解释是语言处理的两种基本方式。
编译过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等阶段,以及符号表管理和出错处理模块。
解释过程在词法、语法和语义分析方面与编译程序的工作原理基本相同,但是在运行用户程序时,它直接执行源程序或源程序的内部形式。

这两种语言处理程序的根本区别是:
在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;
而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。解释器翻译源程序时不产生独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。

2.

在这里插入图片描述

>编译器、解释器的词法分析、语法分析、语义分析三阶段不能少,顺序也不能变

3.

在这里插入图片描述

4.

在这里插入图片描述

(二)符号表

题1

在这里插入图片描述
编译过程中,对高级语言程序语句的翻译主要考虑声明语句和可执行语句。对声明语局则是主要是将所需要的信息正确地填入合理组织的符号表中;对可执行语句,则是翻译成中间代码或目标代码。

题2

在这里插入图片描述

题3

在这里插入图片描述

(三)编译器的工作阶段

题0-词法语法语义

在这里插入图片描述

题1 词法分析

1.词法分析-字符

在这里插入图片描述

2.词法分析-括号不匹配

在这里插入图片描述

词法分析:扫描字符,识别单词  

题2-语法与语义具体情况区别

在这里插入图片描述

题3-语义分析

1.语义检测-变量是否定义、类型检查

在这里插入图片描述
在这里插入图片描述

2.语义分析只能发现静态语义错误

在这里插入图片描述

语义分析是指可以发现静态语义的错误,所以不是程序的所有错误,程序运行时错误发现不了,C错

题4-语法分析

1.

在这里插入图片描述

语句的结构、语句的形式=语法分析

2.

在这里插入图片描述

3.

在这里插入图片描述

4.

在这里插入图片描述

题5-目标代码的生成

在这里插入图片描述

题6-中间代码

1.中间代码的好处

在这里插入图片描述

可以将不同的高级程序语言翻译成同一种中间代码

在这里插入图片描述
在这里插入图片描述

2.中间代码的形式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(四)动态语义错误

题1未赋初值的变量可以通过编译并运行

在这里插入图片描述

题2-编译成功的程序不包含语法错误

在这里插入图片描述

题3-分母为0为动态语义错误

在这里插入图片描述

题4-死循环为动态语义错误

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nuxt.js 应用中的 app:rendered 钩子详解

title: Nuxt.js 应用中的 app:rendered 钩子详解 date: 2024/10/2 updated: 2024/10/2 author: cmdragon excerpt: 摘要:本文详细介绍了 Nuxt.js 应用程序中的 app:rendered 钩子,包括其定义、调用时机、上下文信息以及通过实际案例展示如何记录性能和发送日志到服务器。 …

基于大数据的大屏高速公路收费系统的开发设计与实现SpringBoot+vue

目录 1. 需求分析 2. 技术选型 3. 系统架构设计 4. 开发实现 5. 代码示例和效果演示 6. 持续优化 由于我国高速公路的建设和发展与国外先进国家有很大差距。在高速公路建成后,收费系统往往选用国外的成熟产品。虽然这些产品在功能上基本满足了高速公路收费的要…

如何用JavaScript编写一个简单的计数器

在网页开发中,计数器是一种常见的功能,它可以帮助我们记录点击次数、显示时间等。下面我将介绍如何在HTML页面中使用JavaScript实现一个基本的计数器。如图: 1、 创建HTML结构 首先,我们需要创建一个基础的HTML结构来容纳我们的计…

影视cms泛目录用什么程序?苹果cms二次开发泛目录插件

影视CMS泛目录一般使用的程序有很多种,(maccmscn)以下是其中几种常见的程序: WordPress:WordPress是一个非常流行的开源内容管理系统,可以通过安装一些插件来实现影视CMS泛目录功能。其中,一款常…

matlab初学习记录

文章目录 内置函数与变量matlab 编辑器数组等间距向量数组函数数组索引提取多个元素 对向量执行数组计算查看文档 画图添加注释 实践导入数据关系运算符分支恒星运动 matlab 学习看入门之旅 先计算等号右边再计算等号左边。 工作区记录等号右边的变量。 ; 表示的是抑制输出。…

vmvare虚拟机centos 忘记超级管理员密码怎么办?

vmvare虚拟机centos 忘记超级管理员密码怎么办?如何重置密码呢? 一、前置操作 重启vmvare虚拟机的过程中,长按住Shift键 选择第一个的时候,按下按键 e 进入编辑状态。 然后就会进入到类似这个界面中。 在下方界面 添加 init=/bin/sh,然后按下Ctrl+x进行保存退出。 init=/bi…

编码能力提升计划 - 华为OD统一考试(E卷)

2024华为OD机试(E卷+D卷+C卷)最新题库【超值优惠】Java/Python/C++合集 题目描述 为了提升软件编码能力,小王制定了刷题计划,他选了题库中的n道题,编号从0到n-1,并计划在m天内按照题目编号顺序刷完所有的题目(注意,小王不能用多天完成同一题)。 在小王刷题计划中,小王…

CSS样式基础样式选择器

目录 1.css样式的规则 2.引入css样式的方式 1)行内式 2)内嵌式 3)外链式 1-link导入 2-import导入 4)总 3.css基础选择器 1)标签选择器 案例:使用标签选择器编写一个圆 1.代码 2.效果 2)类选择器 案例:使用类选择器为div添加背景色 1.代码 2.效果 3)id…

如何使用ssm实现影院管理系统的设计与实现

TOC ssm751影院管理系统的设计与实现jsp 研究背景与现状 时代的进步使人们的生活实现了部分自动化,由最初的全手动办公已转向手动自动相结合的方式。比如各种办公系统、智能电子电器的出现,都为人们生活的享受提供帮助。采用新型的自动化方式可以减少…

多处理器的概念与对比

SISD, SIMD, MISD, 和 MIMD 代表了并行计算的四种基本架构,它们描述了处理器如何处理指令和数据。 理解这些架构的关键在于区分指令流(Instruction Stream)和数据流(Data Stream)是单一的还是多重的。 1. SISD (Singl…

怎样过好国庆节

今天是2024年10月1号,国庆节,七天小长假,估计每个人都有自己的小计划。有想出去浪的,有想闭关修炼的,有想约会恋爱的,也有想回家看父母的,只要有事干,有想法,有行动&…

【JavaEE】——多线程常用类

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 引入: 一:Callable和FutureTask类 1:对比Runnable 2&#xff1a…

多模态大模型 Qwen2-VL 下载、推理、微调实战案例来了

文章目录 技术交流Qwen2-VL 有什么新功能?模型结构模型效果模型下载模型推理模型微调 最近这一两周看到不少互联网公司都已经开始秋招发放Offer。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少&#xff0c…

c#增删改查 (数据操作的基础)

//数据操作无非4种 //增删改查 是数据操作的基础 int[] ints { 110, 120, 119 }; //1. 查 在这里就是获取数组中的数据 int num ints[1]; //将数组中的某个元素取出来 Console.WriteLine(num); //2. 改 将数据从…

【C++并发入门】opencv摄像头帧率计算和多线程相机读取(下):完整代码实现

前言 高帧率摄像头往往应用在很多opencv项目中,今天就来通过简单计算摄像头帧率,抛出一个单线程读取摄像头会遇到的问题,同时提出一种解决方案,使用多线程对摄像头进行读取。上一期:【C并发入门】摄像头帧率计算和多线…

Elasticsearch使用Easy-Es + RestHighLevelClient实现深度分页跳页

注意!!!博主只在测试环境试了一下,没有发到生产环境跑。因为代码还没写完客户说不用弄了( •̩̩̩̩_•̩̩̩̩ ) 也好,少个功能少点BUG 使用from size的时候发现存在max_result_window10000的限制&…

认知杂谈67《耐心!征服世界的秘籍》

内容摘要: 人生需家人朋友支持,自信源于解决问题的实力。别怕挫折,努力向前,反思自我。人生如游戏,靠自己打拼。学习要提升沟通、逻辑思维和时间管理等技能,读经典书籍,在平台学编程等&#xff…

ThreadLocal内存泄漏分析

一、ThreadLocal内存泄漏分析 1.1 ThreadLocal实现原理 1.1.1、set(T value)方法 查看ThreadLocal源码的 set(T value)方法,可以发现数据是存在了ThreadLocalMap的静态内部类Entry里面 其中key为使用弱引用的ThreadLocal实例,value为set传入的值。核…

C for Graphic:DNF手游残影效果

dnf手游在作死的道路上越行越远,困难罗特斯完全打不动,提前在抖音上细看攻略,基本能躲过机制不死,但是伤害不够,全时打满也还剩3000管血,组团半天炸团半天完全浪费一天。 个人觉得策划完全没必要这么逼…

Vite:为什么选 Vite

一、现实问题 在浏览器支持 ES 模块之前,JavaScript 并没有提供原生机制让开发者以模块化的方式进行开发。这也正是我们对 “打包” 这个概念熟悉的原因:使用工具抓取、处理并将我们的源码模块串联成可以在浏览器中运行的文件。 时过境迁,我…