高级语言及其文法(一)
创始人
2024-06-04 00:03:32
0

目录

语言概述

单词(token)

语句(sentence)

程序(program)

语言(language)

基本定义

字母表(alphabet)

字母表的乘积

字母表的n次幂

字母表的闭包

句子 

出现(occurrence)


语言概述

单词(token)

按照一定规则由字符(character)组成的串。字符则是由大小写英文字符,各种运算符和分隔符组成的ASCII字符集。

语句(sentence)

或被称为句子。按照一定规则由单词组成的串。

程序(program)

按照一定规则由语句组成的串。

语言(language)

语句的集合。

基本定义

字母表(alphabet)

一个非空集合,字母表中的元素称为该字母表的一个字母(letter),或者字符(character)。

这个字母表和我们常说的ABCD...Z那个字母表不太一样。"0,1",“+,-,*,/"甚至是换行符"\n"都可以构成字母表,以下列出几个字母表作为例子。

{a,b,c,d,A,B,C,..,Z}

{0,1}

{+,-,*,/,!,&,=,<,>,\n,\t}

需要注意的是,字母表中的字符应满足整体性可辨认性(可理解为不可重复性)。

整体性是指假设现在有个字母表中有“\n",它属于单个字符,是不能被拆分为”\"和"n"的。

而可辨认性也很简单,就是一个字母表内不能出现相同的字母。比如{a,b,a}构成一个句子ab,你没法辨认区分出现的到底是第一个a还是第二个a。

字母表的乘积

直接两两相乘就行

{0,1} {0,1}={00,01,10,11}

需要注意的是字母表乘积不满足乘法交换律,例子如下

{a,b,c} {0,1}={a0,a1,b0,b1,c0,c1}

{0,1} {a,b,c}={0a,0b,0c,1a,1b,1c}

字母表的n次幂

\sum_{}^{}是一个字母表,它的n次幂递归定义为

