【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础

news2025/1/10 1:48:51

文章目录

  • 前言
  • 章节提要
  • 一、编译过程
    • 真题链接
    • 解释器与编译器特点与区别
    • 真题链接
  • 二、文法的定义以及语法推导树
    • 真题链接
  • 三、有限自动机与正规式
  • 四、表达式
    • 真题链接
  • 五、函数调用(传值与传址)
    • 传值调用与传址调用
    • 真题链接
  • 六、各种程序语言的特点
    • 真题链接

前言


本系列文章为观看b站视频以及b站up主@zst_2001系列视频所做的笔记,感谢相关博主的分享。如有侵权,立即删除。
视频链接:视频链接(注:文章中有关图片、以及网友的相关评论与总结等内容未标明出处均出自该视频,感谢大家的分享!)
b站up主页:b站up

章节提要

在这里插入图片描述
重点掌握:正规式、表达式、传值与传址

一、编译过程

在这里插入图片描述

  • 符号表
    (注:下图来自前言中up主视频)image
  • 编译方式与解释方式的过程
    (注:下图来自前言中up主视频)
    image 编译方式下,在机器上运行的目标程序完全独立于源程序
  • 语法分析过程
    (注:下图来自前言中up主视频)
    image
    语法分析阶段可以发现程序中的所有语法错误;编译正确的程序必然不包含语法错误;“除数为0”为动态语义错误,动态语义错误只有运行时才能发现
  • 语义分析过程
    (注:下图来自前言中up主视频)
    image
  • 中间代码
    (注:下图来自前言中up主视频)
    image
  • 目标代码生成过程
    (注:下图来自前言中up主视频)
    image
    目标代码生成阶段的工作与目标机器的体系结构密切相关

真题链接

  • 编译过程中,对高级语言程序语句的翻译主要考虑声明语句和可执行语句。对声明语句,主要是将所需要的信息正确地填入合理组织的 符号表 中;对于可执行语句,则是 翻译成中间代码或目标代码
  • 对于高级语言源程序进行编译或解释处理的过程中,需要不断收集、记录和使用源程序中一些相关的类型和特征等信息,并将其存入 符号表 中。
  • 解释方式不包含 目标代码生成阶段
  • 编译程序对C语言源程序进行语法分析时,可以确定 变量是否定义(或声明)
  • 编译程序分析源程序的阶段依次是 词法分析、语法分析、语义分析
  • 分配寄存器的工作在 目标代码生成 阶段进行。
  • 判断程序语句的形式是否正确属于 语法分析 阶段的工作。
  • 语法分析主要是分析 程序语句的结构是否合法
  • 词法分析 阶段的主要作用是分析构成程序的字符及由字符按照构造规则构成的符号是否符合程序语言的规定。
  • 对高级语言源程序进行编译的过程中,有穷自动机(NFA或DFA)是进行 词法分析 的适当工具。
  • 语法分析阶段的输入是 记号流
  • 若程序中的括号不配对,则会在 语法分析 阶段检查出错误。
  • 类型检查在 语义分析 阶段处理。
  • 若C程序表达式中引用了未赋初值的变量,则 可以编译并运行,但运行结果不一定是期望的结果
  • 某程序运行时陷入死循环,则可能的原因是程序中存在 动态的语义错误
  • 引入中间代码的好处:有利于进行与机器无关的优化处理
  • 常用的中间代码有 后缀式、三地址码、树 等。

解释器与编译器特点与区别

  • (注:下图来自前言中up主视频)
    image
  • 编译程序生成源程序的目标程序,而解释程序不生成目标程序
  • 编译程序不参与用户程序的运行控制,而解释程序则参与

真题链接

  • 将高级语言源程序翻译成目标程序的是 编译程序
  • 与编译器相比,解释器 参与运行控制,程序执行的速度慢

二、文法的定义以及语法推导树

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

真题链接

  • 大多数程序设计语言的语法规则用 上下文无关文法
  • 程序设计语言的大多数语法现象可用 上下文无关文法 描述。

三、有限自动机与正规式

在这里插入图片描述

  • (注:下图来自前言中up主视频)image
  • (注:下图来自《软件设计师教程》(第5版)(褚华、霍秋艳主编,清华大学出版社))image在这里插入图片描述
    在这里插入图片描述

正确答案:D、C
在这里插入图片描述
1)对文法进行替换可分析出来答案为D。
2)可以使用代入法来判断。

在这里插入图片描述

正确答案:C
依次带入选项,判断是否能够从初态到达终点即可。

