U2 文法和语言

文章目录

  • 一、预备知识
    • 1、字母表和符号串
    • 2、符号串形式定义
    • 3、符号串相等
    • 4、延申
  • 二、文法
    • 1、 一些概念
    • 2、文法的定义
    • 3、推导的形式定义
    • 4、规范推导
    • 5、语言的形式定义
    • 6、递归文法
    • 7、BNF范式
    • 总结
  • 三、短语、简单短语和句柄
  • 四、语法树(推导树)
    • 1、概念
    • 2、语法树推导--句型的推导
    • 3、规约
  • 五、二义性
    • 1、二义性文法
    • 2、二义性的改进
    • 3、有害文法
  • 六、乔姆斯基文法体系
    • 1、概念
    • 2、分类

一、预备知识

1、字母表和符号串

字母表: 符号的非空有限集 例: ∑ \sum = a , b , c {a,b,c} abc
符号: 字母表中的元素 例: a , b , c a,b,c abc
符号串: 符号的有穷序列 例: a , a a , a c , a b c , . . a, aa, ac, abc,.. a,aa,ac,abc..
空符号串:无任何符号的符号串 ( ε ) (ε) (ε)

2、符号串形式定义

有字母表 ∑ \sum ,定义:
(1)ε是 ∑ \sum 上的符号串;
(2)若x是 ∑ \sum 上的符号串,且a ∈ \in ∑ \sum ,则 ax 或 xa 是 ∑ \sum 上的符号串;
(3)y是 ∑ \sum 上的符号串, i f f iff iff (当且仅当)y可由(1)和(2)产生。

3、符号串相等

  1. 符号串相等:若x、y是集合上的两个符号串,则x=y iff(当且仅当)组成x的每一个符号和组成y的每一个符号依次相等
  2. 符号串的长度:x为符号串,其长度 ∣ x ∣ |x| x等于组成该符号串的符号个数。
  3. 符号串的联接:若x、y是定义在Σ上的符号串, 且 x = X Y , y = Y X x=XY,y=YX xXYyYX,则x和y的联接 x y = X Y Y X xy=XYYX xyXYYX也是 Σ Σ Σ上的符号串。
  4. 符号串集合的乘积运算:令A、B为符号串集合,定义 A B = AB= AB{ x y ∣ x ∈ A , y ∈ B xy |x∈A, y∈B xyxA,yB}
    A = A= A{ s , t s, t s,t}, B = B = B= { u , v u,v u,v}, A B = AB= AB={ s u , s v , t u , t v su,sv,tu,tv susvtutv}
    注意因为 ε x = x ε = x εx=xε=x εxxεx,所以{ ε ε ε} A = A A=A A=A { ε ε ε} = A =A =A。但 ε A εA εA= A ε Aε Aε= ∅ ∅
  5. 符号串集合的幂运算: A 2 A^2 A2=AA , A n = A n − 1 A = A A n − 1 A^n=A^{n-1}A=AA^{n-1} An=An1A=AAn1
  6. 符号串集合的闭包运算:设A是符号串集合,定义
    A + = A 1 ∪ A 2 ∪ A 3 ∪ … … ∪ A n ∪ … A^+= A^1 ∪ A^2 ∪ A^3 ∪……∪ A^n ∪… AA1A2A3……An 称为集合A的正闭包。
    A ∗ = A 0 ∪ A + A*= A^0 ∪A^+ AA0A 称为集合A的闭包

4、延申

  1. 若A为某语言的基本字符集( 把字符看作符号)
    A = A= A{ a , b , … … z , 0 , 1 , … … , 9 , + , - , × , , / , ( , ) , = , … … a, b, ……z, 0, 1, ……, 9, +, -, ×, _, /, ( , ), =, …… a,b,……z,0,1,……,9,+,,×,,/,(,),=,……}
  2. B为单词集 (单词是符号串)
    B = B = B={ b e g i n , e n d , i f , t h e n , e l s e , f o r , … … , < 标识符 > , < 常量 > , … … begin, end, if, then, else, for, ……,<标识符>,<常量>, …… begin,end,if,then,else,for,……,<标识符>,<常量>,……}
  3. C是句子(语言的句子是定义在B上的符号串。)
    若令C为句子集合,则 C ⊂ B ∗ C \subset B* CB , 程序 ⊂ C \subset C C
  4. 词法:若把字符看作符号,则单词就是符号串,单词集合就是符号串的集合。
  5. 句法:若把单词看作符号,则句子就是符号串,而所有句子的集合(即语言)就是符号串的集合。