\left\{\begin{matrix} \sum ^0={\varepsilon } & & \\ \sum^n=\sum^{n-1}\sum,n\geq1 & & \end{matrix}\right.

其中,\varepsilon是由\sum_{}^{}中的0个字符组成的。这个概念可以类比于集合里的空集\oslash。但{\varepsilon}并不是空集,因为实际上\varepsilon也算一个字符串,只不过\varepsilon是一个长度为0的空字符串。  

这个n代表什么呢?假设给个字母表{a,b,c},那么n=3就是字母表挑2个字符出来,然后两两组合(包括与它本身)的所有集合,即{aa,ab,ac,ba,bb,bc,ca,bc,cc}。也就是{a,b,c}与{a,b,c}相乘,这也符合它的定义。

字母表的闭包

闭包有两种,一种是正闭包,另一种是克林闭包(Kleene closure)。

以下是它们的定义

正闭包

\sum{}^+=\sum \cup \sum{}^2 \cup \sum{}^3 \cup ...

克林闭包

\sum{}^*=\sum{}^0 \cup \sum{}^+

克林闭包的字母表就比正闭包多了个\varepsilon,没了。举个例子就明白了

\\ \{0,1\}^+=\{0,1,00,01,10,11,000,001,010,......\}\\ \{0,1\}^*=\{\varepsilon ,0,1,00,01,10,11,000,001,010,......\}

句子 

又被称为字(word),行(line),串(string),字符行,字符串。

当给定一个字母表以及它的克林闭包时,x若属于它的克林闭包,那么x就被称为字母表上的一个句子。\varepsilon被称为字母表上的一个空句子(null)。比如在下面这个克林闭包中,01就是字母表上的一个句子。

\sum{}^*=\{\varepsilon ,0,1,00,01,...\}

出现(occurrence)

给定一个字母表,对于克林闭包中所有的x,y,当a属于字母表时,句子xay中的a称为a在该句子中的一个出现(occurrence)。(这里出现是作为一个名词来使用的,而不是作为动词使用。)

不难理解,还是上面那个字母表。从克林闭包中取出x,y。再从字母表中取出a。将xay组合在一起构成句子时,如果xay也属于克林闭包,那么有以下三种定义

1.当x=\varepsilon,a的这个出现为字符串xay的首字符,也就是”第一个出现是该字符串的第一个字符“。

2.当y=\varepsilon,a的这个出现为字符串xay的尾字符,也就是”第n个出现是该字符串的最后一个字符“。

3.如果a的某个出现是字符串xay的第n个字符,则y的首字符的这个出现是字符串的第n+1个字符。

\sum{}=\{0,1\}

\sum{}^*=\{\varepsilon ,0,1,00,01,...\}

定义三这话有点绕。比如x=001,y=110,a=0。xay=0010110。a的第三个出现是xay的第四个字符。y的首字符的出现就是字符串的第五个字符。那如果字母表是这种呢?

\sum{}=\{00,11\}

\sum{}^*=\{\varepsilon ,00,11,0011,1100,...\}

一样的,假设取x=0011,y=1100,a=00。xay=0011001100。a的第二个出现是xay的第三个字符“00”,y的首字符“11”仍然是字符串的第五个字符。

相关内容

热门资讯

延续百年的艺术生命 转自:光明日报    布勒东(1896—1966)资料图片    马格利特作品《人类的境况》资料图片...
中粮糖业控股股份有限公司关于参... 证券代码:600737 证券简称:中粮糖业 公告编号:2025-014中粮糖业控股股份有限公司关于...
获格莱美四项提名歌手参加我是歌... 【#获格莱美四项提名歌手参加我是歌手# #3名国际歌手谈参加我是歌手#】5月14日,#歌手首发阵容官...
教育部禁止中小学生用AI写作业... 【#教育部禁止中小学生用AI写作业##教育部给学生的AI依赖立规矩#】5月12日,教育部基础教育教学...
中国建筑全资子公司新增一项41... (转自:快查一企业中标了)快查APP显示,中国建筑相关公司中国建筑一局(集团)有限公司于2025年5...
收盘:美股涨跌不一 道指连续第... 查看最新行情   北京时间5月15日凌晨,美股周三收盘涨跌不...
河南蓝天燃气股份有限公司关于使... 证券代码:605368 证券简称:蓝天燃气 公告编号:2025-034转债代码:111017 转债...
秘鲁总统任命前司法部长阿拉纳为... 秘鲁总统博鲁阿尔特(左)和新任总理爱德华多·阿拉纳(右)在宣誓仪式上新华社利马5月14日消息,秘鲁总...
原油:WTI下跌 美国原油库存...   原油下跌,此前有政府报告显示,美国原油库存创两个月来最大增幅,抵消了世界两大经济体贸易战暂停带来...
长江精工钢结构(集团)股份有限... 股票简称:精工钢构 股票代码:600496 编号:临2025-065转债简称:精工转债 转债代码...
山东高速路桥集团股份有限公司关... 证券代码:000498 证券简称:山东路桥 公告编号:2025-42山东高速路桥集团股份有限公司关...
丽珠医药集团股份有限公司关于回... 证券代码:000513、01513 证券简称:丽珠集团、丽珠医药 公告编号:2025-042丽珠医药...
因存在安全隐患,福特公司召回约... 央视记者当地时间5月14日获悉,福特汽车公司宣布,由于存在可能导致车辆在行驶过程中丧失制动功能、增加...
“土原料”变“潮产品” 青海兄弟乳业生物科技有限公司张成龙获“2025 IMW世界甜品巧克力&手工冰淇淋大赛暨2025意大利...
顺我者富 逆我者贫——解读特朗...   美国众议院共和党提出的新税收法案草案中,富人和企业投资者明显受益,而移民、顶尖私校等被特朗普长期...
青稞“链”上黄金道 产业升级加... 5月13日,海东市互助土族自治县青稞产业园内,青稞香飘满链。生产线轰鸣声中,金黄青稞粒经低温烘焙化作...
青海多措并举维护广告市场良好秩... 本报讯 (记者 董洁) 5月14日,记者从青海省市场监督管理局获悉,为切实维护全省广告市场秩序,保障...
厦门钨业股份有限公司关于向控股... 证券代码:600549 证券简称:厦门钨业 公告编号:临-2025-046厦门钨业股份有限公司关于...
安徽古麒绒材股份有限公司首次公... 安徽古麒绒材股份有限公司(以下简称“发行人”)首次公开发行不超过5,000万股人民币普通股(A股)(...
中蒙第二条跨境铁路开工 新华社呼和浩特5月14日电(记者 赵泽辉) 14日,中蒙两国能源合作重要通道——中蒙甘其毛都至嘎...