四、表达式

在这里插入图片描述

正确答案:D
画出如上图相应的树结构,即可求解。

真题链接

  • 表达式采用逆波兰表示时,利用 进行求值。

五、函数调用(传值与传址)

  • 程序的三种基本控制结构是 顺序、选择和重复(循环)

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

传值调用与传址调用

  • (注:下图来自前言中up主视频)
    image
    传值过程
    在这里插入图片描述
    传址过程
    在这里插入图片描述
  • 程序中的数据都必须具有类型,其作用为:
    (注:下图来自前言中up主视频)image

真题链接

  • 在引用调用方式下进行函数调用是将 实参的地址传递给形参

六、各种程序语言的特点

  • 汇编语言是符号化的机器语言,一般情况下,用汇编语言编写的程序比高级语言效率更高

在这里插入图片描述

真题链接

  • 对于编译型语言处理过程为:预处理-编译-汇编-链接

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

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

相关文章

ubuntu下yolov7 tensorrt模型部署

文章目录 ubuntu下yolov7 tensorrt模型部署一、Ubuntu18.04环境配置1.1 安装工具链和opencv1.2 安装Nvidia相关库1.2.1 安装Nvidia显卡驱动1.2.2 安装 cuda11.31.2.3 安装 cudnn8.21.2.4 下载 tensorrt8.4.2.41.2.5 下载仓库TensorRT-Alpha并设置 二、从yolov7源码中导出onnx文…

【招招制敌】修改element-ui中el-image 预览图大小的默认尺寸,让展示效果更加有呼吸感

【招招制敌】修改element-ui中el-image 预览图大小的默认尺寸,让展示效果更加有呼吸感 1、问题(需求)2、解决2.1 深度修改不起效2.2 修改全局样式 3、效果 1、问题(需求) 在未修改前,el-image 预览图大小的…

Element学习使用

引入: npm方式: npm i element-ui -S 或: cnpm install element-ui --save 要先整合cnpm 在项目中引入: 1.main.js import element-ui/lib/theme-chalk/index.css; import ElementUI from element-ui;Vue.use(ElementUI)引入网址组件方式: <!-- 引入样式 --> <lin…

AI智能助理系统在线提问系统 轻松解答,快速解决问题

今天给大家分享一款AI智能助理系统在线提问系统&#xff0c;也就是人工智能对话系统&#xff0c;&#xff0c;它可以陪你聊天&#xff0c;帮你写文章&#xff0c;帮你写论文&#xff0c;帮你写代码&#xff0c;帮你写小说&#xff0c;帮你创意策划&#xff0c;帮你做Excel表格&…

联合和枚举!!详解

目录 1. 1联合体类型的声明 1.2. 联合体的特点 1.3. 联合体⼤⼩的计算 1.4联合体有什么用&#xff1f; 1.5用联合体判断机器大小端。 2.1枚举类型 2.1.1枚举类型的声明 2.2枚举类型的优点 1. 1联合体类型的声明 和结构体类似&#xff0c;联合体也由成员变量组成&#x…

《UnityShader入门精要》学习4