二、文法

1、 一些概念

  1. 文法:对语言结构的定义与描述。即从形式上用于描述和规定语言结构的称为“文法”(或称为“语法”)。
  2. 语法规则:我们通过建立一组规则,来描述句子的语法结构。规定用“ : : = ::= ::=”表示“由…组成”(或“定义为…”)。 eg. < 句子 > : : = < 主语 > < 谓语 > <句子>::=<主语><谓语> <句子>::=<主语><谓语>
  3. 由规则推导句子:有了一组规则之后,可以按照一定的方式用它们去推导或产生句子。
  4. 推导方法:从一个要识别的符号开始推导,即用相应规则的右部来替代规则的左部,每次仅用一条规则去进行推导。
    这种推导一直进行下去,直到所有带< >的符号都由终结符号替代为止
    有若干语法成分同时存在时,我们总是从最左的语法成分进行推导,这称之为最左推导,类似的有最右推导(还有一般推导)。

从一组语法规则可推出不同的句子,如以上规则还可推出“大象吃象”、“大花生吃象”、“大花生吃花生”等句子,它们 在语法上都正确,但在语义上都不正确。
所谓文法是在形式上对句子结构的定义与描述,而未涉及语义问题。
5. 语法(推导)树:我们用语法(推导)树 来描述一个句子的语法结构。
语法成分:在形式语言中又称“非终结符”
单词符号:在形式语言中又称“终结符号”

2、文法的定义

文法 G = ( V n , V t , P , Z ) 文法G=(V_n,V_t,P,Z) 文法G=VnVtPZ
V n :非终结符号集 V_n:非终结符号集 Vn:非终结符号集
V t :终结符号集 V_t:终结符号集 Vt:终结符号集
P :产生式或规则的集合 P:产生式或规则的集合 P:产生式或规则的集合
Z :开始符号(识别符号) Z ∈ V n Z:开始符号(识别符号) Z∈Vn Z:开始符号(识别符号)ZVn

其中, V = V n ∪ V t V=V_n ∪V_t VVnVt称为文法的字汇表。
规则: U : : = x      U ∈ V n , x ∈ V ∗ 规则:U ::= x \ \ \ \ U ∈V_n, x∈V^* 规则:U::=x    UVn,xV

规则的定义:规则是一个有序对(U, x), 通常写为: U : : = x U ::= x U::=x U → x U → x Ux , ∣ U ∣ = 1 | U| = 1 U=1 ∣ x ∣ |x| x >= 0 0 0

3、推导的形式定义

文法 G : v = x U y , w = x u y 文法G:v=xUy,w=xuy 文法GvxUywxuy
其中 x 、 y ∈ V ∗ , U ∈ V n , u ∈ V ∗ 其中x、y ∈V^*,U∈V_n , u ∈V^* 其中xyVUVn,uV
若 U : : = u ∈ P ,则 v = > G w 若U ::= u∈P,则v =>^G w U::=uP,则v=>Gw
若 x = y = ε   有 U : : = u ,则 U = > G u 若x=y=ε \ \ 有U ::= u,则U =>^G u x=y=ε  U::=u,则U=>Gu

文法 G , u 0 , u 1 , u 2 , … … , u n ∈ V + 文法G,u_0, u_1, u_2, ……,u_n∈V^+ 文法Gu0,u1,u2,……unV+
i f     v = u 0 = > G u 1 = > G u 2 = > G … … = > G u n = w if \ \ \ v= u_0=>^G u_1=>^G u_2 =>^G…… =>^G u_n=w if   v=u0=>Gu1=>Gu2=>G……=>Gunw
则 v = > G + w 则 v =>_G^+w v=>G+w

文法 G ,有 v , w ∈ V + 文法G,有v,w ∈V^+ 文法G,有vwV+
i f v = > G + w , 或 v = w ,则 v = > G ∗ w if v =>_G^+w , 或v=w,则 v =>_G^*w ifv=>G+w,v=w,则v=>Gw

4、规范推导

有 x U y = = > x u y , 若 y ∈ V t ∗ , 则此推导为规范的,记为 x U y 有xUy ==> xuy, 若 y ∈V_t^* , 则此推导为规范的,记为 xUy xUy==>xuy,yVt,则此推导为规范的,记为xUy =|=> x u y xuy xuy

