词法分析小结


    词法分析结
      词法分析编译器工作第阶段工作输入(源代码)中取token作parser(语法分析)输入般词法分析阶段会空白字符(white space空格tab换行)注释剔降低步分析复杂度词法分析器般会提供gettoken()样方法parser做语法分析时调词法分析器方法token词法分析器次性遍历源代码采取种ondemand方式:parser需时工作次取token
      tokenlexeme
      首先token等lexemetokenlexeme关系类似面象语言中类实例(象)间关系中文知该解释语言中变量ab属种token:identifieralexemeabb关键字种tokentoken附带值属性例变量a调词法分析器gettoken()时会返回identifier类型tokentoken带属性a属性样例表示数字token带表示数字值属性整型
      代码:
      int age 23
      int count 50
      次提取出8token:int(值int)id(值age)assign(值)number(值整型数值23)int(值int)id(值count)assign(值)number(值50)
      正表达式
      正表达式描述字符串模式例digit+表示numbertoken中digit表示单数字(里说正表达式完全实现正引擎识正表达式等价里描述问题已)
      然c语言行注释正表达式描述较麻烦时更倾直接穷动机(finite automaton)描述描述非常直观容易
      穷动机(finite automata)
      穷动机称限状态机状态输入字符作发生迁移识token画出fa代码实现fa词法分析器差弄
      穷动机分确定性(dfa)非确定性(nfa)两种果输入会确定状态迁移路线确定状态dfa否nfa
      dfa输入确定状态词法分析器然优先采nfa干嘛呢?nfa做描述时更方便非常迅速画出识tokennfa图想直接画出dfa动少脑筋
      根正表达式构建nfa
      述nfa更容易画出先研究nfa定义token时正表达式描述正表达式干行合适例digit+描述数字方便
    需根正表达式画出等价nfa算法非常简单tompson’s construction书写清楚
      nfa转化成dfa(nfa确定化)
      计算机说面输入果状态计算机清楚转状态期正表达式dfanfa样编程实现时较然(输入确定状态)幸运nfa转化成dfa什nfa转化成dfa?fa(finite automata)中状态画fa正确识tokenok果nfadfa达样效果:识token
      nfa确定化质原状态改状态表示新状态实状态集nfa中状态s1输入a达s2s3dfa中s2s3合起认状态问题nfa中空转换(输入)果s1输入达s2表示s1条件转移s2s1s2然合起作dfa中状态nfa转dfa算法理解首先先定义空闭包(closure):
      closure 状态sclosures转换达状态集sclosure永远会包含s身状态集closure该状态集中状态closure集合
      nfa确定化算法(subset construction):
      开始状态开始计算closure状态集set1然考察set1某输入a作会迁移状态状态集中起求集合closure
    set2样画两圈标set1标set2然画条set1set2线两圆连起线标a样dfa部分画然考察set1输入达状态集closure样画圈连线类推时候包含原nfa中终结状态(final stateacceptin state)dfa状态(转换dfa中状态包含原nfa中状态)标记终结状态
      化dfa状态数
      正表达式构建出等价nfa然nfa确定化成dfa似事情搞完事实证明(时显然发现)终构成dfa似复杂状态冗余呃dfa化
      化dfa状态数算法思想开始时假设完美情况整dfa两状态终结状态开始(难道种状态情况?果原dfa中存非终结状态然非终结态终结态合)然假设真算法完美假设假设进步考察果发现状态合分出吧样重复考察直发现没状态会合时做完时正优解
      嗯开始非终结状态袋子包起成状态终结状态袋子包起成状态注意原dfa中状态间连线扯断然抽出中袋子考察中状态准备输入然逐出测试果该袋子中状态某输入a达状
    态正袋子中说明袋子中状态目前合说果输入作袋子中状态达新状态正袋子中状态合果某输入a袋子中部分状态会转移袋子中状态叛徒假设s1s2竟然输入a会迁移袋子中状态说明s1s2转移袋子中状态合s1s2装成新袋子原袋子中分出然现假设s1s2合装起究竟真合呆会考察考察完输入a接着考察输入果考察完袋子发现状态a输入转移袋子中状态dfa合成状态a输入身状态迁移
      实现词法分析器
      token表示数字token:num正表达式描述然画出nfanfa转化成dfa化dfa状态词法分析器分析token类型tokendfa合成dfa样dfa识语言token果某连串输入dfa达终结状态说明源代码错误
      c#实现compiler construction principles and practice中tiny语言词法分析器tiny语言关键字:if then else end repeat until read write操作符+*<()(全角逗号算文章分隔符)10然余tokennumber (数字)identifier(字母)dfa图:
      面张图编译原理实践中样中带中括号输入说明输入lookahead
    匹配成功重新放回输入流中识num时果发现非digit说明识number识非digit字符放回输入流留着次识
      中startdoneother指非white space非{非letter非digit非字符合法+ * 合法输入#号done状态说次gettoken已结束状态机合法输入进入done状态究竟startdone合法+号导致合法#号导致代码中实现判断肯定+号#号作start状态会进入done状态
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 积分 [ 获取积分 ]

    下载文档

    相关文档

    词法分析与语法分析程序设计

    l 实验三 词法分析与语法分析程序设计一.实验目的基本掌握计算机语言的词法分析程序和语法分析程序的设计方法。二.实验要求、内容及步骤实验要求:1.根据以下的正规式,画出状态图;标识符:<字母...

    1年前   
    279    0

    编译原理实验报告(一)词法分析程序

     编译原理实验报告(一) ----词法分析程序【目的要求】 通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的...

    3年前   
    767    0

    需求分析小结

    需求分析小结  需求分析是项目开发的基础,基础打的牢不牢直接关系到后面所有的工作,是项目实施成败的关键  项目经理博客  总体上说,我们的需求分析是做了,但是做得很不够,我们做的需求只解决了我...

    8年前   
    825    0

    问题分析小结

    问题分析小结  在应用mfc odbc类进行数据库应用的开发的过程中遇到了好多问题,曾搞得我焦头烂额^_^,项目开发完成后,对开发过程中关于odbc报错问题解决方法做个小结。  报错一: “不...

    9年前   
    594    0

    个人党性分析小结

     个人党性分析小结 前段时间,我队党支部召开了全体党员参加的支部会议,对每个党员的小结材料进行分析,并开展了批评与自我批评活动。针对每个党员存在的问题,支部要求每个党员进行自我整改,制订相应...

    14年前   
    17058    0

    医学英语记忆-构词法

    医学英语记忆-构词法语言是随着人类社会的不断发展而发展的。一些旧词的过时意味着需要人们创造出一些新的词,而新的词的产生,大抵服从语法的法则,有其规律可循。语言的这种“弃旧创新“不断完善和发展的...

    2年前   
    398    0

    数据分析培训小结

    数据分析培训小结     本次数据分析课程主要是教我们如何使用OFFICE组件中的EXCEL表格以多种形式对现有数据进行分析。 从我个人的理解来看,数据分析能力,在绝大部分情况下的目的在于...

    11年前   
    11143    0

    分析评议阶段个人小结

    分析评议阶段个人小结  先进性教育活动分析评议阶段个人小结  历时一个月的分析评议阶段已近尾声了,在这一阶段活动中,按照县局党委的统一部署和站支部的方案要求,以一名普通党员的身份,积极投身于第...

    9年前   
    684    0

    分析评议阶段个人小结

    分析评议阶段个人小结分析评议阶段个人小结 本人××年参加工作,××年加入中国共产党,先后在××从事××工作,现任××。        在认真回顾自己的工作、学习,对自己的党性状况进行深刻剖析,...

    8年前   
    420    0

    分析评议阶段个人小结

    分析评议阶段个人小结  历时一个月的分析评议阶段已近尾声了,在这一阶段活动中,按照县局党委的统一部署和站支部的方案要求,以一名普通党员的身份,积极投身于第二阶段的分析评议活动中,学习理论知识、...

    9年前   
    515    0

    医院满意度专题调研分析与小结

    综合医院满意度调查分析与小结 为深入了解我国综合医院环境及工作情况,我们各自对自己所在地区医院进行了满意度调查,并从“门诊情况满意度调查”、“住院情况满意度调查”、“整体环境及健康促进满意度...

    10年前   
    10881    0

    高考英语一轮复习:词法(七)(Word版,含答案)

    高考英语一轮复习:词法(七)姓名:__________ 班级:__________学号:__________一、单选题1.Many people cycle to work _______ t...

    2年前   
    615    0

    高中英语构词法必考合集

    在英语中,一个单词由一种词性转化为另一种或几种词性而词形不变的方法叫做转化法。1. 动词转化为名词Let me have a try.让我试试。

    10个月前   
    267    0

    高考英语一轮复习:词法(六)(Word版,含答案)

    高考英语一轮复习:词法(六)姓名:__________ 班级:__________学号:__________一、单选题1.The prices of this kind of wine ___...

    2年前   
    522    0

    高考英语一轮复习:词法(八)(Word版,含答案)

    高考英语一轮复习:词法(八)姓名:__________ 班级:__________学号:__________一、单选题1.I suggested the person ______to be ...

    2年前   
    678    0

    高考英语一轮复习:词法(九)(Word版,含答案)

    高考英语一轮复习:词法(九)姓名:__________ 班级:__________学号:__________一、单选题1.Last year was the warmest year on r...

    2年前   
    712    0

    2021年先进性教育分析评议阶段个人小结

     2021年先进性教育分析评议阶段个人小结撰写人:___________日 期:___________2021年先进性教育分析评议阶段个人小结__月__日至__月__日,我按照局保持___员...

    7个月前   
    126    0

    局党支部保先教育活动分析评议阶段工作小结

    局党支部保先教育活动分析评议阶段工作小结  ��己近年来主要是党的十六大以来的思想、工作、作风、廉洁自律等方面的情况,认真地撰写了党性分析材料,每名党员的党性分析材料都进行了二至三次修改。  ...

    10年前   
    474    0

    个人分析评议阶段征求意见小结

    个人分析评议阶段征求意见小结  在分析评议阶段征求意见环节,*各参学单位以解决实际问题为主线,以找准问题为目的,认真组织,扎实推进,取得了较好的成效。解决群众反映强烈的热点、重点和难点问题**...

    9年前   
    365    0

    党员先进性教育分析评议阶段个人小结

    党员先进性教育分析评议阶段个人小结  保持共产党员先进性教育活动分析评议阶段开展以来,自己认真按照县局党委的安排部署,以一名普通党员的身分,积极投入第二阶段的学习讨论、征求意见、剖析问题、明确...

    10年前   
    606    0