- 博客(10)
- 资源 (3)
- 收藏
- 关注
原创 epoll服务器示例, 监听5000个端口, 使用线程池
运行这个程序需要预先设置栈内存和文件描述符上限, 否则运行失败ulimit -n 16384ulimit -s 4096文件名:server.c编译: gcc server.c -Wall -O2 -pthread -o server程序源码如下(请自行编辑宏定义SERVER_IP为自己的IP): /*Linux 2.6 x86_64 only*/#include <...
2012-04-26 10:03:08 407
转载 Git使用简明教程
GIT ——傻瓜跟踪器 使用文档 GIT ——傻瓜跟踪器... 1一git的使用目的... 11、git简介... 12、Git 官方文档:... 23、Git的作用:... 2二、git的使用过程... 21、Git工作流程:... 22、git工作举例:... 3三、git基础命令... 41、创建一
2012-04-09 19:43:17 1865
转载 traits:Traits技术初探
概述:traits是一种特性萃取技术,它在Generic Programming中被广泛运用,常常被用于使不同的类型可以用于相同的操作,或者针对不同类型提供不同的实现.traits在实现过程中往往需要用到以下三种C++的基本特性:enumtypedeftemplate (partial) specialization其中:enum用于将在不同类型间变化的标示统一成一个,
2012-04-09 18:19:58 512 1
原创 traits的应用场合
模板(泛型)实际上就是宏定义一个类型,此类型是一个通用类型(故又叫泛型),把具体类型(包括指针类型)带入进去就会形成一个新的类型。下面是代入时两种编译错误的解决方法:一、模板(泛型)具型成 int::valuetype 时(代入基本类型),这显然编译不过,就像下面这样偏特化处理// my_type_traits.h开始#ifndef MY_TYPE_TRAITS_H#define
2012-04-09 10:28:58 467 1
转载 EBNF文法的翻译
假设有产生式 X –> α ,它的翻译函数X为:X() { T(α) }下表给出了每一种α的产生式形式,右栏给出了每种产生式对应的代码,即T(α)。 在给出表之前,先给出α的预测集D(α).1. 如果 ,则D(α)=FIRST(α).2. 反之,如果 ,则D(α)=(FIRST(α)-{ε})∪FOLLOW(X)注意: 下表中的t为调用扫描
2012-04-05 21:25:51 1039
原创 a Tiny Parser Generator
很不错,可以用来验证递归下降法编写ebnf是否有问题,对if-then-else语法是否有二义性一目了然stmt->IF stmt then stmt (else stmt)?这句就能解决if的递归下降二义性并可自动生成子程序,不过该代码的词法分析部分效率极低,很大的缺点http://www.codeproject.com/Articles/28294/a-Tiny-Parse
2012-04-05 18:23:21 517
原创 first、follow、lr的项目集、状态集演示
CFF1.5(根据bison源码改写)可求出LL、LR等FIRST、FOLLOW集LR的项目集、状态集可用pike的parse.lr来求,pmod目录下有个test演示在pike的console下Parser.LR.Parser p = Parser.LR.GrammarParser.make_parser("foo : bar;foo : foo bar;bar :
2012-04-04 21:26:52 557
原创 递归下降中左结合、右结合和优先级的实现
http://fmt.cs.utwente.nl/courses/vertalerbouw/sheets/vb-04-antlr-1-4up.pdf右结合E->T op E | T 推导出 E->T [op [T [op [T op T]]]],故右递归即是右结合提取左因子E->T XX->op E | emptyE->T XX->(op E)? (代入上式
2012-04-04 21:17:08 2703
转载 LL(1)
文法G是 LL(1) 的充要条件:对于 G 的每个非终结符 A 的任何两个不同的产生式 A → α|β1) FIRST(α) ∩ FIRST(β) = φ2) 如果 β==*>ε,则 FISRT(α) ∩ FOLLOW(A) = φ 预测分析表的构造算法1.对于每一产生式 A→α,作 2.和3.2.对于 FIRST(α)中的每一终结符a, 将 A→α 填入 M[A,
2012-04-03 10:57:13 775
转载 递归下降子程序法
1) 编写文法、消除二义性2) 消除左递归和提取左因子改写文法3) 求非终结符的 FIRST 集和 FOLLOW 集4) 检查是不是 LL(1) 文法若不是 LL(1),说明文法的复杂性超过自顶向下方法的分析能力5) 将 LL(1) 文法改写为 EBNF, 并化简E → T E' E'→ + T E'|ε T → F T'
2012-04-03 10:07:58 8695
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人