当前位置: 首页 > news >正文

[豪の学习笔记] 软考中级备考 基础复习#7

跟学视频:学以致知Learning - 软件设计师 基础阶段|考点理论精讲

Chapter 7 - 程序设计语言基础知识

1 - 基本概念

低级语言和高级语言
  • 低级语言:通常称机器语言和汇编语言为低级语言,机器语言是指用0、1字符串组成的机器指令序列,是最基本的计算机语言,汇编语言是指用符号表示指令的语言
  • 高级语言:是从人类的逻辑思维角度出发、面向各类应用的程序语言,其抽象程度大大提高,需要编译成特定机器上的目标代码才能执行。这类语言与人们使用的自然语言比较接近,大大提高了程序设计的效率
程序设计语言的定义一般都涉及语法、语义、语用和语境等方面
  • 语法:由程序设计语言的基本符号组成程序中的各个语法成分的一组规则,其中由基本字符构成的符号书写规则称为词法规则,由符号构成语法成分的规则称为语法规则。程序语言的语法可通过形式语言进行描述
  • 语义:程序语言中按语法规则构成的各个语法成分的含义,可分为静态语义和动态语义
  • 语用:表示构成语言的各个记号和使用者的关系,涉及符号的来源、使用和影响
  • 语境:理解和实现程序设计语言的环境,包括编译环境和运行环境
程序设计语言的分类
  • 命令式程序设计语言

    ​ 命令式程序设计语言是基于动作的语言,在这种语言中,计算被看作是动作的序列,命令式语言族开始于Fortran、Pascal和C语言,体现了命令式程序设计的关键思想

  • 面向对象的程序设计语言

    ​ 面向对象的程序设计在很大程度上应归功于从模拟领域发展而来的Simula,Simula提出了对象和类的概念。C++、Java和Smalltalk是面向对象程序设计语言的代表

  • 函数式程序设计语言

    ​ 函数式程序设计语言是一类以λ-演算为基础的语言。该语言的代表是LISP,其中大量使用了递归

  • 逻辑型程序设计语言

    ​ 逻辑型程序设计语言是一类以形式逻辑为基础的语言。该语言的代表是建立在关系理论和一阶谓词理论基础上的Prolog

程序设计语言的基本成分

1、数据成分

  • 常量和变量

  • 全局量和局部量

  • 数据类型

​ 基本类型:整型(int)、字符型(char)、实型(float、double)、布尔类型(bool)

​ 特殊类型:空类型(void)

​ 用户定义类型:枚举类型(enum)

​ 构造类型:数组、结构和联合

​ 指针类型:type

​ 抽象数据类型:类类型

2、运算成分

  • 算术运算:加减乘除
  • 逻辑运算:与或非
  • 关系运算

3、控制成分

  • 顺序结构
  • 选择结构
  • 循环结构

4、函数和函数的调用

2 - 编译与解释

​ 汇编语言是为特定的计算机或计算机系统设计的面向机器符号化的程序设计语言。用汇编语言编写的程序称为汇编语言源程序。汇编语言源程序由若干条语句组成。一个程序中可以有3类语句:指令语句、伪指令语句和宏指令语句

​ 编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序。编译过程划分成词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成六个阶段,实际的编译器可能会将其中的某些阶段结合在一起进行处理

​ 解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的主要区别

image-20250911104116064

  • 词法分析阶段的任务是:对源程序从前到后(从左到右)逐个字符进行扫描,从中识别出一个个“单词”符号。“单词”符号是程序设计语言的基本语法单位,如关键字、标识符

  • 语法分析阶段的任务是:在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”“语句”和“程序”等。词法分析和语法分析本质上都是对源程序的结构进行分析

  • 语义分析阶段主要是:审查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用,只有语法和语义都正确的源程序才能翻译成正确的目标代码。语义分析的一个主要工作是进行类型分析和检查

  • 中间代码生成阶段的工作:根据语义分析的输出生成中间代码

  • 代码优化阶段的任务:对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即省时间和省空间

  • 目标代码生成阶段的任务:把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码。这是编译的最后阶段,它的工作与具体的机器密切相关

