首页 > 代码库 > 为什么括号不是可正则的语言

为什么括号不是可正则的语言

记得Long long ago,在找一个Vim的括号匹配问题的时候,看到一个说法,说括号是不可正则的。当时也没去深究,就只是记下了这个说法。最近,Coursera开了一 门Automata的课程,就去听了下,里面也说到括号是不正则的,没有给出证明。因此就引出了我的好奇心了。

Coursera上课,选课的时候挺兴奋的,但是往往听了几节之后,就觉得坚持不下去了。我还是喜欢需求驱动的学习,就像现在这样,我为了弄明白为 什么括号是不可正则的,到优酷上听了一个可计算理论和有限自动机的课程,里面给出了括号为什么是不可正则的证明。然后我还买了一本书,《自动机理论、语言 和计算导论》。

证明为什么括号是不可正则的,用泵引理就行了。但是,如果学习就止步于此,那估计一辈子也就没有什么成就了。我现在对自动机理论还有非常多不明白的东西,把括号为什么不可正则这个问题解决了之后,听课看书顿时就失去了目标,突然又无聊了。

很多事情,是很难靠内在驱动去做的。能靠人内在去驱动的事情,往往都是和生存生育有关的。而学习这种东西,说实在的,没有某种激励驱动真的很难坚持下去。

所以,我就写博客了。就像两年前,我把学习Semantic Web的过程用博客记录下来一样。这次我也想把我学习自动机理论的过程写下来。

我写博客的习惯,一直都在假想一个小白看我的文章,要怎么样才能说得让他看完我的博客就能明白我讲解的知识点。这样对自己要求就很高了,除了文字表述的功力上,还要求你自己就得对这个知识点弄得非常明白。但就是这个过程,能让你掌握一个知识点。

由于自动机理论相当庞大,而且挺难的,我这才开始学习,想来挺久该从哪里入手写起。后来想想,干脆就直接从泵引理开始吧。

-------- 万恶的分割线 -----------
写着写着,想到自动机理论涉及很多的数学公式和图表,Markdown好像不支持。然后就去找了好多工具,pandoc,ASCIIDoc等,然后还用RStudio和Knitr,发现这个工具挺好的。最后的最后,发现Mou本身就支持数学公式和表格,真是浪费了一晚的时间啊。
-------- 结束 --------------

为什么括号不是可正则的语言