数据中心法是实现词法分析器的结构化方法。通过设计主表和子表分开存储状态转移信息,实现词法分析器的控制逻辑和数据结构分离。
主要解决了状态爆炸、难以维护和复杂性的问题。
状态爆炸是指当状态和转移较多时,单一使用一个表来存储所有的信息的话会导致表过大和效率低下。
难以维护是指仅有一个大表的话,词法分析的状态机逻辑和状态表结构耦合进而导致难以调整和维护。
复杂性是指当对复杂的词法进行分析时,传统状态机会变的非常复杂。
结构:
主表:数据项=状态+分表地址或者子程序入口
当状态为终态时,分表地址为子程序入口
当状态为非终态时,为分表入口
子表:数据项=当前输入符+转台转移