3 - 文法

image-20250911111235080

image-20250911111308503

4 - 语法推导树

image-20250911111602679

image-20250911111835233

5 - 有限自动机

image-20250911112211186

image-20250911112250086

6 - 正规式

​ 有限自动机的另外一种表达形式

image-20250911112507957

image-20250911145722554

image-20250911150104074

7 - 表达式

image-20250911150218255

image-20250911150600628

8 - 传值与引用(传址)

​ 传值调用:形参取的是实参的值形参的改变不会导致实参的值发生改变

​ 引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元地址的引用,因此其值改变的同时就改变了实参的值

image-20250911151451092

9 - 各种程序语言特点

  • Fortran语言(科学计算,执行效率高)
  • Pascal语言(为教学而开发的,表达能力强,Delphi)
  • C语言(指针操作能力强,高效)
  • Lisp语言(函数式程序语言,符号处理,人工智能)
  • C++语言(面向对象,高效)
  • Java语言(面向对象,中间代码,跨平台)
  • C#语言(面向对象,中间代码,Net)
  • Prolog语言(逻辑推理,简洁性,表达能力,数据库和专家系统)

相关文章:

[豪の学习笔记] 软考中级备考 基础复习#7

基本概念、编译与解释、文法、语法推导树、有限自动机、正规式、表达式、传值与引用、各种程序语言特点跟学视频:学以致知Learning - 软件设计师 基础阶段|考点理论精讲 Chapter 7 - 程序设计语言基础知识 1 - 基本概念 低级语言和高级语言低级语言:通常称机器语言和汇编语言…...

经典面试题目:二叉树遍历

一、 核心定义与性质 二叉树(Binary Tree) 是一种每个节点最多有两个子节点的树形结构。这两个子节点通常被称为左子节点和右子节点。 关键术语:根节点(Root): 树的顶层节点,没有父节点。 叶子节点(Leaf): 没有子节点的节点。 深度(Depth): 从根节点到该节点所经历…...

十、微程序控制器是什么?

目录一言以蔽之一个精妙的比喻:做菜与菜谱核心组成部分(对照比喻)它为什么重要?有什么优点?总结一言以蔽之 微程序控制器是CPU的“灵魂指挥家”,它通过执行预先写好的“微程序”(一套精细的指令步骤)来指挥CPU的各个部件协同工作,从而完成一条条机器指令。一个精妙的比…...

2023CCPC秦皇岛站

define时间:#define itn int #define int long long #define ind long double #define yes cout << "Yes" #define no cout << "No" #define pii pair<long long, long long> #define pci pair<char, int> #define re return;QOJ…...

十一、微程序控制器的组成和工作过程

目录一、微程序控制器的核心思想二、微程序控制器的主要组成部分三、微程序控制器的工作过程(重中之重)四、一个简单的例子一、微程序控制器的核心思想 首先,再次强调其核心思想:将一条机器指令的执行,转化为一段由更简单的“微指令”组成的“微程序”的执行。 这些微程序…...

11

111...

六、数据通路的功能和基本结构

目录1. 数据通路的功能2. 数据通路的基本结构3. 工作流程示例(以加法指令 ADD Rd, Rs, Rt 为例)总结1. 数据通路的功能 数据通路(Data Path) 是中央处理器(CPU)的核心组成部分之一。它的主要功能是为指令的执行提供数字信号(数据、地址)的传输路径和加工场所。 具体来说…...

五、单周期CPU和多周期CPU

目录单周期CPU核心思想工作原理优点缺点多周期CPU核心思想工作原理优点缺点核心差异对比总结与发展计算机组成原理中的两个核心概念:单周期CPU和多周期CPU。 它们是实现CPU控制器的两种经典设计方法,各有其优缺点和设计哲学。单周期CPU 核心思想 单周期CPU的设计理念非常直观…...

