编译器(解释器)编写指南-编写编译器(解释器)的工具-LEX.docx
《编译器(解释器)编写指南-编写编译器(解释器)的工具-LEX.docx》由会员分享,可在线阅读,更多相关《编译器(解释器)编写指南-编写编译器(解释器)的工具-LEX.docx(5页珍藏版)》请在优知文库上搜索。
1、编译器(解释器)编写指南-编写编译器(解释器)的工具-LEX返回首页作者:Riceball(riceballl)关键字:编译器,解释器,LEX,YACC,编译原理,正则表达式,PaSCaI预备知识:编译原理,正则表达式,PaSCal木文并不希望深入透彻的讲解编译原理,而是讲解如何利用工具(生成编译器的编译器)去编写编译器。如果你完全不知道编译什么东西,那么请看懂了编译原理,在看此文,本文不是为初学者准备的。一、什么是编译器(解释器)编译器是将一种计算机语言翻译为另一种计算机语言的程序。编译器将源程序(SoUrCelanguage)编写的程序作为输入,翻译产生用目标语言(targetlangua
2、ge)编写的等价程序。源程序一般为高级语言(high-levellanguage),如PaSCaI或DeIPhi,而目标语言则是汇编语言或目标机器的目标代码(ObjeCtcode),有时也称作机器代码(machinecode)源程序一编译器一目标程序解释器也是同编译器一样的一种语言翻译程序。它与编译器的不同之处在于:它立即执行源程序而不是生成目标代码。从原理上讲,任何程序设计语言都可以被解释或被编译。(1)扫描程序(scanner)由扫描程序(SCanner)阅读源程序(通常以字符流的形式表示),进行词法分析(LeXiCaIanalysis),它将源程序翻译成单词ID(TOker1),放入单词
3、ID(TOken)表中。在此过程中,扫描程序会进行简单的拼写检查。单词ID(Token):一个TOken可以有若干种类型,典型的有:关键字(keyword),例如if和while;标识符(identifier)是由用户定义的变量名,过程名等,它们通常由字母和数字组成并由一个字母开头;特殊符号(SPeCiaISymbOI)如算术符号+和*、一些多字符符号,如=和OoTokenType为枚举数据类型。实际上就是整数值,每一个数值代表一种单词ID类型。TTokenType=(ttNone,ttStrVal,ttlntVal,ttFloatVal,/ttNAME就是标识符Identifier或关键字t
4、tNAME,ttSWlTCH,ttVR,ttCONST,ttTYPE,ttRECORD,ttRRY,ttDOT,ttDOTDOT,ttOF,ttTRY,ttEXCEPT,ttRAISE,ttFINALLY,ttON,ttRED,ttWRITE,ttPROPERTY,ttPROCEDURE,ttFUNCTION,ttCONSTRUCTOR,ttDESTRUCTOR,ttCLSS,ttNIL,ttIS,ttAS,ttVIRTUAL,ttOVERRlDE,tREINTRODUCE,ttINHERITED,ttBSTRCT,ttEXTERNAL,ttFORWARD,ttIN,ttBEGIN,ttEND
5、,ttBREAK,ttCONTINUE,ttEXIT,ttIF,ttTHEN,ttELSE,ttWHILE,ttREPEAT,ttUNTIL,ttFOR,ttTO,ttDOWNTO,ttDO,ttCASE,ttTRUE,ttFALSE,ttAND,ttOR,ttXOR,ttDIV,ttMOD,ttNOT,ttPLUS,ttMINUS,ttTIMES,ttDIVIDE,ttEQ,ttNOTEQ,ttGTR,ttGTREQ,ttLESS,ttLESSEQ,ttSEMI,ttCOMMA,ttCOLON,ttASSIGN,ttBLEFT,ttBRIGHT,ttALEFT,ttARIGHT,ttCRIG
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译器 解释 编写 指南 工具 LEX