直观意义:规范推导=最右推导
最右推导:若规则右端符号串中有两个以上的非终结符时,先推右边的。
最左推导:若规则右端符号串中有两个以上的非终结符时,先推左边的

若有v = u0 =|=> u1=|=> u2=|=>……=|=> un= w, 则 v v v = ∣ = > + =|=>^+ ==>+ w w w

5、语言的形式定义

  1. 句型: x 是句型   等价于    Z = > ∗ x , 且 x ∈ V ∗ ; 句型:x是句型\ \ \ 等价于\ \ \ Z =>^* x , 且 x∈V^* ; 句型:x是句型   等价于   Z=>x,xV
  2. 句子: x 是句型   等价于    Z = > + x , 且 x ∈ V t ∗ ; 句子:x是句型\ \ \ 等价于\ \ \ Z =>^+ x , 且 x∈V_t^* ; 句子:x是句型   等价于   Z=>+x,xVt
  3. 语言: L ( G [ Z ] ) = 语言:L(G[Z])= 语言:L(G[Z]={ x ∣ x ∈ V t ∗ , Z = > + x x | x∈V_t^*, Z =>^+ x xxVt,Z=>+x} ;
    G 和 G ’是两个不同的文法,若 L ( G ) = L ( G ’ ) , 则 G 和 G ’为等价文法。 G和G’是两个不同的文法,若 L(G) = L(G’) ,则G和G’为等价文法。 GG是两个不同的文法,若L(G)=L(G),GG为等价文法。

6、递归文法

递归规则:规则右部有与左部相同的符号(非终结符)对于 U : : = x U y U::= xUy U::=xUy

  1. 若 x = ε , 即 U : : = U y ,左递归 若x=ε, 即U::= Uy, 左递归 x=ε,U::=Uy,左递归
  2. 若 y = ε , 即 U : : = x U ,右递归 若y=ε, 即U::= xU, 右递归 y=ε,U::=xU,右递归
  3. 若 x , y ≠ ε ,即 U : : = x U y ,自嵌入递归 若x, y≠ε,即U::= xUy,自嵌入递归 x,y=ε,即U::=xUy,自嵌入递归

递归文法:文法G,存在 U ∈ V n U ∈V_n UVn
i f    U = = > + … U … , 则 G 为递归文法; if \ \ U==>^+…U…, 则G为递归文法; if  U==>+U,G为递归文法;
i f    U = = > U + … , 则 G 为左递归文法; if\ \ U==>U^+…, 则G为左递归文法; if  U==>U+,G为左递归文法;
i f    U = = > + … U , 则 G 为右递归文法。 if\ \ U==>^+…U, 则G为右递归文法。 if  U==>+U,G为右递归文法。

递归文法的优点:可用有穷条规则,定义无穷语言

左递归文法的缺点:不能用自顶向下的方法来进行语法分析

7、BNF范式

巴克斯范式(Backus-Naur Form,简称BNF)是一种用于描述上下文无关文法(Context-Free Grammar,简称CFG)的形式化表示方法,具体规则如下:

  1. 非终结符(Non-terminal symbols):用尖括号括起来,表示语法规则的左侧。非终结符表示一类语法结构,可以根据产生式规则进行替换。
  2. 终结符(Terminal symbols):用引号括起来,表示语法规则的右侧。终结符是构成实际句子的基本符号,是语言中的实际词汇或符号。
expr     -> expr '+' term | expr '-' term | term
term     -> term '*' factor | term '/' factor | factor
factor   -> '(' expr ')' | NUMBER

总结

编译主要的目的是: 给定 C 语言程序 x 以及语言规范 G , 求 x ∈ L ( G ) ? 给定C语言程序 x 以及语言规范 G , 求x ∈L(G) ? 给定C语言程序x以及语言规范G,xL(G)?
在这里插入图片描述

三、短语、简单短语和句柄

给定文法 G [ Z ] , w = x u y ∈ V + ,为该文法的句型 给定文法G[Z], w = xuy∈V+,为该文法的句型 给定文法G[Z],w=xuyV+,为该文法的句型

若 Z = = > ∗ x U y , 且 U = = > + u , 则 u 是句型 w 相对于 U 的 若 Z ==>^* xUy, 且U ==>^+u, 则u是句型w相对于U的 Z==>xUy,U==>+u,u是句型w相对于U短语

若 Z = = > ∗ x U y , 且 U = = > u , 则 u 是句型 w 相对于 U 的 若 Z ==>^* xUy, 且U ==>u, 则u是句型w相对于U的 Z==>xUy,U==>u,u是句型w相对于U简单短语

其中 U ∈ V n , u ∈ V + , x , y ∈ V ∗ 其中U ∈V_n,u ∈V^+,x , y ∈V^* 其中UVnuV+x,yV

任一句型的最左简单短语称为该句型的 任一句型的最左简单短语称为该句型的 任一句型的最左简单短语称为该句型的句柄

在这里插入图片描述

直观理解:短语u 是目标句型w的一部分或全部,是推导过程的前面某个句型(xUy)中的某个非终结符(U)所能推出的符号串。

任何句型本身一定是相对于识别符号Z的短语

四、语法树(推导树)

1、概念

句子( 句型)结构的图示表示法,它是有向图,由结点和有向边组成。
根结点: 识别符号(非终结符)。
中间结点:非终结符。
叶结点: 终结符或非终结符。
有向边:表示结点间的派生关系。
在这里插入图片描述

2、语法树推导–句型的推导

一般采用自顶向下分析法
给定G[Z],句型w:可建立推导序列, Z = = > G ∗ w Z ==>_G^* w Z==>Gw
可建立语法树,以Z为树根结点,每步推导生成语法树的一枝,最终可生成句型w的语法树。

3、规约

自下而上地修剪子树的某些末端结点(短语),直至把整棵树剪掉(留根),每剪一次对应一次归约。
从句型开始,自右向左地逐步进行归约,建立推导序列。
通常我们每次都剪掉当前句型的句柄(最左简单短语)即每次均进行规范归约。即对句型中最左简单短语(句柄) 进行的归约称为 规范归约
在这里插入图片描述

五、二义性

1、二义性文法

若对于一个文法的某一句子(或句型)存在两棵不同的语法树,则该文法是二义性文法,否则是无二义性文法。

无二义性文法的句子只有一棵语法树,尽管推导过程可以不同。(如最左推导,规范推导等)

若一个文法的某句子存在两个不同的规范推导,则该文法是二义性的,否则是无二义性的。

若文法是二义性的,则在编译时就会产生不确定性,遗憾的是在理论上已经证明:文法的二义性是不可判定的,即不可能构造出一个算法,通过有限步骤来判定任一文法是否有二义性。
现在的解决办法是:提出一些限制条件,称为无二义性的充分条件,当文法满足这些条件时,就可以判定文法是无二义性的。

2、二义性的改进

优先级的实现:层次定义:越靠上层,优先级越低;越靠下层,优先级越高
在这里插入图片描述

3、有害文法

  1. 若文法中有如U::=U的规则,则这就是有害规则,它会引起二义性
    在这里插入图片描述
  2. 多余规则:在推导文法的所有句子中,始终用不到的规则。即该规则的左部非终结符不出现在任何句型中(不可达符号
    在推导句子的过程中,一旦使用了该规则,将推不出任何终结符号串。即该规则中含有推不出任何终结符号串的非终结符(不活动符号

六、乔姆斯基文法体系

1、概念

形式语言:用文法和自动机所描述的没有语义的语言。
文法定义:乔姆斯基将所有文法都定义为一个四元组:

文法 G = ( V n , V t , P , Z ) 文法G=(V_n,V_t,P,Z) 文法G=VnVtPZ
V n :非终结符号集 V_n:非终结符号集 Vn:非终结符号集
V t :终结符号集 V_t:终结符号集 Vt:终结符号集
P :产生式或规则的集合 P:产生式或规则的集合 P:产生式或规则的集合
Z :开始符号(识别符号) Z ∈ V n Z:开始符号(识别符号) Z∈Vn Z:开始符号(识别符号)ZVn

2、分类

文法和语言分类:0型、1型、2型、3型
这几类文法的差别在于对产生式(语法规则)施加不同的限制。

  1. 0型
    P : u : : = v 其中 u ∈ V + , v ∈ V ∗     V = V n ∪ V t P: u ::= v其中 u∈V^+,v∈V^* \ \ \ V = V_n∪ V_t Pu::=v其中uVvV   V=VnVt
    0型文法称为短语结构文法。规则的左部和右部都可以是符号串,一个短语可以产生另一个短语
  2. 1型
    P : x U y : : = x u y   其中 U ∈ V n , x 、 y 、 u ∈ V ∗ P: xUy ::= xuy\ \ 其中 U∈V_n, x、y、u∈V^* PxUy::=xuy  其中UVnxyuV
    称为上下文敏感或上下文有关。也即只有在x、y这样的上下文中才能把U改写为u。
    左边即要有多个终结符或者非终结符,一定要有终结符。
    1型和0型区别是左边与右边长度比较,1型右边一定比左边长
  3. 2型
    P : U : : = u 其中 U ∈ V n , u ∈ V ∗ P: U ::= u其中 U∈V_n, u∈V^* PU::=u其中UVnuV
    称为上下文无关文法。也即把U改写为u时,不必考虑上下文。(1型文法的规则中x,y均为 ε 时即为2型文法)
    箭头左边一般一个字符,因此推导不受上下文约束
    2型文法与BNF表示相等价
  4. 3型
    在这里插入图片描述
    3型文法称为正则文法。它是对2型文法进行进一步限制,一个规则中只允许一个终结符和一个非终结符组合

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI Agent 结构与分类

一、什么是AI agent 在人工智能中&#xff0c;智能代理AI Agent是以智能方式行事的代理&#xff1b;它感知环境&#xff0c;自主采取行动以实现目标&#xff0c;并可以通过学习或获取知识来提高其性能。人其实就是一种复杂代理。 为了理解智能代理的结构&#xff0c;我们应该熟…

C++面试宝典第2题:逆序输出整数

题目 写一个方法&#xff0c;将一个整数逆序打印输出到控制台。注意&#xff1a;当输入的数字含有结尾的0时&#xff0c;输出不应带有前导的0。比如&#xff1a;123的逆序输出为321&#xff0c;8600的逆序输出为68&#xff0c;-609的逆序输出为-906。 解析 这道题本身并没有什么…

17、pytest自动使用fixture

官方实例 # content of test_autouse_fixture.py import pytestpytest.fixture def first_entry():return "a"pytest.fixture def order():return []pytest.fixture(autouseTrue) def append_first(order, first_entry):return order.append(first_entry)def test_s…

04数据平台Flume

Flume 功能 Flume主要作用&#xff0c;就是实时读取服务器本地磁盘数据&#xff0c;将数据写入到 HDFS。 Flume是 Cloudera提供的高可用&#xff0c;高可靠性&#xff0c;分布式的海量日志采集、聚合和传输的系统工具。 Flume 架构 Flume组成架构如下图所示&#xff1a; A…

SSM项目实战-前端-在Index.vue中展示第一页数据

1、util/request.js import axios from "axios";let request axios.create({baseURL: "http://localhost:8080",timeout: 50000 });export default request 2、api/schedule.js import request from "../util/request.js";export let getSchedu…

力扣刷题day1(两数相加,回文数,罗马数转整数)

题目1&#xff1a;1.两数之和 思路1和解析&#xff1a; //1.暴力枚举解法(历遍两次数组&#xff0c;时间复杂度O&#xff08;N^2)&#xff0c;空间复杂度O&#xff08;1&#xff09; int* twoSum(int* nums, int numsSize, int target, int* returnSize) {for (int i 0; i &…

【恋上数据结构】二叉堆学习笔记

二叉堆 需求分析 Top K 问题 什么是 Top K 问题&#xff1f; 从海量数据中找出前 K 个数据。 比如&#xff1a;从 100 万个整数中找出最大的 100 个整数Top K 问题的解法之一&#xff1a;可以用数据结构 “堆” 来解决。 堆 堆是一种【完全二叉树】&#xff0c;可以分为【…

SpringBoot自定义异常处理机制

说明&#xff1a;在完整的项目结构中&#xff0c;我们通常会创建一套自定义的异常处理机制&#xff0c;在系统可能出现异常的地方手动抛出这些异常&#xff0c;可以快速定位到异常代码片段&#xff0c;提高系统的可维护性。 本文介绍在SpringBoot项目中&#xff0c;搭建一套自…

2023.12.1 --数据仓库之 拉链表

目录 什么是拉链表 为什么要做拉链表? 没使用拉链表: 使用了拉链表: 题中订单拉链表的形成过程 实现语句 什么是拉链表 拉链表是缓慢渐变维的一种解决方案. 拉链表,记录每条信息的生命周期,一旦一条记录的生命周期结束,就重新开始一条新的记录,并把当前日期放入生效开始…

EI论文复现:基于组合双向拍卖的共享储能机制研究程序代码!

本程序参考EI期刊论文《基于组合双向拍卖的共享储能机制研究》&#xff0c;文中的组合双向拍卖交易机制较为新颖&#xff0c;本质上属于博弈范畴&#xff0c;共享储能是目前的研究热点&#xff0c;牵涉到共享储能参与者的投标策略和收益函数&#xff0c;文中所提模型可为电力市…

【兔子王赠书第10期】零基础入门Python,看这篇就够啦!

文章目录 写在前面推荐图书前言为什么要学习编程如何学习编程本书内容获得帮助 推荐理由粉丝福利写在后面 写在前面 粉丝福利第10期来啦&#xff0c;本期博主给大家推荐一本非常适合零基础入门Python的图书&#xff1a;《Python超能学习手册》&#xff0c;祝大家读完本书后都可…

深入微服务架构 | 微服务与k8s架构解读

微服务项目架构解读 ① 什么是微服务&#xff1f; 微服务是指开发一个单个小型的但有业务功能的服务&#xff0c;每个服务都有自己的处理和轻量通讯机制&#xff0c;可以部署在单个或多个服务器上。 微服务也指一种种松耦合的、有一定的有界上下文的面向服务架构。也就是说&…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之linux存储管理(5)》(21)

《Linux操作系统原理分析之linux存储管理&#xff08;5&#xff09;》&#xff08;21&#xff09; 6 Linux存储管理6.6 Linux 物理空间管理6.6.1 Linux 物理内存空间6.6.2 物理页面的管理6.6.3 空闲页面管理——buddy 算法 6.7 内存的分配与释放6.7.1 物理内存分配的数据结构 6…

运维工具之MobaXterm工具安装和使用

一、MobaXterm工具简介 MobaXterm是远程计算的终极工具箱。在一个Windows应用程序中&#xff0c;它提供了大量的功能&#xff0c;这些功能是为程序员、网站管理员、it管理员以及几乎所有需要以更简单的方式处理远程工作的用户量身定制的。MobaXterm在一个开箱即用的可移植exe文…

ros2与stm32通讯比较优秀的串口库

这个是我确定的串口库&#xff1a;serial: serial::Serial Class Reference (wjwwood.io) 我也不知道其他的串口库了&#xff0c;我就知道几个&#xff0c;然后我觉得这个是3个里面学习周期比较短&#xff0c;然后质量比较可靠的库 我隐隐觉得这个串口库就是ros1选择的串口库…

如何在Linux环境搭建本地SVN服务器并结合cpolar实现公网访问

目录 前言 1. Ubuntu安装SVN服务 2. 修改配置文件 2.1 修改svnserve.conf文件 2.2 修改passwd文件 2.3 修改authz文件 3. 启动svn服务 4. 内网穿透 4.1 安装cpolar内网穿透 4.2 创建隧道映射本地端口 5. 测试公网访问 6. 配置固定公网TCP端口地址 6.1 保留一个固定…

SVN 版本管理

SVN 文件状态 这里有一张图片可以说明&#xff1a;

C#中内置的泛型委托Func与Action

简介 从C# 3.0起很少需要自己声明委托。System.Func 是一个泛型委托&#xff0c;它可以表示带有返回值的方法。它可以接受一个到多个输入参数&#xff0c;并返回一个指定类型的结果。System.Func 委托的最后一个类型参数表示方法的返回值类型。而System.Action系列代表返回voi…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《考虑富氧燃烧技术的电–气–热综合能源系统低碳经济调度》

这个标题涉及到一个关于能源系统和经济调度的复杂主题。让我们逐步解读&#xff1a; 电–气–热综合能源系统&#xff1a; 指的是一个综合的能源系统&#xff0c;包括了电力、气体&#xff08;可能是天然气等&#xff09;、热能等多个能源形式。这种系统的设计和优化旨在使不同…

vue+electron问题汇总

1. Vue_Bug Failed to fetch extension, trying 4 more times 描述&#xff1a;项目启动时报错 解决&#xff1a;注释图片中内容 2. Module not found: Error: Can’t resolve ‘fs’ in 描述&#xff1a;项目启动报错 解决&#xff1a;vue.config.js中添加图中数据 3.导入…