七、组合逻辑元件(操作元件)和 时序逻辑元件(状态原件)

目录1. 组合逻辑元件(Combinational Logic Elements)核心特征功能常见示例抽象表示2. 时序逻辑元件(Sequential Logic Elements)核心特征功能常见示例抽象表示对比总结在数据通路中的协同工作在数字电路和计算机组成原理中,几乎所有元件都可以被划分为这两大类:组合逻辑元…...

九、指令、微程序、微指令、微命令、微操作

目录核心比喻:做一道菜(比如“鱼香肉丝”)1. 指令 (Instruction)2. 微操作 (Micro-operation, μop)3. 微命令 (Micro-command)4. 微指令 (Microinstruction)5. 微程序 (Microprogram)梳理总结与记忆口诀核心比喻:做一道菜(比如“鱼香肉丝”) 我们把执行一条CPU指令(比如…...

八、CPU控制器的功能和工作原理

目录一、CPU控制器是什么?二、控制器的核心功能三、控制器的工作原理1. 硬布线控制器(Hardwired Control)2. 微程序控制器(Microprogrammed Control)四、现代控制器的演变总结一、CPU控制器是什么? CPU(中央处理器)是计算机的大脑,而控制器(Control Unit, CU) 则是这…...

Linux命令实践

课上测试 作业题目:Linux命令实践 | 学号 | 20131321 | | 姓名 | 王曦轶 | | 日期 | 2025-09-11 | | 实验环境 | Ubuntu |目录实验目的 命令清单与截图 遇到的问题和解决方法 总结与心得实验目的熟练掌握 ls / who / pwd / cd /man/whereis/find/locate/ grep 等高频命令的常…...

Debian 12 解决乱码问题

1.安装中文包apt install -y locales locales-all2.配置本地化设置dpkg-reconfigure locales勾选 中文apt install -y fonts-wqy-zenhei fonts-wqy-microhei xfonts-wqyreboot如果还是不行nano /etc/default/locale## 写入下面的内容 LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 LC_C…...

软工第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13478这个作业的目标 <初步了解博客的写作;向别人介绍自己;了解Github的基本…...

Kafka的元数据Metadata

元数据是指Kafka集群的元数据,这些元数据具体记录了集群中有哪些主题,这些主题有哪些分区,每个分区的leader副本分配在哪个节点上,follower副本分配在哪些节点上,哪些副本在AR、ISR等集合中,集群中有哪些节点,控制器节点又是哪一个。Kafka 的元数据(Metadata) 正是描述…...

datadome笔记

pYZs00 -> 0 y7S2ew -> 0E9CFE54DD8A 随机数 有 hash 组成 NEvtKJ -> 0 首次执行 为0 ,查看localStorage 里的值 PFLOGM -> 1.17.0 js固定 wugUNB | display window["ddm"]["displayEnabled"] 返回的...

AI 机器视觉检测方案:破解食物包装四大质检难题,筑牢食品安全防线

在食品生产领域,包装盒或包装袋作为食品的直接包装载体,其质量优劣直接关系到食品安全与企业声誉。传统人工质检在应对食物包装生产的高速节奏与复杂质量问题时,逐渐暴露出诸多局限性,成为企业发展的瓶颈。而 AI 视频检测技术的出现,犹如一把 “智能利剑”,精准且高效地斩…...

Tkinter 多线程并行任务开发:从秒数丢失到完整显示的踩坑与解决

在 Tkinter 桌面应用开发中,多线程是解决 UI 卡顿的常用方案,但新手很容易在 "线程安全" 和 "UI 更新" 上踩坑。本文记录了一次 Tkinter 多线程并行任务开发中的典型问题:函数执行秒数丢失、最后一秒不显示,以及对应的排查思路和解决方法,适合 Tkinte…...

和你的推式子过一辈子去吧。

问题 给定若干个数 \(a_1 \dots a_n\),\(q\) 次询问,或单点修改,或询问第 \(i\) 个数取 \([0,a_i]\) 中任意数时,\(n\) 个数异或和是 \(z\) 的方案数。 本题的正确做法应该是贪心,但是我的贪心能力为 \(0\),就十分诡异地发现这个东西可以推式子推出来。 一些记号:\(\tex…...

NKOJ全TJ计划——NP1397

题目内容 有一条河,左边一个石墩(A区)上有编号为\(1\backsim n\)的只青蛙,河中有个\(k\)荷叶(C区),还有个\(h\)石墩(D区),右边有一个石墩(B区),如下图所示。\(n\)只青蛙要过河(从左岸石墩A到右岸石墩B),规则为: 石墩上可以承受任意多只青蛙,荷叶只能承受一只青蛙(不论大…...

LT9211C 芯片使用

配置文件: LT9211C_Main.h DrvTtlRx.c 添加屏时序参数 ModTtlRx.h ModMipiTx.h...

枚举类型

在实际的编程应用中,有的变量只有几种可能的取值,譬如说一个家族的几个成员,性别的两种可能等等。C++为这种类型的变量的定义提供了enum关键字。要使用枚举类型的变量,首先需要先定义一个枚举类型名,再声明变量是该枚举类型的。 一、枚举类型的定义 1、定义方式: enum 枚…...

用 C++ + OpenCV + Tesseract 实现英文数字验证码识别(完整可跑)

本文展示如何用 C++ 结合 OpenCV 做图像预处理,再调用 Tesseract OCR 识别验证码。适用于希望在高性能后端或本地服务里集成 OCR 的场景。方案包含: 环境与依赖安装 图像预处理(灰度、二值化、形态学去噪、放大) 使用 Tesseract API 调用(设定白名单、PSM) 完整 C++ 示例…...

2025中国HR SaaS市场分析与选型指南

引言:HR SaaS——企业数字化转型的核心驱动力 2025年,中国HR SaaS市场正站在一个关键的十字路口。随着企业对人力资源战略价值的重新认知,以及人工智能、云计算等前沿技术的深度融合,HR SaaS已不再是简单的管理工具,而是企业实现数字化转型、提升人才竞争力的核心驱动力。…...

jenkins部署消息发送至钉钉--jenkins配置

jenkins配置: 1、点击进入设置页面 2、点击进入插件管理页 3、安转钉钉插件 4、安装后,点击进入 5、输入前面复制的webhook,和钉钉那输入的关键字,保存应用后就配置成功了...

android java层字符串加密对抗

常见的字符串加密格式 来源以及熟悉 1)stringfog插件实现对抗方法 1)dex转换jar2)jar加载对应的解密方法3)遍历文件定位加密函数的位置以及参数4)主动调用以及加密 -- 后期可以把结果覆盖重新打包jadx加载可以还原...

