4.解决问题的思路
为了解析数据文件,我们需要设计一门编程语言,一个该语言的运行时平台,它包括了一个编译器、文件过滤器、简单的数据库存储引擎,哦,很有挑战性了。
明知山有虎,偏向虎山行!
让我们分析一下好了:
a) 编程语言(SDT)
为了设计好这门语言,我们该做什么呢?
那就是需要大量的数据样本,从中进行抽象,找出其共同点,然后用语言进行描述。数据文件分为两类,二进制和文本,为了能快速高效的解决问题,我们第一步先把文本文件的解析作为目标,呵呵,范围又缩小了(不过,文本文件可不单单是扩展名为txt的文件,只要可以用EditPlus或记事本打开,不包含非打印字符的任何文件都在此类)
b) SDT编译器(Compiler)
语言设计好了,那么编译器的任务很简单了,词法分析、语法分析,之后把它们变成一堆符号流。
c) 文件过滤器(Distill)
有了一堆堆的符号流,我们根据它来解析用户的数据文件,并把它保存在数据库里。
d) 数据库存储引擎(Database)
提供数据库的保存引擎。
任务很明确,那我们开始行动吧!一边来分析文本文件的特点,一边来打发一个小型的数据库存储引擎吧 !