高级语言及其文法(一)
创始人
2024-06-03 22:10:06
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”仍然是字符串的第五个字符。

相关内容

热门资讯

形容冬天寒风的词语有哪些 形容冬天寒风的词语有哪些  导语:冬天,小朋友们脸上拂过的是冷冷的冬风,让小朋友们感到非常的寒冷。下...
桃花源记拼音版 桃花源记拼音版  桃(táo)花(huā)源(yuán)记(j&igra...
《溪居即事》翻译赏析 《溪居即事》翻译赏析  《溪居即事》作者为唐朝文学家崔道融。古诗全文如下:  篱外谁家不系船,春风吹...
形容云雾缭绕的语句 形容云雾缭绕的语句  雾竟有如此神奇的力量,它丰富多彩,变幻莫测,是它给这群山增添了无穷的魅力;近处...
离骚注音全文 离骚注音全文  《离骚》中有些字比较偏僻,很多人可能会认错读错,以下是小编整理的离骚注音全文,欢迎参...
弟子规出则悌全文解释 弟子规出则悌全文解释  《弟子规》是清朝康熙时山西绛州人李毓秀所作。下面是小编收集整理的弟子规出则悌...
《归园田居·其一》原文与赏析 《归园田居·其一》原文与赏析  《归园田居·其一》写景而写心,表现见出诗人对污浊官场的鄙夷和厌恶。下...
前后赤壁赋原文 前后赤壁赋原文  《前后赤壁赋》又称《赤壁二赋帖》,是元代书法家赵孟頫于元大德五年(1301)创作的...
《兰亭集序》书法特点 《兰亭集序》书法特点  《兰亭集序》之所以流传千古,不仅因为其立意深远,而且因为其文笔清新流畅,朴素...
《梅花·墙角数枝梅》翻译赏析 《梅花·墙角数枝梅》翻译赏析  “墙角数枝梅”出自宋代诗人王安石的《梅花》。此诗作于王安石第二次罢相...
欧阳修《醉翁亭记》原文与翻译 欧阳修《醉翁亭记》原文与翻译  《醉翁亭记》是北宋文学家欧阳修创作的一篇散文。以下是由小编为您整理的...
春江晚景古诗原文及翻译 春江晚景古诗原文及翻译  古诗,在我们中国的历史上,是一个特别的文化,从古传承至今,已经有了无数年的...
《登楼望水》赏析 《登楼望水》赏析  《登楼望水》是唐代顾况所做的一首诗。下面小编给大家带来《登楼望水》赏析。希望能够...
《老子·四十一章》文言文阅读... 《老子·四十一章》文言文阅读及答案  阅读下面的材料,完成23—24题。(5分)  上士闻道,勤而行...
不要把现实当童话 不要把现实当童话  是的,在现在这个残酷的现实生活中,我总见到很多人一直把现实当成童话。他们总有一个...
出师表 / 前出师表诸葛亮的... 出师表 / 前出师表诸葛亮的文言文原文赏析及翻译  在日常过程学习中,我们总免不了跟文言文打交道,文...
《秋水时至》文言文阅读及答案 《秋水时至》文言文阅读及答案  阅读并回答问题。  秋水时至,百川灌河。泾流之大,两涘渚崖之间,不辩...
《岳阳楼记》的原文及译文 《岳阳楼记》的原文及译文  《岳阳楼记》是北宋文学家范仲淹于庆历六年九月十五日(1046年10月17...
诗经取名女孩 诗经取名女孩大全  利用诗经取名,一直是中国人非常擅长和喜欢的一件事,诗经中含有哲理,含有思想,含有...
杜甫《春夜喜雨》全诗以及解释 杜甫《春夜喜雨》全诗以及解释  杜甫的《春夜喜雨》是描绘春夜雨景,表现喜悦心情的名作。下面我们为大家...