Windows10 RDP远程桌面连接被控端wifi自动断开解决

操作系统: win10 wifi协议: Wi-Fi 6 (802.11ax) 安全类型: WPA2-企业 登录信息的类型: Microsoft: 受保护的 EAP (PEAP)现象 使用frp暴露端口到公网,使用window rdp登录到被控端时,连接配置处理,然后被控端黑屏,wifi端口,导致连接不上。 原因 由于wifi是需要企业认证的,并…...

2025春季杭电多校4题解

进入正题 1004这道题没写出来最后,但依然有所收获。正如题解所说,像这种一大堆操作得到某种符合设定的东西,然后进行计数的题,往往都需要一个简洁的性质。这种性质不是手模样例搞出来的,就是猜出来的。但是像我这种蒟蒻,脑电波不容易对上的,模又模不出来,猜也猜不对,拿…...

2025春季杭电多校5题解

1009这么能猜?这个数据范围,对博弈论来说一定存在某种结论。故这题是结论题。设\(dp[n]\)表示有\(n\)个物体时敌方先手,我的胜率。则敌方先手后轮到我时有n-1或者n-4个物体,我再取物体。我取物体时肯定要的是胜率最大,所以有转移方程\(dp[n]=\frac{1}{2}*max(dp[n-1-1],dp[…...

Window10 关闭Edge浏览器的多选项卡通过Alt+Tab组合键切换的方式

在系统设置页面。 进行如下操作即可。这里就设置为图中的选项即可。之后切换的时候就会对Edge浏览器窗口级别进行切换了,不会再出现Alt+Tab组合键对Edge浏览器的选项卡级别的切换了。复制请注明出处,在世界中挣扎的灰太狼...

云行 | 国云聚智 AI甬动,天翼云中国行宁波站成功举办!

近日,以“国云聚智 AI甬动”为主题的天翼云中国行宁波站暨2025浙江电信AI+产业融合创新主题活动在宁波成功举办。作为第十五届智慧城市与智能经济博览会的重要组成部分,本次活动邀请到宁波市人民政府副市长金珊,宁波市人民政府副秘书长虞礼勇,宁波市通信管理局局长杨碧慧,…...

2025春季杭电多校3题解

翻车了 1005 没什么好说的,并查集维护就行 void solve(){int n;cin>>n;map<int,bool>vis;vector<int>a(n+1);for(int i=1;i<=n;i++){cin>>a[i];vis[i]=true;}vector<int>fa(n+1);iota(fa.begin(),fa.end(),0);auto find=[&](int x)->…...

华为鸿蒙(4.0)应用开发(4)—ArkTs开发语言 – 每天进步一点点

文链接:华为鸿蒙(4.0)应用开发(4)—ArkTs开发语言 – 每天进步一点点 鸿蒙4.0用的编程语言是ArkTs。它是在TypeScript的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。 简单来说,TypeScript是JavaScript的超集…...

【人工智能通识专栏】第十讲:阅读理解 - 指南

【人工智能通识专栏】第十讲:阅读理解 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !i…...

jenkins部署消息发送至钉钉--钉钉配置

钉钉配置: 1、在群设置里面点击机器人选项 2、点击添加机器人 3、选择自定义机器人 4、然后安全设置选择关键字就行,简单,内容随便输个 5、点击完成后会自动生成webhook,复制下来,钉钉这边的配置就完成了...

HyperWorks许可规划

在当今竞争激烈的工程设计与仿真市场中,高效且经济的资源管理成为企业成功的关键。HyperWorks作为一款功能强大的工程仿真软件,其许可规划功能帮助用户科学、合理地规划和管理许可资源,确保资源的高效利用,进而推动业务的持续增长。 什么是HyperWorks许可规划? HyperWorks…...

[GCJ 2015 #3] River Flow

定义函数 \(f_t(x)=\left\lfloor\dfrac{x}{2^t}\right\rfloor \bmod 2\),也就是周期为 \(2^{t+1}\) 的值域为 \([0,1]\) 的方波。 现在给定你一个离散函数 \(g\) 的长为 \(n\) 的片段,问你能不能将他表示为若干个如下函数的和: \[g(x)=\sum_ik_if_{t_i}(x+b_i) \]如果能,构…...

2025ICPC网络赛第一场题解

D题:树形DP 题意:给定一棵树,树上每个节点都有权值,断开若干条边,使树变成若干个连通块,定义每个连通块的贡献为连通块内最大点权\(-\)最小点权。算出总贡献和\((ans)\),要求和最大。 观察:考虑一个连通块,发现对连通块有贡献的仅为最大最小点权所在的点,其他节点贡献…...

拦截抓浏览器数据DrissionPage的演示

有时候一些网站进行了加密,显示的内容还用JS搞活字乱刷术,但是可以通过抓包抓到XHR中的JSON数据,而drissionpage(下文简称DP)相较于selenium可以更方便地抓这种数据; 本文内容仅用于学习交流,不得用于商用,侵权告删;可以看到唯独工资这块,被JS动了,由于参数很多,逆向…...

登录认证-下篇:基于 Redis 实现共享session登录

将验证码 (session.setAttribute("code", code));用户信息 (session.setAttribute("user", userDTO))改为存入redis中 将随机生成的token作为登录凭证,放在请求头中的authorization字段 并设置两层拦截器,解决状态登录刷新的问题业务流程图1业务流程图2…...

用 Go + Tesseract 实现英文数字验证码识别

一、为什么选 Go 二进制部署方便、启动速度快,适合在服务器或微服务中部署 OCR 接口。 gosseract 是成熟的 Go 对 Tesseract 的封装,调用简单。 可与 Go 的并发模型天然结合,便于批量或并发识别。 二、环境准备安装 Go(1.18+ 推荐) 更多内容访问ttocr.com或联系1436423940…...

基于MATLAB的CNN大气散射传播率计算与图像去雾实现

1. 核心流程设计 通过CNN直接学习大气散射模型中的传播率(透射率 t(x)),结合物理模型实现端到端去雾,流程如下: % 整体流程框架 input_img = imread(hazy_image.jpg); % 输入雾图 preprocessed_img = preprocess(input_img); % 预处理 [t_pred, A_pred] = cnn_model(prepr…...

.net连接MYSQL数据库字符串参数详细解析(总结)

通常数据库连接字符串为:Database=dbname;Data Source=192.168.1.1;Port=3306;User Id=root;Password=****;Charset=utf8;TreatTinyAsBoolean=false;其中常用的参数如下:Server,host, data source, datasource, address, addr, network address: 数据库位置(以上任何关键字均…...

Kubernetes 数据存储

在前面已经提到,容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引入了Volume的概念。 Volume是Pod中能够被多个容器访问的共享目录…...

软件工程第一次作业

| 这个作业属于哪个课程 | <班级的链接> | | ----------------- |--------------- | | 这个作业要求在哪里|https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/homework/13469 | | 这个作业的目标 | 自我介绍、预习教材、总结自己想要在这门课程中获得…...

软件工程第一次作业:自我介绍+软工五问

这个作业属于哪个课程 计科23级12班这个作业要求在哪里 作业要求这个作业的目标 通过编写自己的博客来进行自我介绍,以此来熟悉博客园,github1.自我介绍 我是广东工业大学23级计算机科学与技术1班的廖永祺,爱好打游戏,运动。 2.问题 1.这个课程的最终目标是让学生学会什么 …...

软件著作权市场与加密货币趋势

尽管市场对美联储9月降息存在分歧,但Coinbase最新月度展望报告指出,这并不意味着加密货币市场已触及局部顶点。数据显示,当前货币市场基金中超过7万亿美元的散户资金仍处于观望状态,美联储宽松政策可能在未来几个月释放更多市场参与潜力。这一判断与软件著作权领域呈现的扩…...

The 3rd Universal Cup. Stage 37: Wuhan

Preface 这场打的时候出现了各种突发情况,比如中途和教练在机房讨论了若干问题,徐神 J 题写一半临时有事走了之类的 再加上有人犯病了魔改欧拉回路板子导致 E 题完全对的思路最后没过,直接 9 题变 7 题了 我再也不乱改板子了.jpgA. Problem Setting 队友开场写的签 #include…...

炸裂:SpringAI新版发布,终于支持断线重连了!

盼星星盼月亮,Spring AI 新版 1.1.0-M1(1.1.0 里程式版本)终于支持 Steamable HTTP 了,也就意味着 Spring AI 的 MCP 服务终于支持自动断线重连了。 1.SteamableHTTP 定义:Streamable HTTP 是基于标准 HTTP 协议的流式数据传输模式,允许客户端或服务器在数据完全生成前,…...

spring 事务实战:声明式vs 编程式

------------------------------------------------------------------------------------------------------ 在 Spring 中,事务管理有两种核心实现方式:声明式事务和编程式事务。它们各有适用场景,下面通过实战示例对比两者的实现方式和特点。 一、编程式事务(Programmat…...