软件设计师:06-程序设计语言与语言处理程序基础

章节章节
01-计算机组成原理与体系结构07 - 法律法规与标准化与多媒体基础
02 - 操作系统基本原理08 - 设计模式
03 - 数据库系统09 - 软件工程
04 - 计算机网络10 - 面向对象
05 - 数据结构与算法11 - 结构化开发与UML
06 - 程序设计语言与语言处理程序基础12 - 下午题历年真题
End - 二周目上午真题End – 二周目下午真题
End - 临考快速记忆Java工程师的进阶之路

一、低级语言和高级语言

在这里插入图片描述

二、编译程序和解释程序

  • 解释器:翻译时不生成独立的目标程序,解释程序和源程序都参与程序运行过程
  • 编译器:翻译时独立生成目标程序,源程序和编译程序不再参与目标程序的运行过程

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

二、程序设计语言的成分

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

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

在这里插入图片描述

四、传值与传地址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
引用调用举例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

五、 编译、解释程序翻译阶段

反编译:编译的逆过程,将可执行文件转换成等价的汇编程序(无法获得源程序)

源程序—》词法分析-》记号流–》语法分析–》分析树(语法树)–》语义分析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、符号表

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

七、编译过程

7.1、词法分析

源程序----->词法分析----->记号流----->语法分析----->分析树(语法树)----->语义分析
输入:源程序,输出:记号流
词法分析阶段的主要作用是:分析构成程序的字符;及由字符按照构造规则构成的符号是否符合程序语言的规定
在这里插入图片描述

7.2、语法分析

输入:记号流;输出:语法树(分析树)
语法分析阶段可以发现程序中所有的语法错误
语法分析阶段的主要作用是:对各条语句的结构进行合法性分析;分析程序中的句子结构是否正确

在这里插入图片描述

7.3、语义分析

输入:语法树(分析树)
语义分析阶段的主要作用是进行类型分析和检查

  • 语法分析阶段可以发现程序中的所有语法错误
  • 语义分析阶段不能发现程序中所有的语义错误
  • 语义分析阶段可以发现静态语义错误
  • 不能发现动态语义错误,动态语义错误运行时才能发现
    在这里插入图片描述

7.4、目标代码生成

目标代码生成阶段的工作与具体的机器密切相关
- 寄存器的分配工作处于目标代码生成阶段
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

7.5、中间代码生成

常见的中间代码有:后缀式、三地址码、三元式、四元式和树(图)等形式。

  • 中间代码与具体的机器无关(不依赖具体的机器),可以将不同的高级程序语言翻译成同一种中间代码。中间代码可以跨平台。
  • 因为与具体的机器无关,使用中间代码有利于进行与机器无关的优化处理和提高编译程序的可移植性。

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

八、正规式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
*代表0~n个,这里b必须有一个

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

九、有限自动机

有限自动机是词法分析的一个工具,它能正确地识别正规集

  • 确定的有限自动机(DFA):对每一个状态来说识别字符后只有一个转移状态
  • 不确定的有限自动机(NFA):对每一个状态来说识别字符后有一个以上的转移状态
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    反着的3代表无须识别直接通过

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

十、上下文无关文法

大多数程序设计语言地语法规则用上下文无关文法描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十一、中缀后缀表达式

中缀式:a + b
后缀式(逆波兰式):ab+
后缀式利用栈进行求值
语法树的后缀式为后序遍历、中缀式为中序遍历
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

十二、杂题精讲

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

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

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

相关文章

windows达梦安装

1.首先准备好windows安装系统,准备工作的做好,然后把素材包dm8_20230418_x86_win_64放进去,进行解压 解压完成之后,把dm8_20230418_x86_win_64再次进行解压,然后点击安装setup进行安装 然后点击接受进行下一步&#xf…

[BT]小迪安全2023学习笔记(第24天:Web攻防-SQL注入)

第24天 SQL注入原理 基于攻击者向应用程序输入字段中插入恶意的SQL代码,这些输入最终会被应用程序未经适当清洁或验证直接传递给数据库执行。当这些恶意输入与应用程序的原始SQL语句结合时,它们可以修改原始SQL查询的意图,允许攻击者执行未…

搭建Docker私有仓库registry

下载registry registry是Docker官方提供的仓库镜像 拉取镜像,不指定版本默认拉取最新版本镜像。 docker pull registry Using default tag: latest latest: Pulling from library/registry 79e9f2f55bf5: Pull complete 0d96da54f60b: Pull complete 5b27040df4…

ZooKeeper命令和监控详解

ZooKeeper监控命令详解 在分布式系统中,ZooKeeper作为一个非常重要的协调服务,它的健康状态直接影响到整个系统的可靠性和稳定性。因此,对ZooKeeper进行有效监控是非常必要的。本文将详细介绍ZooKeeper提供的命令行工具zkCli.sh,…

vue2之过滤器

过滤器 过滤器的实现类似Django的过滤器。 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>过…

Redis的过期键是如何处理的?过期键的删除策略有哪些?请解释Redis的内存淘汰策略是什么?有哪些可选的淘汰策略?

Redis的过期键是如何处理的&#xff1f;过期键的删除策略有哪些&#xff1f; Redis的过期键处理是一个重要的内存管理机制&#xff0c;它确保在键过期后能够释放相应的内存空间。Redis对过期键的处理主要依赖于其删除策略&#xff0c;这些策略包括被动删除&#xff08;惰性删除…

