1959年,Chomsky证明了文法和自动机的等价性,由此形式语言诞生了。目前,我们主要探讨4类文法,正则文法(确定有限自动机或非确定有限自动机)、上下文无关文法(下推自动机),上下文有关文法(线性有界自动机)、无限制文法(图灵机)。
有限自动机具有有限种状态。
上下文无关文法(CFG, Context Free Grammar)属于二类文法,其能力等价于下推自动机(PDA)。相对于三类文法即正则文法,上下文无关文法能够对非终结符做状态转移。
图灵机的状态也是有限的。图灵机的“内存”不是栈,而是纸带,由此可以看做是有两个栈的PDA。
自上而下和自下而上是两种常用的上下文无关文法分析方法。
自上而下的方法的难点在于选择哪个产生式进行推导,自下而上的分析方法难点在于在不同的格局下选择移进或归约的矛盾。
线段树和树状数组
发表于
线段树和树状数组是一系列神奇的数据结构的起源,但其本身却十分简洁优雅,是我非常喜欢的两种数据结构。
PAT解题报告
发表于
浙江大学PAT(Programming Ability Test) A-level、top-level以及CCCC练习题的部分解题报告。
源码在 https://github.com/CalvinNeo/PAT
[YN\d]\t(\d\+\-)+\t([\w ]+)\(\d+\).*
JSCPC总结
发表于
五月八日在南京大学参加了第一届江苏省程序设计大赛。这次破天荒拿了7A。
winsock/boost::asio笔记
发表于
WinSock/boost::asio 编程遇到的一些问题
Python中的重要科学计算库numpy
发表于
本文主要包括numpy用法上的一些套路和坑。
GCC和MSVC在pow函数实现和类型转换比较
发表于
ACM中常常遇到卡精度的问题,卡精度可能因为取整、比较相等、高精度等多种原因。
这里通过一个例子试图探讨两个编译器的浮点数运算实现机制以及类型转换的机制,以及使用不同编译器和使用不同指令集在取整上的卡精度的问题。
brainfuck
发表于
brainfuck是一个图灵完备的语言,仅有8个操作,晦涩难懂,但能够像图灵机一样完成任何计算。本文主要讨论一下brainfuck的一些编程技巧。
C++ 中 for 循环的一个用法
发表于
今天发现了 C/C++ 里面 for 的一个不常见到的用法,来水一篇文章。
ACM/ICPC EC-FINAL小结
发表于
EC-FINAL是2015年度最后一次ACM区域赛了,这次总共有288个队参加比赛。命题还是Google。