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

数据库系统工程师——第二章 程序语言基础知识

文章目录

    • 📂 第二章、程序语言基础知识
    • 📁 2.1 程序语言概述
    • 📖 2.1.1 程序语言的基本概念
    • 📖 2.1.2 程序语言的基本成分
    • 📁 2.2 程序语言翻译基础
    • 📖 2.2.1 汇编程序基本原理
    • 📖 2.2.2 编译程序基本原理
    • 📖 2.2.3 解释程序基本原理

📂 第二章、程序语言基础知识

📁 2.1 程序语言概述

低级语言和高级语言:

低级语言:
包括机器语言和汇编语言,是一种面向机器的语言,效率低、程序可读性很差、难以理解、难以修改和维护。

高级语言:
面向各类应用的程序语言,功能更强、抽象级别更高,常见的有Java、C、C++、C#、Python、PHP、JavaScript等,这类语言与人们使用的自然语言比较接近,大大提高了程序设计的效率。

汇编、解释、编译:

高级程序语言必须进行翻译才能为计算机硬件所理解,语言之间的翻译形式有多种,基本方式为汇编、解释和编译。
用某种高级语言或汇编语言编写的程序称为源程序,源程序不能直接在计算机上执行。
如果源程序是用汇编语言编写的,则需要一个汇编程序将其翻译成目标程序后才能执行
如果源程序是用某种高级语言编写的,则需要对应的解释程序或编译程序对其进行翻译,然后在机器上运行

编译程序和解释程序:

解释程序(解释器): 要么直接解释执行源程序,要么将源程序翻译成某种中间代码后再加以执行。它按源程序中语句的执行顺序,逐条翻译并立即执行相关功能。
编译程序(编译器): 将源程序翻译成目标程序(目标代码),然后再在计算机上运行目标程序。

一般分为两个阶段:
编译阶段:把源程序翻译成目标程序。
运行阶段:执行目标程序。

区别(常考 ⭐ ⭐ ⭐):

a)	编译方式下:机器上运行的是与源程序等价的目标程序,源程序与编译程序都不再参与目标程序的执行过程;
b)	解释方式下:解释程序与源程序(或者某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。
c)	解释方式下:翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立保存的目标程序。编译和解释的比较:编译比解释方式可能取得更高的效率,用户程序运行的速度更快;解释方式比编译方式更灵活(解释程序需要反复检查源程序);解释方式可移植性好。

Tips:

反编译是编译的逆过程。反编译通常不能把可执行文件还原成高级语言源代码,只能转换成功能上等价的汇编程序。

📖 2.1.1 程序语言的基本概念

若一种程序语言不依赖于机器硬件,则称为高级语言;若程序语言能够应用于范围广泛的问题求解领域,则称为通用的程序设计语言。

a) PHP 是一种在服务器端执行的、嵌入HTML文档的脚本语言,PHP可以快速地执行动态网页。
b) Python 是一种面向对象的解释型程序设计语言,可以用于编写独立程序、快速脚本和复杂应用的原型。
c) JavaScript 是一种基于对象、事件驱动编程的客户端动态脚本语言,被广泛用于web应用开发,常用来网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果,通常嵌入HTML使用。
d)Ruby 是一种开源的面向对象程序设计的服务器端动态脚本语言。脚本语言是为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言。
此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常成为批处理语言或工作控制语言。
一个脚本通常是解释运行而非编译。

📖 2.1.2 程序语言的基本成分

⭐ ⭐ ⭐

程序语言的基本成分包括: 数据、运算、控制、传输

程序语言的数据成分:

常量和变量: 变量具有左值(指存储单元:地址、容器)和右值(内容),在程序运行过程中其右值可以改变;常量只有右值,在程序运行过程中其右值不能改变。
全局变量和局部变量: 系统为全局变量分配的存储空间在程序运行的过程中一般是不改变的,而为局部变量分配的存储单元是可以动态改变的。
按照数据组织形式的不同分为基本类型、用户定义类型、构造类型及其他类型,以C语言为例:
– 基本类型:int、char、float、double、bool等;
– 特殊类型:void;
– 用户定义类型:enum(枚举类型);
– 构造类型:数组、结构、联合;
– 指针类型:type *;
– 抽象数据类型:类类型。