Mysql---库表操作

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.Mysql数据库简介 MySQL是一种关系型数据库管理系统&#xff0c;是最流行的开源数据库之一。它是由瑞典MySQL AB公司开发的&#xff0c;后来被Sun Microsystems收购&#xff0c;之后又被Oracl…

企业架构设计方法与实践中的架构治理演进、架构评估方法、架构成熟度模型

企业架构设计方法与实践中的架构治理演进、架构评估方法、架构成熟度模型。 架构治理演进: 架构治理是指通过设立和执行一套政策和程序,来管理和控制一个组织的架构活动。架构治理演进是一个持续的过程,需要根据组织的实际情况进行定期审查和调整。 在演进过程中,重点需要…

1 redis7概述

Redis7 1 Redis简介 Redis之所以称之为字典服务&#xff0c; 是因为 Redis 是一个 key-value存储系统。 支持存储的 value类型很多&#xff0c; 包括 String(字符串)、List(链表)、Set(集合)、Zset(sorted set --有序集合)和 Hash&#xff08;哈希类型&#xff09;等。 Redis…

[java基础揉碎]多态数组

介绍: 多态数组就是有一个父类数组, 数组含有不同多个父类子类对象 解析: 新建一个person类, 有名字,年龄属性, 同时有个say方法 新建一个子类, 有一个成绩的属性,并重写了say方法, 加上了成绩 新建一个子类老师, 并有工资这个属性, 一样重写了say方法加上了这个属性 要求创…

efcore事务

在 Entity Framework Core (EF Core) 中&#xff0c;事务用于确保一系列数据库操作要么全部成功&#xff0c;要么全部失败&#xff0c;这对于保持数据的一致性非常重要。以下是使用 EF Core 实现事务的一个简单示例&#xff1a; 首先&#xff0c;请确保安装了 EF Core。如果你…

PyTorch学习笔记之基础函数篇(八)

6 线性代数运算 6.1 torch.mm()函数 torch.mm() 是 PyTorch 中的一个函数&#xff0c;用于执行矩阵乘法操作。这个函数会接受两个张量作为输入&#xff0c;并返回它们的矩阵乘积。 函数的基本语法如下&#xff1a; torch.mm(mat1, mat2) → Tensor参数说明&#xff1a; ma…

根据服务器系统选择对应的MySQL版本

1. 根据服务器系统选择对应的MySQL版本 MySQL有多个版本&#xff0c;选择对应的版本&#xff0c;重点信息是Linux的GLIBC版本号&#xff0c;Linux的版本、系统位数。 1.1 查看Linux的GLIBC版本号 通常libc.so会支持多个版本&#xff0c;即向前兼容&#xff0c;查看该文件中…

Linux lsattr命令教程:如何查看和理解文件属性(附实例详解和注意事项)

Linux lsattr命令介绍 lsattr命令是list attributes的缩写&#xff0c;主要用于列出Linux系统文件的属性。这个命令可以帮助我们了解文件的各种属性&#xff0c;比如是否可以被修改、删除等。 Linux lsattr命令适用的Linux版本 lsattr命令在大多数Linux发行版中都可以使用&a…

LLM预备知识、工具篇——LLM+LangChain+web UI的架构解析

目录 【常见名词】一、LLM的低资源模型微调二、向量数据库1、Milvus(v2.1.4)&#xff1a;云原生自托管向量数据库&#xff08;Ubuntu下&#xff09;1&#xff09;安装&#xff08;Docker Compose方式&#xff09;&#xff1a;2&#xff09;管理工具&#xff08;仅支持Milvus 2.…

RabbitMQ命令行监控命令详解

在分布式系统中&#xff0c;消息队列中间件如RabbitMQ扮演着至关重要的角色。为了保证系统的稳定性和高可用性&#xff0c;对RabbitMQ进行有效监控是必不可少的。本文将详细介绍RabbitMQ提供的命令行工具rabbitmqctl&#xff0c;这些工具可以帮助我们监控和管理RabbitMQ服务器。…

adb 筛选查看Unity日志

在Windows系统中&#xff0c;使用ADB&#xff08;Android Debug Bridge&#xff09;查看Unity应用的日志是一个常见的需求&#xff0c;尤其是在开发或调试Android平台上的Unity游戏或应用时。以下是一些基本步骤和命令&#xff0c;帮助你通过ADB获取Unity日志。 在Linux或Mac …

rank() over, dense_rank() over, row_number() over的区别

rank() over, dense_rank() over, row_number() over的区别 --ROW_NUMBER() OVER 不需要考虑并列&#xff0c;即使查询出来的数值相同也会进行连续排名 SELECT NAME, STUNO, SUBJECT, SCORE, ROW_NUMBER() OVER(PARTITION BY SUBJECT ORDER BY SCORE DESC) TO_RANK FROM SCOTT…

Python分类汇总N张Excel表中的数据(附源码下载)

在现代办公环境中&#xff0c;处理大量的Excel表格是一项常见而又繁琐的任务。Python作为一种功能强大的编程语言&#xff0c;其在自动化办公方面的表现尤为出色。例如&#xff0c;我们可以使用Python进行Excel表格的分类汇总操作。 具体来说&#xff0c;我们可以创建一个名为“…

Learn OpenGL 03 着色器

GLSL 着色器的开头总是要声明版本&#xff0c;接着是输入和输出变量、uniform和main函数。每个着色器的入口点都是main函数&#xff0c;在这个函数中我们处理所有的输入变量&#xff0c;并将结果输出到输出变量中。 一个典型的着色器有下面的结构&#xff1a; #version vers…