草木瓜

本BLOG内容较杂且水平有限,切勿见怪

C++/C/C#

原创 网络编程概念全面接触(四).C++与Java的实现收藏

前一阵子遇到网络通信方面的东西,感觉总结还是十分必要的。这里给出一些新的补充。 本示例采用C++方式。 一、Socket.h 头文件 #ifndef SOCKET_H #define SOCKET_H #include #include 阅读全文>

发表于 @ 2008年02月16日 18:02:00|评论(loading...)|收藏

原创 Lex和Yacc使用教程(九).Windows下使用Lex和Yacc收藏

不想Lex和Yacc系列的最后一篇文章竟如此“难产”,已时隔三个月之久。不由慨叹自由可支 配时间是如此之少,如此岂不谓新时代的“奴隶”~ 罢罢罢,闲话少叙,回归正题,本文主要介绍在Windows下如何去使用Lex和Yacc,以作为 本系列文章的终结。阅读全文>

发表于 @ 2007年09月06日 14:21:00|评论(loading...)|收藏

原创 Lex和Yacc入门教程(八).使用堆栈编译语法收藏

一、序 前面一些系列文章着重介绍了递归语法树在编译理论方面的应用。本文则会介绍另一种 实现方式----堆栈。 堆栈在底层系统有十分广泛的应用,同样也十分擅长处理语法结构,这里通过实际示例 探讨如何构造堆栈完成语法分析。 重要补充:下面是本系列文章全示例代码统一的调试测试环境,另对于lex,yacc文件需 要存储为Unix格式,这一点和Linux,Unix下shell很类似,DOS格式的Shell是不能够被执行 的,同样bison,lex编译DOS格式文件会出错误提示: Red Hat Linux release 9 (Shrike) Linux 2.4.20-8 gcc version 3.2.2 20030222 bison (GNU Bison) 1.35 lex version 2.5.4 flex version 2.5.4 阅读全文>

发表于 @ 2007年06月05日 11:08:00|评论(loading...)|收藏

原创 Lex和Yacc使用方法(七).企业方面的实际应用收藏

说到这里,也许有人觉得要把这些东西实际应用起来,还没谱,或许很多人觉得工作中很 少能使用到。 本文的主要目的就是为了详细说明下实际的企业应用示例。示例基于《Lex和Yacc应用方 法(五).再识语法树》阅读全文>

发表于 @ 2007年05月28日 16:46:00|评论(loading...)|收藏

原创 Lex和Yacc使用教程(六).语法树打印收藏

没有直观的语法树显示界面,理解前面两篇文章会比较难一些。(语法树的示例见 《Lex和Yacc应用教程(四).语法树的应用》) 其实语法树显示程序在Tom Niemann的 《A Compact Guide to Lex & Yacc》文中已有完整的示例,不过我很不喜欢,也许 是无法适应别人的代码习惯吧,这里针对《Lex和Yacc应用方法(五).再识语法树》, 完全重写了打印语法树的程序代码。我不敢说算法有多高明,起码十分便于理解和掌握。阅读全文>

发表于 @ 2007年05月25日 21:29:00|评论(loading...)|收藏

原创 Lex和Yacc使用教程(五).再识语法树收藏

在《Lex和Yacc应用教程(四).语法树》一文已对语法树有了初步的概念,本文主要目的 是巩固语法树的概念,并做进一步的扩展分析。闲说少说,首先给出完整示例,本例在Redhat Linux 9 下调试通过,可放心使用。 另外系列文章的标题,有的叫“lex和yacc应用方法”,有的叫“lex和yacc应用教程”, 还有的叫“lex和yacc使用教程”等等,概念都是一样的。之所以起这么多名字是便于大家通 过搜索引擎能迅速查到。阅读全文>

发表于 @ 2007年05月25日 21:26:00|评论(loading...)|收藏

原创 Lex和Yacc应用教程(四).语法树的应用收藏

不论什么语言,语法结构总是那几种,可以想象任何程序体都可以解释成一棵语法 树,语法树的本质是递归,很显然Yacc文法的核心思想也是递归。本文就通过具体实例, 使用Yacc构建递归的语法树来解决实际问题。 比较遗憾的是,在总结的过程中想表达清楚并不容易,估且三分言传,七分会意吧。 关键在于个人去思考。阅读全文>

发表于 @ 2007年05月21日 10:17:00|评论(loading...)|收藏

原创 Lex和Yacc应用教程(三).使用变量收藏

早在两个月前就想对Lex和Yacc作系列的阐述,然而工作的事情实在太多,很难抽出空 静下心去总结学习。不觉感慨国内工作环境恶劣,加班是家常便饭,整天基本都是在做 一些简单大量的重复,甚至徒劳无用。 在《初识Lex》一文中主要从入门角度总结了Lex,《再识Lex和Yacc》一文在可以简单 使用Lex情况基础,介绍了Lex和Yacc的算法理论,并说明如何将Lex和Yacc结合起来使 用。 这里我们需要对Lex和Yacc使用方法做进一步研究,以备能理解后面会引入的语法树。 阅读全文>

发表于 @ 2007年05月14日 22:25:00|评论(loading...)|收藏

原创 Lex和Yacc应用方法(二).再识Lex与Yacc收藏

早在二十世记七十年代之前,编写编译器一直是一个非常费时的工作。但到了1975这 一年这一切却发生了重大转变,首先Stephen C. Johnson Lesk在贝尔实验室完成了 Yacc开发,为了配合yacc更好的协作, Mike Lesk和Eric Schmidt又完成了lex。从 而Lex和yacc成为计算机编译领域的重要理论,而这些工具也极大地简化了编写编译 器的工作。阅读全文>

发表于 @ 2007年03月16日 10:19:00|评论(loading...)|收藏

原创 Lex和Yacc应用方法(一).初识Lex收藏

Lex(Lexical Analyzar 词法分析生成器),Yacc(Yet Another Compiler Compiler 编译器代码生成器)是Unix下十分重要的词法分析,语法分析的工具。经常用于语言分 析,公式编译等广泛领域。遗憾的是网上中文资料介绍不是过于简单,就是跳跃太大, 入门参考意义并不大。本文通过循序渐进的例子,从0开始了解掌握Lex和Yacc的用法。阅读全文>

发表于 @ 2007年03月15日 17:23:00|评论(loading...)|收藏

Csdn Blog version 3.1a
Copyright © 草木瓜