612 字

本文同样不讲述 Coverity 工具的安装和部署,只记录在扫描 QT 项目的过程和遇到的问题。QT 项目的开发可以有多种方式,例如:在自带的 QT Creator 上,再者可在 Visual Studio 上配置相应的插件,本文所实践的项目即是采用的后者。

1093 字

Coverity 相比于传统的测试方式,会更容易发现类似 空指针引用、资源泄漏和缓冲区溢出 的异常,在开发阶段使用 Coverity 一方面可以更加保证产品的质量,另一个方面也可以使测试人员把更多的精力放在业务逻辑的测试上而不是花大量精力去确认一些需要在特殊条件下才可能出现的 bug,进而提高测试的效率。本文并不介绍 Coverity 的具体安装和部署,专注于具体项目的代码扫描检测过程。

752 字

在证明一个语言是上下文无关的时候,有两种选择:可以给出生成它的上下文无关文法,或者给出识别它的 下推自动机(PDA)。本篇所介绍的称为 下推自动机 的计算模型,很像非确定型有穷自动机,但是它有一个称为 的额外设备。栈在控制器的有限存储量之外提供了附加的存储,使得下推自动机能够识别某些非正则语言。

713 字

在研究自然语言时,人们发现名词、动词、介词以及它们的短语之间存在着自然的递归关系,因此引入了 上下文无关文法(CFG) 来帮助整理和理解这种关系。同时,上下文无关文法在程序设计语言的规范化及编译中有重要应用。设计人员在编写程序设计语言的编译器和解释器时,通常需要先获取该语言的文法,因此在大多数的编译器和解释器中都包含了一个 语法分析器 。与上下文无关文法相关的语言集合称为 上下文无关语言(CFL)。

717 字

要了解有穷自动机的能力,就必须要了解它们的局限性。我们知道能被一台有穷自动机识别的语言被称为正则语言,但在很多的时候仅凭直观的感觉往往会把我们带入歧途,这就是为什么想当然的事还需要数学证明。为此引入 泵引理 的概念

370 字

如果两台机器识别相同的语言,则称它们是等价的。换句话说确定型(DFA)和非确定型(NFA)有穷自动机识别相同的语言类;这个论述似乎出乎意料又是极为有用的。怎么说?出乎意料在于NFA好像比DFA能力更强,因此猜想NFA能识别更多的语言。极为有用在于给定的语言,描述识别这个语言的NFA有时比描述识别这个语言的DFA要容易的多。

596 字

上述在讨论的过程中,计算的每一步都按照唯一的方式跟在前一步的后面。当机器处于给定的状态并读入下一个输入字符时,就可以唯一确定下一个状态。因此称这是 确定型计算,在 非确定型 机器中,任何一个点,下一个状态都可能存在若干个 选择。非确定型是确定型的推广,因此每一台确定型有穷自动机(简称DFA)都是一台非确定型有穷自动机(简称NFA)

1000 字

计算理论要面对的第一个问题是:什么是计算机?现实的计算机相当复杂,很难直接为它们建立一个容易处理的数学理论,因此采用称为 计算模型 的理想计算机来描述,本篇就从最简单的 有穷自动机 讲起。

3611 字

Abstract Syntax Notation dot one,抽象语法标记,描述了一种对数据进行表示、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构。它包含两部分:一部分描述信息内数据,数据类型及序列格式;另一部分描述如何将各部分组成消息。而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序

//