程序语言的控制成分: 顺序结构、选择结构、循环结构

a)顺序结构计算过程从所描述的第一个操作开始,按顺序依次执行后续的操作,直到序列的最后一个操作。
b)选择结构选择结构提供了在两种或多种分支中选择其中一个的逻辑。(if else)。
c)循环结构循环结构描述了重复计算的过程,通常由三部分组成:初始化、循环体和循环条件(while )。

在这里插入图片描述

函数( ⭐ ⭐ ⭐):

函数涉及3个概念: 函数定义、函数声明和函数调用

函数是一段具有独立功能的程序代码。
a)函数定义
C/C++程序中所有函数的定义都是独立的。不允许函数的嵌套定义。
b)函数声明
先声明后引用
c)函数调用 
函数调用时基本的参数传递方式有两种:传值调用和引用调用。

调用函数和被调用函数之间交换信息的方法主要有2种:

一种是被调用函数把返回值返回给主调函数,
另一种是通过参数带回信息,函数调用实参与形参间交换信息的方法有值调用和引用调用:
1、传值调用: 实现函数调用时实参向形式参数传递相应类型的值,形参不能向实参传递信息 (单向传递) ,实参可以是常量(表达式),也可以是变量(数组元素),例如:

int sum(int x, int y){
int z;
Z=x+y;
return z;
### 函数调用时: sum(2,3);

2、引用调用(传地址调用):
引用是C++中增加的数据类型,当形式参数为引用类型时,形参名实际上是实参的别名,函数中对形参的访问和修改实际上就是针对相应实际参数所做的访问和改变,可以实现双向传递;因此只能是变量(数组元素),而不能是常量(表达式),例如:

void swap(int &x,int &y){
int temp;
temp=x; x=y; y=temp ;
### 函数调用: swap(a,b);x,y就是a,b的别名,调用完成后,交换了a,b的值。

Tips: 函数调用和返回控制是用 实现的。

📁 2.2 程序语言翻译基础

📖 2.2.1 汇编程序基本原理

汇编语言源程序有3类语句:指令语句、伪指令语句和宏指令语句。

汇编程序的功能是将汇编语言所编写的源程序翻译成机器指令程序,汇编程序的基本工作包括每一条可执行汇编语句转换成对应的机器指令,处理源程序中出现的伪指令。
由于汇编指令中形成操作数地址的部分可能出现后面才会有定义的符号,所以汇编程序一般需要两次扫描源程序才能完成翻译过程。

📖 2.2.2 编译程序基本原理

编译程序的作用是把某高级语言书写的源程序翻译成与之等价的目标程序(汇编语言或机器语言),编译程序工作过程一般分为6个阶段:

在这里插入图片描述

词法分析:

词法分析阶段的任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个“单词”符号,“单词”符号是程序设计语言的基本语法单位,如关键字或保留字、标识符、常数、运算符和分隔符(如标点符号、左右括号)等。
  
语法分析:

语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”“语句”和“程序”等,检查和处理程序中的语法错误,如果源程序中没有语法错误,语法分析后就能正确地构造出其语法树,否则就指出语法错误,并给出相应的诊断信息。
  
语法分析方法有多种,根据产生语法树的方向,可分为 自底向上(或自下而上) 自顶向下(或自上而下) 两类。
  
语义分析:

语义分析各语法结构的含义,检查源程序是否包含静态语义错误,并收集类型信息供后面的代码生成阶段使用,只有语法和语义都正确的源程序才能翻译成正确的目标代码。

语义分析的一个主要工作是 进行类型分析和检查 ,程序语言中的一个数据类型一般包含两个方面的内容:类型的载体及其上的运算。
例如,整除取余运算符只能对整型数据进行运算,若其运算对象中有浮点数就认为是一种类型不匹配的错误。

中间代码生成:

中间代码生成阶段的工作是根据语义分析的输出生成中间代码。常用的中间代码有:后缀式(逆波兰式)、四元式(三地址码)、树形。
  
中缀式表达式:

即通常所使用的表达式,如

( a + b ) ∗ c − d (a+b)*c-d(a+b)∗c−d;
( a + b ) ∗ d 

后缀表达式转为中缀表达式:
从左至右扫描后缀表达式,若遇到运算对象,则压入栈中,遇到运算符,则从栈中弹出栈顶的两个运算对象进行运算,并将运算结果压入栈中,重复以上过程,直到表达式最右端,结束。

前缀表达式转为中缀表达式:
从右至左扫描后缀表达式,若遇到运算对象,则压入栈中,遇到运算符,则从栈中弹出栈顶的两个运算对象进行运算,并将运算结果压入栈中,重复以上过程,直到表达式最左端,结束。

前缀式表达式(波兰式):

将运算符在运算对象的前面,(a + b) ∗c−d (a+b)c-d(a+b)∗c−d后缀表达式为− ∗+ a b c d -+abcd−∗+abcd,即中缀表达式转换为前缀表达式,步骤:

a)	按计算顺序全部加上括号:( ( ( a + b ) ∗ c ) − d ) (((a+b)*c)-d)(((a+b)∗c)−d);
b)	把每一对括号内的运算符移到括号前面:−(∗( + ( a b ) c ) d ) -(*(+(ab)c)d)−(∗(+(ab)c)d);
c)	去掉括号:−∗+ a b c d -*+abcd−∗+abcd。

