<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 wp14"><w:body><w:p w14:paraId="5F9F3D7D" w14:textId="602150EC" w:rsidR="001A7106" w:rsidRDefault="00545A33"><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t xml:space="preserve"> </w:t></w:r><w:r w:rsidR="00B806B2"><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t xml:space="preserve"> </w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t xml:space="preserve"> </w:t></w:r><w:r w:rsidR="00642785"><w:t xml:space="preserve"> </w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>输入及词法分析详解</w:t></w:r></w:p><w:p w14:paraId="6732CDF5" w14:textId="77777777" w:rsidR="008174E8" w:rsidRDefault="008174E8"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr></w:p><w:p w14:paraId="49BF96AC" w14:textId="09F48D46" w:rsidR="008174E8" w:rsidRDefault="008174E8"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>欢迎大家来到</w:t></w:r><w:r><w:t>coding</w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>迪斯尼,</w:t></w:r><w:r w:rsidR="009E697D"><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>我的愿景是:</w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>让天下没有难学的知识</w:t></w:r></w:p><w:p w14:paraId="525092B8" w14:textId="77777777" w:rsidR="005814D6" w:rsidRDefault="005814D6"/><w:p w14:paraId="7A6B5C0B" w14:textId="5D0AF1AB" w:rsidR="005814D6" w:rsidRDefault="005814D6"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>这句话是跟马云学的,就算没马云的命,</w:t></w:r><w:r w:rsidR="008903CF"><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>那就用</w:t></w:r><w:bookmarkStart w:id="0" w:name="_GoBack"/><w:bookmarkEnd w:id="0"/><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>马云的话,</w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t xml:space="preserve"> </w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>也是不错的。</w:t></w:r></w:p><w:p w14:paraId="11E1D69F" w14:textId="77777777" w:rsidR="00C770A1" w:rsidRDefault="00C770A1"/><w:p w14:paraId="663E908C" w14:textId="296B9676" w:rsidR="001F2945" w:rsidRDefault="001F2945"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>欢迎大家莅临我的博客,那儿有本编译器开发专栏,还有其他一些有趣的技术文章:</w:t></w:r></w:p><w:p w14:paraId="1F77E631" w14:textId="08777D54" w:rsidR="001F2945" w:rsidRDefault="00B02491"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr><w:r w:rsidRPr="00B02491"><w:t>http://blog.csdn.net/tyler_download</w:t></w:r></w:p><w:p w14:paraId="2FAEFD29" w14:textId="77777777" w:rsidR="008174E8" w:rsidRDefault="008174E8"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr></w:p><w:p w14:paraId="7B06BB8C" w14:textId="0EFFAB15" w:rsidR="00545A33" w:rsidRDefault="00545A33"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>大家好,继上几节我们通过实现一个简易编译器,通过实践获得一定的感性认识后,这里,我们开始对编译器的各个技术点深入分析,逐个击破。从这节开始,</w:t></w:r><w:r w:rsidR="00A0559C"><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>以及后续的相应课程,</w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>我们注重输入系统的设计和词法解析所用到的各种算法和理论基础。</w:t></w:r></w:p><w:p w14:paraId="6860F1E4" w14:textId="77777777" w:rsidR="00FD45A7" w:rsidRDefault="00FD45A7"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr></w:p><w:p w14:paraId="6A2CB5DB" w14:textId="44FA49F8" w:rsidR="00FD45A7" w:rsidRDefault="00FD45A7"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>本节的重点,是对词法解析系统和输入系统做一个大概的介绍</w:t></w:r></w:p><w:p w14:paraId="4C55F394" w14:textId="77777777" w:rsidR="00545A33" w:rsidRDefault="00545A33"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr></w:p><w:p w14:paraId="59FB6B4A" w14:textId="7B76B2E8" w:rsidR="00545A33" w:rsidRDefault="00545A33"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>词法解析</w:t></w:r><w:r w:rsidR="00F42410"><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>是一种相当实用的技术,</w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>除了在编译器中,在很多应用场合同样是非常实用的。如果把词法解</w:t></w:r><w:r w:rsidR="005A17C5"><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>析看成</w:t></w:r><w:r w:rsidR="00DC7674"><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>是一种模式识别引擎,那它可以应用到例如文本编辑器,数据模式识别</w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>等方面。</w:t></w:r><w:r w:rsidR="00B806B2"><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>稍加扩展,还可以应用到网络协议解析等方面去。</w:t></w:r></w:p><w:p w14:paraId="1D4FEB73" w14:textId="77777777" w:rsidR="00B806B2" w:rsidRDefault="00B806B2"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr></w:p><w:p w14:paraId="1E084E08" w14:textId="75F53789" w:rsidR="00B806B2" w:rsidRDefault="007F5CBD"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t xml:space="preserve">2.1 </w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>词法解析器在编译器中的作用</w:t></w:r></w:p><w:p w14:paraId="77F01CA2" w14:textId="77777777" w:rsidR="004E3188" w:rsidRDefault="004E3188"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr></w:p><w:p w14:paraId="5B6081B2" w14:textId="53CD9EEC" w:rsidR="007F5CBD" w:rsidRDefault="007F5CBD"><w:pPr><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>词法解析器在编译器中的作用,是将输入流解析为一种能够被语法解析器使用和管理的格式。他将输入文本分割,打标签,也就是用一些数值来指代一系列相应的字符串,例如关键字</w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t xml:space="preserve"> </w:t></w:r><w:r><w:t xml:space="preserve">while </w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:t>可以和一个标签关联起来,一般情况下,一个标签可以和很多字符串关联,例如以前看到的</w:t></w:r><w:r><w:t>NUM_OR_ID</w:t></w:r><w:r w:rsidR="001C0516"><w:t>,</w:t></w:r><w:r w:rs
评论0