基于C语言编译器的词法分析浅析
作者:钱明珠 汪小宝
来源:《电脑知识与技术》2013年第24
        摘要:编译器是高级语言执行前必须使用的一个环节,它的作用是将自然语言转换成机器语言,而词法分析又是编译器整个工作的第一步——词素解析,笔者从词法分析的任务、基本词素、词法分析工具和DFA几个方面对词法分析进行浅析。
        关键词:词法分析;编译器;有穷自动机(DFA);词素
        中图分类号:TP311 文献标识码:A 文章编号:1009-3044201324-5450-05
        计算机问世以后,就彰显了它神奇的力量就是为我们解决各种复杂的问题,事实上它的神奇都是我们人类赋予计算机。当我们面临的一个问题,便想办法告诉计算机什么问题,怎么解决,结果是什么。告诉计算机的过程就是我们选择程序语言的编程的操作。最早人们使用机器语言,由于专业性太强,被少数人员所掌握,慢慢过渡到高级语言,但高级语言又不能直接被计算机识别和执行,必须经过等价的转换,变成计算机能识别并执行的机器代码。完成这种等价转换操作的工具,就是编译程序。
        1 编译程序的结构
        编译程序完成高级语言到机器语言的转换,最终得到计算机可执行的01代码,但这个复杂的过程可被分成五个相对独立的阶段——词法分析阶段、语法分析阶段、语义分析及中间代码生成阶段、优化代码阶段和OBJ代码生成阶段,每个阶段承担专门的工作,前一个阶段的产物正好是下一个阶段处理的数据。
        1.1 词法分析阶段
        词法分析阶段就是对源代码中字符串进行扫描和分解,依据高级语言的编程规则将字符串( String)转化成词素 Token)。例如对于C-语句:
c语言编译器怎么用?        词法分析的结果用二元式表示是:
        构词的规则就是词法,例如标识符(ID)可定义为以字母开头,后面跟零个或任意个字母或数字的序列。词法分析程序就根据词法构造有限自动机来识别每一个词素,词素的编码[1],将产生的单词交给语法分析程序。