后缀式表达式(逆波兰式):

将运算符写在运算对象的后面,这种表示法的优点是根据运算对象和运算符的出现次序进行计算,不需要使用括号,也便于用栈实现求值,( a + b ) ∗ c − d (a+b)c-d(a+b)∗c−d后缀表达式为a b + c ∗ d − ab+cd-ab+c∗d−,即中缀表达式转换为后缀表达式,步骤:

a)按计算顺序全部加上括号:( ( ( a + b )∗c )−d ) (((a+b)*c)-d)(((a+b)∗c)−d);
b)把每一对括号内的运算符移到括号后面:( ( ( ( a b ) + c )∗d )−((((ab)+c)*d)-((((ab)+c)∗d)−;
c)去掉括号:a b + c∗d − ab+c*d-ab+c∗d−。

代码优化:

由于编译器将源程序翻译成中间代码的工作时机械的、按固定模式进行的,因此,生成的中间代码往往在时间和空间方面的效率较差,当需要生成高效的目标代码时,就必须进行优化。
优化代码可以在中间代码生成阶段进行,也可以在目标代码生成阶段进行。

目标代码生成:

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

符号表管理:

符号表的作用是记录源程序中各符号的必要信息,以辅助语义的正确性检查和代码生成,在编译过程中需要对符号表进行快速有效地查找、插入、修改和删除等操作。

出错处理:

源程序中不可避免地会有一些错误,这些错误大致分为静态错误和动态错误。
动态错误发生在程序运行时,如:变量取零时作除数、引用数组元素下标错误等。
静态错误是指编译阶段发生的程序错误,可分为语法错误和静态语义错误,如单词拼写错误、标点符号错、表达式中缺少操作数、括号不匹配等有关语言结构上的错误成为语法错误。
静态语义错误是指语义分析时发现的运算符与运算对象类型不合法等错误。

📖 2.2.3 解释程序基本原理

解释程序通常可以分为两部分:第一部分是分析部分,包括通常的词法分析、语法分析和语义分析程序,经语义分析后把源程序翻译成中间代码,中间代码常采用逆波兰式表示形式;第二部分是解释部分,用来对第一部分产生的中间代码进行解释执行。
在这里插入图片描述



💯第二章 程序语言基础知识(经典例题)

22、(2021年上)在程序编译过程中,执行类型分析和检查是在( )阶段。

A.词法分析
B.语法分析
C.语义分析
D.代码优化

参考答案:C
试题解析: 在程序编译过程中,执行类型分析和检查是语义分析阶段的工作。

20、(2020年上)程序设计语言的基本成分包括数据、运算、控制和( )。 数据是程序操作的对象,按照数据组织形式可以分为多种类型,其中枚举属于( )类型;数组属于( )类型。

问题1
A.存储
B.分配
C.传输
D.函数

问题2
A.基本
B.用户定义
C.构造
D.特殊

问题3
A.基本
B.用户定义
C.构造
D.特殊

参考答案:C、B、C
试题解析: 程序设计语言的基本成分包括数据、运算、控制和传输,数据是程序操作的对象,按照数据组织形式可以分为多种类型,其中枚举属于用户定义类型, 数组属于构造类型。

20、(2019年上)以下关于编译和解释的叙述中,正确的为( )。
① 编译是将高级语言源代码转换成目标代码的过程
② 解释是将高级语言源代码转换为目标代码的过程
③ 在编译方式下,用户程序运行的速度更快
④ 在解释方式下,用户程序运行的速度更快

参考答案:A
试题解析:两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源码程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程,程序运行速度快;而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序,边解释边执行,程序运行速度慢。

22、(2019年上)函数调用和返回控制是用( )实现的。

A.哈希表
B.符号表
C.栈
D.优先队列

参考答案:C
试题解析: 函数调用和返回控制是用栈实现的,而哈希表、符号表和优先队列是跟函数调用和返回控制是没有任何关系,属于干扰选项。

23、(2019年上)通用的高级程序设计语言一般都会提供描述数据、运算、控制和数据传输的语言成分,其中,控制包括顺序、( )和循环结构。

A.选择
B.递归
C.递推
D.函数

参考答案:A
试题解析: 程序设计语言的基本成分包括数据、运算、控制和传输等。
程序设计语言的控制成分包括顺序、选择和循环3种结构。
所以本题选择A选项。

4、(2018年上)算术表达式采用后缀式表示时不需要使用括号,使用( )就可以方便地进行求值。a-b(c+d)(其中,-、+、*表示二元算术运算减、加、乘)的后缀式为( ),与该表达式等价的语法树为( )。

问题1
A.队列
B.数组
C.栈
D.广义表

问题2
A.a b c d -+
B.a b c d
+ -
C.ab-cd+
D.a b c d+
-

问题3
在这里插入图片描述

参考答案:C、D、D
试题解析: 直接用算术运算符的优先级解题,后缀式用括号法。

18、(2018年上)在下列机制中,( )是指过程调用和响应调用所需执行的代码在运行时加以结合;而( )是过程调用和响应调用所需执行在编译时加以结合。

问题1
A.消息传递
B.类型检查
C.静态绑定
D.动态绑定

问题2
A.消息传递
B.类型检查
C.静态绑定
D.动态绑定

参考答案:D、C
试题解析: 程序运行过程中,把函数(或过程)调用与响应调用所需要的代码相结合的过程称为动态绑定。静态绑定是指序编译过程中,把函数(方法或者过程)调用与响应调用所需的代码结合的过程称之为静态绑定。

2、(2017年上)要判断字长为16 位的整数 a 的低四位是否全为 0,则( )

A.将 a 与 0x000F 进行"逻辑与"运算,然后判断运算结果是否等于 0
B.将 a 与上一题 0x000F 进行查看答案与解析 "逻辑或"运算,然后判断运算结果是否等于 F
C.将 a 与 0xFFF0 进行"逻辑异或"运算,然后判断运算结果是否等于0
D.将 a 与 0xFFF0 进行"逻辑与"运算,然后判断运算结果是否等于 F

参考答案:A
试题解析:
要判断数的最后四位是否都为0,应该将最后四位与1进行逻辑与运算,其他数位与0做逻辑与运算,最后判定的结果是否为0;因此得出与a进行逻辑与运算的数:前12位为0最后4位为1,即0x000F
逻辑或运算:0 或 0 = 0;1 或 0 = 1;0 或 1 = 1;1 或 1 = 1;
逻辑与运算:0 与 0 = 0;1 与 0 = 0;0 与 1 = 0;1 与 1 = 1;

18、(2017年上)在高级语言源程序中,常需要用户定义的标识符为程序中的对象命名,常见的命名对象有( )。
①关键字(或 保留字) ②变量 ③函数 ④ 数据类型 ⑤注释

A.①②③
B.②③④
C.①③⑤
D.②④⑤

参考答案:B
试题解析:在编写程序时需要命名的对象有变量,函数,数据类型。

19、(2017年上)在仅由字符a、b 构成的所有字符串中,其中以 b 结尾的字符串集合可用正规式表示为( )。

A.(b|ab)b
B.(ab
)b
C.a
b*b
D.(a|b)*b

参考答案:D
试题解析: 正规式(a|b)*对应的正规集为{ε,a,b,aa,ab,…,所有由a和b组成的字符串},结尾为b。

20、(2017年上)在以阶段划分的编译中,判断程序语句的形式是否正确属于( )阶段的工作。
A.词法分析
B.语法分析
C.语义分析
D.代码生成

参考答案:B
试题解析:
词法分析阶段:
是编译过程的第一阶段,其任务是对源程序从前到后(从左到右)逐个字符扫描,从中识别出一个个“单词”符词法分析过程的依据是语言的词法规则,即描述“单词”结构的规则。
语法分析阶段:
其任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位。
通常语法分析是确定整个输入串是否构成一个语法上正确的程序。
一般来说,通过编译的程序,不存在语法上的错误。
语义分析阶段:
其任务主要检查源程序是否包含静态语义错误,并收集类型信息供后面的代码生成阶段使用。
语义分析的一个主要工作是进行类型分析和检查。
中间代码生成:
其任务是根据语义分析的输出生成中间代码。
目标代码生成:
是编译器工作的最后一个阶段。其任务是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码编指令代码。本阶段与具体机器密切相关。

相关文章:

数据库系统工程师——第二章 程序语言基础知识

文章目录📂 第二章、程序语言基础知识 📁 2.1 程序语言概述 📖 2.1.1 程序语言的基本概念 📖 2.1.2 程序语言的基本成分 📁 2.2 程序语言翻译基础 📖 2.2.1 汇编程序基本原理 📖 2.2.2 编译程序…...

UFT参数化的使用

使用Systemutil.Run打开程序。将01_Login/02_New Order/03_Logout三个操作分为3个Action。生成共享对象库关联到这三个Action。在01_Login操作模块中,将登录名和密码设置为环境变量参数,环境变量参数采用用户自定义,定义为AgentName和Passwor…...

Java模拟rank() over()函数获取分组排名的方法设计及实现

背景 考试批次班级姓名语文202302三年一班张小明130.00202302三年一班王二小128.00202302三年一班谢春花136.00202302三年二班冯世杰129.00202302三年二班马功成130.00202302三年二班魏翩翩136.00 假设我们有如上数据,现在有一个需求需要统计各学生语文单科成绩在班…...

不用但一定要懂 ---- iOS 之 响应链、传递链 与 手势识别

iOS 事件的主要由:响应连 和 传递链 构成。一般事件先通过传递链,传递下去。响应链,如果上层不能响应,那么一层一层通过响应链找到能响应的UIResponse。 响应链:由最基础的view向系统传递,first view ->…...

观早报 | 特斯拉储能超级工厂落沪;“华尔街之狼”募资550亿

今日要闻:京东拟今年发布千亿级产业大模型;特斯拉储能超级工厂落沪;“华尔街之狼”募资550亿;英特尔落户海南三亚;日本人要搞二次元老婆版 ChatGPT京东拟今年发布千亿级产业大模型 据《科创板日报》消息,京…...

SpringCloud集成Seata saga模式案例

文章目录一、前言二、Seata saga模式介绍1、示例状态图2、“状态机”介绍1)“状态机”属性2)“状态”属性3)更多状态相关内容三、SpringCloud 集成 seata saga1、saga模式状态机相关信息1)状态机配置相关的三个表2)状态…...