一个最简单的顶点/片元着色器 一个最简单的顶点/片元着色器 Unity Shader的基本结构。它包含了Shader、Properties、SubShader、Fallback等语义块。顶点/片元着色器的结构与之大体类似 Shader "MyShaderName" {Properties {// 属性}SubShader {// 针对显卡A的S…

安全隐患随手拍小程序搭建-人人都是安全员活动

各生产型企业都会组织开展“安全隐患随手拍”活动&#xff0c;目的就是使广大职工积极发现身边的安全隐患&#xff0c;从而提高自身安全意识&#xff0c;重视安全生产&#xff0c;营造“人人查安全、人人保安全”的良好氛围。 可传统靠微信群组或QQ邮箱上报隐患方式&#xff0c…

Linux服务器快速搭建pytorch

Linux服务器搭建pytorch 文章目录 Linux服务器搭建pytorch一、使用FileZilla传输Anaconda二、激活Anaconda环境1.创建一个虚拟环境2.使用已有项目生成requirements.txt3.在虚拟环境中使用requirements.txt安装其他项目相关库 总结 一、使用FileZilla传输Anaconda 提示&#xf…

微信小程序获取当前日期时间

一、直接使用方式 在小程序中获取当前系统日期和时间&#xff0c;可直接拿来使用的常用的日期格式 //1. 当前日期 YYYY-MM-DDnew Date().toISOString().substring(0, 10)new Date().toJSON().substring(0, 10)//2. 当前日期 YYYY/MM/DDnew Date().toLocaleDateString()//3.…

计算机图形学(有效边表算法)用知识,改变命运的秘密【Morty深度干货】视频学习

目录 1.你所身处的世界&#xff0c;其实并非是一个真实的世界 3、哪些知识&#xff0c;会真正影响到我们的人生 你要用大量的精力去学习对于你的人生能产生实际价值的领域的知识 历史 经济学 金融与投资 心理学 永远不要去相信人&#xff0c;而是要去相信人性 成长的路…

2023年中国禽流感疫苗产量、需求量及市场规模分析[图]

禽流感疫苗是以甲型流行性感冒病毒H5N1、H9N2等毒株经处理后制备的灭活疫苗。用于预防人感染高致病性禽流感病毒感染&#xff0c;控制禽流感的流行。 从产业链来看&#xff0c;禽流感疫苗行业上游为原材料市场&#xff0c;主要有非免蛋、血清、佐剂等。禽流感疫苗行业下游主要为…

博客系统(java,MySQL,HTML)

项目展示&#xff1a; 1.输入 http://127.0.0.1:8080/blog_system/login.html 即可进入登录页面 2.输入正确的用户名和密码后进入博客列表页 要是用户名或密码输入错误&#xff0c;会弹出错误提示框 3.点击查看全文&#xff0c;可以进入博客详情页查看详细信息 4.点击写博客&a…

Studio One6.5中文版本下载安装步骤

在唱歌效果调试当中&#xff0c;我们经常给客户安装的几款音频工作站。第一&#xff0c;Studio One 6是PreSonus公司开发的一款功能强大的音频工作平台&#xff0c;具有丰富的音频处理功能和灵活的工作流程。以下是Studio One6的一些主要特点&#xff1a; 1.多轨录音和编辑&…

树模型(三)决策树

决策树是什么&#xff1f;决策树(decision tree)是一种基本的分类与回归方法。 长方形代表判断模块 (decision block)&#xff0c;椭圆形成代表终止模块(terminating block)&#xff0c;表示已经得出结论&#xff0c;可以终止运行。从判断模块引出的左右箭头称作为分支(branch)…

lc42接雨水详解

1 42. 接雨水 接雨水 2 推荐阅读的解析 《接雨水》详细通俗的思路分析&#xff0c;多解法 推荐观看方法&#xff1a;二、三和四 3 不懂的地方-方法四的一个判断条件 以下是疑问的地方 height [ left - 1] 是可能成为 max_left 的变量&#xff0c; 同理&#xff0c;height…

隧道代理-

文章目录 代理代理使用场景VPS建立隧道frpMSF木马生成监听开启frp服务端和客户端执行exe木马文件 代理 实验环境&#xff1a; 攻击机kali&#xff1a;192.168.160.32&#xff08;NAT模式&#xff09;模拟的公网服务器&#xff08;本机&#xff09;&#xff1a;10.9.75.214失陷…

SQL Server远程登录失败

SQL Server远程登录失败 检查SQL SERVER 是否允许远程访问. 具体步骤: 1)在远端SQL Server主机上,打开SSMS并连接数据库 2)在相应”数据库”上单击右键,选择”属性” 3)选择”连接”选项卡,检查”远程服务器连接”下,RPC服务是否选择. 设置SQL Server相关TCP连接 1.打开SQL Se…

代码随想录算法训练营第天十六天丨 二叉树part04

文档讲解&#xff1a;代码随想录 状态&#xff1a;已完成 513.找树左下角的值 思路 递归 分析一下题目&#xff1a;在树的最后一行找到最左边的值。 首先要是最后一行&#xff0c;然后是最左边的值。 如果使用递归法&#xff0c;如何判断是最后一行呢&#xff0c;其实就是…

为数据列表的每条记录生成对应的二维码

效果图&#xff1a; 一、前端 <!DOCTYPE html> <html lang"zh" xmlns:th"http://www.thymeleaf.org" xmlns:shiro"http://www.pollix.at/thymeleaf/shiro"> <head><th:block th:include"include :: header(固定资产…

CA与区块链之数字签名详解

CA与区块链验证本质上都是数字签名&#xff0c;首先&#xff0c;我们看一下什么是数字签名&#xff01; 数字签名 数字签名是公钥密码学中的一种技术&#xff0c;用于验证信息的完整性和发送者的身份。简而言之&#xff0c;数字签名是一种确认信息来源和信息完整性的手段。它通…