(一)、写在前面lex是构建词法分析程序的工具。词法分析程序把随机输入流标记化,即将他拆分成词法标记。然后,可以进一步处理这种被标记化的输出,通常是由yacc来处理的,或者他就成为“最终产品”。当编写lex规范的时候,可以创建lex匹配输入所用的一套模式。每次匹配一个模式的时候,lex程序就调用我们提供的C代码来处理匹配的文本。采用这种方式,lex程序将输入拆分成成为标记的字符串。lex本身不产生可...
分类:
其他好文 时间:
2016-02-18 18:08:37
阅读次数:
229
一、函数的定义 用户函数的定义从function 关键字开始,如下 function foo($var) { echo $var; } 1、词法分析 在Zend/zend_language_scanner.l中我们找到如下所示的代码: <ST_IN_SCRIPTING>"function" { re
分类:
Web程序 时间:
2016-02-16 18:58:51
阅读次数:
229
C/C++ 中的词法分析中的理解。如,/、=、和*只有一个符号,称之为单字符的符号,那么对于多个字符数的符号,比如,/*、和 ==包含了两个的单字符,所以称之为多字符符号。 所以,在编译器录入字符的时候,每录入一个字符,比如 / 之后就会做出判断是否已经录入完毕,如果 后面还有 *,就会合在一起组成...
分类:
其他好文 时间:
2016-02-16 11:43:02
阅读次数:
202
# Compilers Principles# reading notes# 2016.02.03# victor1 引论1.1 编译流程 begin: 源程序 # front end: 与源代码有关 A.字符流-->[词法分析]--> B.符号流-->[语法分析]--> C.语法树-->[语义分析
分类:
其他好文 时间:
2016-02-05 12:00:18
阅读次数:
136
闭包是与函数有着紧密的关系,它是函数的代码在运行过程中的一个动态环境,是一个运行期的概念。 所谓闭包,是指词法表示包括不必计算的变量的函数。也就是说,该函数能够使用函数外定义的变量。 在程序语言中,所谓闭包,是指语法域位于某个物定的区域,具有持续能照(读写)位于自身范围之外的执行域上的非持久变量值能
分类:
编程语言 时间:
2016-02-02 20:42:10
阅读次数:
286
一、编译过程概述 当我们执行Python代码的时候,在Python解释器用四个过程“拆解”我们的代码,最终被CPU执行返回给用户。 首先当用户键入代码交给Python处理的时候会先进行词法分析,例如用户键入关键字或者当输入关键字有误时,都会被词法分析所触发,不正确的代码将不会被执行。 下一步Pyth
分类:
编程语言 时间:
2016-01-31 02:53:46
阅读次数:
313
实验目的 了解掌握算符优先分析的基本方法、内容;学会科学思考并解决问题,提高程序设计能力。 实验内容与要求 用算符优先分析方法设计一个分析解释程序,对输入的赋值语句、输出语句、清除语句进行词法分析、语法分析、表达式求值并存储于指定变量中;若存在错误,提示错误相关信息。 文法表示 S -> v=E |
分类:
其他好文 时间:
2016-01-30 18:21:33
阅读次数:
241
闭包的定义:闭包(Closure)是词法闭包(LexicalClosure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,闭包是由函数和与其相关的引用环境组合而成的实体。#!/usr/bin/envpython
defclosuretestin..
分类:
编程语言 时间:
2016-01-27 17:28:19
阅读次数:
163
一、Mysql缓存:1、缓存包括:(1)、缓存查询计划避免二次词法语法解析、优化、执行。(2)、缓存mysql查询语句返回的完整结果,被命中时,mysql会理解返回结果,省去解析、优化和执行等步骤。2、如何命中缓存?mysql保存结果于缓存中:把select语句本身做hash计算,计算的结..
分类:
数据库 时间:
2016-01-07 18:32:31
阅读次数:
178
简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:1.预处理阶段2.词法与语法分析阶段3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件)4.连接阶段,将各个目标文件中的各段...
分类:
编程语言 时间:
2016-01-04 22:29:31
阅读次数:
347