逍遥自在学C语言 | 位运算符的高级用法

前言 在上一篇文章中,我们介绍了&运算符的基础用法,本篇文章,我们将介绍& 运算符的一些高级用法。 一、人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序…...

Java实现输入行数打印取缔字符,打印金字塔三角形的两个代码程序

目录 前言 一、实现输入行数,打印取缔字符 1.1运行流程(思想) 1.2代码段 1.3运行截图 二、打印金字塔三角形 1.1运行流程(思想) 1.2代码段 1.3运行截图​​​​​​​ 前言 1.因多重原因,本博文有…...

express项目的创建

前言 前端开发者若要进行后端开发,大多都会选择node.js,在node生态下是有大量框架的,其中最受新手喜爱的便是老牌的express.js,接下来我们就从零创建一个express项目。 安装node 在这里:https://nodejs.org/dist/v16…...

RK3399平台开发系列讲解(基础篇)Linux 传统间隔定时器

🚀返回专栏总目录 文章目录 一、设置间隔定时器 setitimer()二、查询定时器状态 getitimer()三、更简单的定时接口 alarm()四、传统定时器的应用4.1、为阻塞操作设置超时4.2、性能剖析五、传统定时器的局限性沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将详细…...

Kafka 3.4.0 kraft 集群搭建

