娄振林专栏

专注于后台技术

构造文法时表达式中算符优先级的问题

文法用于描述一种语言,语言中包含多个句子,句子又是由表达式组成的。多个原子表达式(不可再分的表达式,比如:a+b,c*d,-a等)和操作符或者括号一起又可以组成复合表达式(比如:a+b*c,a*(b+c)等)。在书写表达式文法时需要注意算符优先级问题,比如:四则运算中要优先计算乘除,然后才是加减,...

2012-10-31 10:16:16

阅读数 3529

评论数 0

程序的前世今生——编译、链接和加载简介

本篇文章是组内分享的小结,主要介绍源代码 -> 可执行程序 -> 执行这一过程。也就是源代码是如何转化为可执行程序,然后可执行程序又是如何执行的。在用java或python时,只需要java ClsName或者python a.py就可以执行相应的程序,实际上它们都是依托于底层的虚拟机...

2012-10-28 23:46:24

阅读数 5702

评论数 0

C语言字符串分割——strtok

之前遇到字符串分割的需求时,都是自己去实现,最近发现其实c标准库已经提供了这个功能。对标准库还是不熟悉啊,导致重复造车轮了,有必要把标准库看一下。。。         先看一下之前自己实现的字符串分割函数: void strsplit(const char *str, char *delim,...

2012-10-18 11:37:31

阅读数 20108

评论数 10

C语言可变参数列表应用——多字符串复制和链接

C标准库中头文件中包含可变参数列表的实现,完成遍历未知数目和类型的函数参数列表的功能。提供以下3个宏以及va_list变量:                 va_start(va_list ap, lastarg):在提取可变参数前必须调用这个宏实现初始化。                 ...

2012-10-17 23:27:08

阅读数 4390

评论数 0

Python语法解析器PLY——lex and yacc in Python

PLY是lex和yacc的python实现,包含了它们的大部分特性。PLY采用COC(Convention Over Configuration,惯例优于配置)的方式实现各种配置的组织,比如:强制词法单元的类型列表的名字为tokens,强制描述词法单元的规则的变量名为t_TOKENNAME等。本文...

2012-10-16 22:56:50

阅读数 28389

评论数 4

nginx源码分析(9)——filter模块

phase handler处理中介绍了content handler用于产生响应内容,随便找一个content phase的模块,比如:ngx_http_static_module.c,会发现在content handler中会调用ngx_http_send_header,然后最后调用ngx_ht...

2012-10-11 18:11:14

阅读数 7259

评论数 7

nginx源码分析(8)——phase handler处理

nginx将请求的处理过程划分为11个phase(阶段),相当于是对请求处理的一种抽象,便于定制处理过程。这个11个phase,分别是(定义在http/ngx_http_core_module.h): typedef enum { NGX_HTTP_POST_READ_PHASE =...

2012-10-10 14:12:55

阅读数 8408

评论数 1

nginx源码分析(7)——请求处理

在建立连接过程中,对于nginx监听到的每个客户端连接,都会将它的读事件的handler设置为ngx_http_init_request函数,这个函数就是请求处理的入口。在处理请求时,主要就是要解析http请求,比如:uri,请求行等,然后再根据请求生成响应。下面看一下nginx处理的具体过程。 ...

2012-10-09 11:18:28

阅读数 8204

评论数 0

提示
确定要删除当前文章?
取消 删除