文章目录简介基础环境服务器三台安装下载安装初始化集群启动集群验证创建Topic查看Topic详情简介 Apache 软件基金会发布了包含许多新特性和改进的 Kafka 3.3.1。这是第一个标志着可以在生产环境中使用 KRaft(Kafka Raft)共识协议的版本。在几年的开发过…...

微信小程序 iphone14 css mask 使用图片实现遮照 疑似 no-repeat 失效

1. 将图片转为 换成svg类型 2. css设置属性时书写顺序(如果顺序不对会导致展示问题 T T 奇妙的bug) .water-inner {-webkit-mask-image: url("./water-black.svg");mask-image: url("./water-black.svg");-webkit-mask-size: cont…...

密码学实践-04

密码强度 你要揭榜的任务非常简单,内容如下。 用户输入口令后,请进行强度检测: 等级三种:强,中,弱 1、口令长度小于等于8位,并且纯小写英文或大写英文,弱 2、口令长度小于等于8位&am…...

SpringBoot整合swagger实现接口管理并设置加密访问

pom.xml pom.xml文件加入swagger <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>com.github.xiaoymin&l…...

C语言单例模式-实现高性能日志管理器

C语言单例模式-实现高性能日志管理器 代码中&#xff0c;使用了单例模式来创建日志管理器对象&#xff0c;保证了整个程序中只有一个日志管理器对象。 日志管理器中包含了日志文件指针、日志级别、互斥锁等成员&#xff0c;通过这些成员来实现日志的写入和级别控制。 在主函数…...

Flutter - flutter项目添加 Web 支持

demo 地址: https://github.com/iotjin/jh_flutter_demo 代码不定时更新&#xff0c;请前往github查看最新代码 参考&#xff1a; 官方&#xff1a;构建 Flutter Web 应用 Flutter Desktop Support flutter项目添加 Web 支持 在项目的根目录下运行&#xff1a;flutter create …...

关键词数据分析-搜索词和关键词分析工具

要搜索热门关键词获取&#xff0c;可以采用以下几种方法&#xff1a; 使用百度指数&#xff1a;百度指数是一个实用的工具&#xff0c;可用于查看关键词的热度趋势、搜索量等数据。在百度指数中&#xff0c;您可以输入您要搜索的关键词&#xff0c;并查看近期的相关数据。这可以…...

SpringCloud微服务技术栈之网关服务Gateway

文章目录SpringCloud微服务技术栈之网关服务Gateway前言网关服务Gateway的基本概念Gateway的体系结构Gateway的主要功能网关服务Gateway的架构设计架构设计方案示例代码网关服务Gateway的实践操作1. 创建工程2. 配置路由规则3. 实现过滤器4. 集成服务注册中心5. 启动网关服务器…...

什么原因导致了儿童自闭症?跟父母养育有关吗?

导致儿童自闭症的原因是什么&#xff1f;这和父母的抚养有关吗&#xff1f;学习教育孩子的方法&#xff0c;让孩子快乐健康地成长&#xff0c;是家庭和孩子生活中的一件重要事情。不良的环境和错误的教育会导致儿童自闭症&#xff0c;这是真的吗&#xff1f;自闭症&#xff0c;…...

抽象轻松web

不断学习&#xff0c;不断进步&#xff0c;才能不被替代 只有你的不可被替代性才是价值所在 千变万化的叶子 根只有一个 ----2023年4月7日 弹性盒布局的作用其实是定位 我们设置弹性盒子的时候目的是为了让元素放在页面中的某个位置&#xff0c;从而达到布局的效果 定位的本质…...

Python入门手册:异常处理

在编程过程中&#xff0c;异常处理是一个非常重要的环节。它可以帮助我们处理程序运行时可能出现的错误和异常情况&#xff0c;确保程序的稳定性和可靠性。Python提供了强大的异常处理机制&#xff0c;使得我们能够优雅地处理各种异常情况。今天&#xff0c;就让我们一起深入学…...

智能对联网页小程序的仓颉之旅

#传统楹联遇上AI智能体&#xff1a;我的Cangjie Magic开发纪实 引言&#xff1a;一场跨越千年的数字对话 "云对雨&#xff0c;雪对风&#xff0c;晚照对晴空"。昨天晚上星空璀璨&#xff0c;当我用仓颉语言写下第一个智能对联网页小程序的Agent DSL代码时&#xff0…...

青少年编程与数学 01-011 系统软件简介 04 Linux操作系统

青少年编程与数学 01-011 系统软件简介 04 Linux操作系统 一、Linux 的发展历程&#xff08;一&#xff09;起源&#xff08;二&#xff09;早期发展&#xff08;三&#xff09;成熟与普及&#xff08;四&#xff09;移动与嵌入式领域的拓展 二、Linux 的内核与架构&#xff08…...

81 实战一:给root目录扩容

添加一块100G硬盘 vgextend centos /dev/sdb1 /dev/sdc lvextend -L +120G /dev/centos/root xfs_growfs /dev/centos/root df -h 看是否扩容成功 82 实战二:给swap空间扩容 添加一块20G硬盘 fdisk -l 可以看到新添加的硬盘 vgextend centos /dev/sdd …...

MVC分层架构模式深入剖析

&#x1f504; MVC 交互流程 #mermaid-svg-5xGt0Ka13DviDk15 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-5xGt0Ka13DviDk15 .error-icon{fill:#552222;}#mermaid-svg-5xGt0Ka13DviDk15 .error-text{fill:#552222…...

亚远景科技助力东风日产通过ASPICE CL2评估

热烈祝贺东风日产通过ASPICE CL2评估 近日&#xff0c;东风日产PK1B VCM热管理项目成功通过ASPICE CL2级能力评估&#xff0c;标志着东风日产在汽车电子软件研发管理体系及技术创新能力上已达到国际领先水平&#xff0c;为其全球化布局注入强劲动能。 ASPICE&#xff1a;国际竞…...

某水表量每15分钟一报,然后某天示数清0了,重新报示值了 ,如何写sql 计算每日水量

要计算每日电量&#xff0c;需处理电表清零的情况。以下是针对不同数据库的解决方案&#xff1a; 方法思路 识别清零点&#xff1a;通过比较当前值与前一个值&#xff0c;若当前值明显变小&#xff08;如小于前值的10%&#xff09;&#xff0c;则视为清零。分段累计&#xff…...

Profinet 协议 IO-Link 主站网关(三格电子)

一、产品概述 1.1 产品用途 SG-PN-IOL-8A-001 网关是 Profinet 从转 IO-Link 主的网关设备 &#xff0c;可以将 IO-Link 从站设备接入 Profinet 系统&#xff0c;通过该网关可实现传感器及驱动器与控制 器之间的信息交互。网关有两个百兆网口和 8 个 IO-Link 端口&#xff0c;两…...

HTML5+CSS3+JS小实例:具有粘性重力的磨砂玻璃导航栏

实例:具有粘性重力的磨砂玻璃导航栏 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width…...

GNSS终端授时方式-合集:PPS、B码、NTP、PTP、单站授时,共视授时

GNSS接收机具备授时功能&#xff0c;能够对外输出高精度的时间信息&#xff0c;并通过多种接口、多种形式进行时间信息的传递。 step by step介绍GNSS卫星导航定位基本原理&#xff0c;为什么定位需要至少4个卫星&#xff1f;这个文章的最后&#xff0c;我们介绍了为什么GNSS接…...