随笔-341  评论-2670  文章-0  trackbacks-0
 
     摘要: 上一篇文章基本上把分析的过程都讲完了,于是这次就把FpMacro作为一个Demo拿了出来。不第一次就发的原因主要是那个时候FpMacro刚刚写完,当然写完就要用的,于是后来就在Vczh Library++ 3.0的库里面大量使用了FpMacro作为代码生成的一个工具,用来代替一部分的宏的功能。当然最后我并没有写个插件安装到VC++里,而是写了一个批处理文件去调用FpMacro.exe。

代码内详  阅读全文
posted @ 2009-12-12 22:19 陈梓瀚(vczh) 阅读(4916) | 评论 (0)编辑 收藏
     摘要: 在上一篇文章中,我们已经实现了在C++中直接写文法并转换成文法树的工作,现在要开始实现三个组合文法了。  阅读全文
posted @ 2009-12-11 22:49 陈梓瀚(vczh) 阅读(2980) | 评论 (1)编辑 收藏
     摘要: 上一篇文章中我们看到了可配置语法分析器使用起来的样子,在这篇文章中我将告诉大家如何通过重载操作符的方法构造文法表达式树,从而使用递归向下法进行语法分析的工作。  阅读全文
posted @ 2009-12-04 23:43 陈梓瀚(vczh) 阅读(3190) | 评论 (1)编辑 收藏
     摘要: 上一篇文章提到了我开发了可配置语法分析器之后做了一个FpMacro用来生成C++有规律的代码。这一篇文章就从FpMacro入手,分析可配置语法分析器所需要具备的功能。首先让我们来了解一下什么是FpMacro。  阅读全文
posted @ 2009-11-27 21:21 陈梓瀚(vczh) 阅读(3221) | 评论 (3)编辑 收藏
     摘要: 花了差不多两个星期的时间将一个可配置语法分析器写好了。这个语法分析器被设计来完成以下任务:

1、易于使用,并且在运行时可更改
2、提供对分析字符串和容器的支持
3、可使用正则表达式辅助定义分析器
4、如果觉得预定义的设备不满意,用户可以自行提供新的文法元素(譬如说增加一种使用通配符进行语法分析的元素)
5、提供可配置错误恢复策略,提供合理的错误发生位置信息,用户可根据自己的意愿来决定错误信息的内容。  阅读全文
posted @ 2009-11-27 10:01 陈梓瀚(vczh) 阅读(3111) | 评论 (2)编辑 收藏
http://news.cnblogs.com/n/51405/

  年9月,刚刚辞去谷歌全球副总裁、大中华区总裁的李开复博士,又创立了旨在培育创新人才和新一代高科技企业的创业平台——创新工场。几个月来,李开复奔赴全国各地,四处招贤纳才。在三四十名得到面试通知的大学生中,一些人的求职理由让他感到非常惊讶。

  “我父母觉得我跟着李开复干就对了!”
  “我父母觉得我应该去家跨国公司工作。”
  “我父母希望我待在上海。”
  “来应聘到底是你的决定还是你父母的决定?”听完这些大学生的回答,李开复感觉很无奈,便跟他们说:“我来发一封E-mail跟你的父母沟通一下吧。”“对不起,我的父母不会用E-mail。”

  不会用E-mail的父母,居然告诉孩子应该去哪一个互联网公司工作,这不是很奇怪的事吗?11月14日,在第二届新东方家庭教育高峰论坛上,李开复跟大家分享了他最近的一些经历,并郑重地告诉在座的家长,在严管和压力下长大的孩子,虽然听话,但最后可能会失去管理自己的能力,甚至没法独立。

  他建议,在家庭教育中,家长对孩子要多信任、多放权,少严管、少施压。在当今时代,家长可能不懂下一代,不清楚孩子自己希望成为一个什么样的人。此外,如果家长帮孩子做了太多的决定,会让孩子形成一种心理:反正有父母帮我作决定,这不是我的责任。当他有一天面对独立,他的路反而会走得非常艰难。

  “我常常在大学演讲时听到学生举手问,你总告诉我们要追随我心,可我不知道我心是什么。你总告诉我们要学自己有兴趣的东西,但是我不知道自己的兴趣是什么。”李开复认为,过于严格的管教,已经使得一些从小生长在被动环境里的孩子,被培养成机器,他们听不到自己的声音,找不到自己的兴趣,不知道自己将成为什么样的人。
  李开复也承认,在实施家庭教育的过程中,每个人都会犯错,都会有管得太多的时候,但关键是要让孩子知道,最终的决定权掌握在他们自己手中。
posted @ 2009-11-16 00:52 陈梓瀚(vczh) 阅读(8158) | 评论 (5)编辑 收藏
     摘要: DFA与捕获和预查结合起来的话很麻烦,不能用一张表来迭代,而是要用回溯,然后在回溯的时候记下状态。至此正则表达式的所有算法都完成了,接下来是详细介绍。  阅读全文
posted @ 2009-11-14 19:13 陈梓瀚(vczh) 阅读(2462) | 评论 (1)编辑 收藏
     摘要: 今天花了一个晚上完成并测试了从NFA到DFA的代码。NFA到DFA的主要过程就是构造出一个等价于NFA的状态机,使得从任何一个状态出去的状态转换都不具有相同的条件。这个约束就是“确定性”的含义,给定一个状态和一个输入,最多只能跳转到一个目标状态。于是知道了这个过程,代码就很好写了:  阅读全文
posted @ 2009-11-03 08:34 陈梓瀚(vczh) 阅读(2722) | 评论 (8)编辑 收藏
     摘要: 这篇文章的代码所描述的算法在这里有详细的说明。

Epsilon-NFA到NFA的目标主要是产生一个没有Epsilon边的,跟原状态图等价的新状态图。过程不复杂,首先从起始状态开始,寻找所有Epsilons边到达的对象的集合,然后复制这个集合的所有状态包含的非Epsilon状态。其实状态做完之后,寻找所有能够产生非Epsilon边的状态然后重复这个过程,最后NFA就出来了。代码如下:
  阅读全文
posted @ 2009-10-28 04:34 陈梓瀚(vczh) 阅读(2372) | 评论 (7)编辑 收藏

2006年的职场出奇的冷清,相比前几年,简历的数量和质量都大为不如,很难得找到三年工作经验以上的人,有一个不是特别笨,就是特别怪。就是么,干得好谁没事换工作啊!Simon是一家外企软件公司的总经理,最近给这个问题愁坏了。项目一个接一个的接下来,人手越来越紧张。虽然Simon是个极限编程的粉丝,但也不得不批准了一份又一份的加班申请。HR经理把这个问题归结到房价上,他的妙论是“怕失业了还不上房款,不敢跳槽”。

这天,K项目组长Allen终于忍不住了,带了一个只有一年工作经验的小伙子要Simon面试,“很聪明!经验少了点。”

Simon皱了皱眉毛,说:“你不知道这个职位最低要求是三年工作经验吗?”

Allen说:“这已经是三个月里通过技术考试中最好的一个了,老大,试试吧。”Allen是Simon多年的哥们,比较随便。

抵到面子上来,Simon只好让Allen把小伙子带进来。

Simon的面试通常是三步曲:

问题一:你能说说毕业后的主要工作经历吗?

问题二:再说说你在公司的地位?

问题三:你的发展目标是什么?等回答后,比如说构架师,他就跟着问:想象一下你当构架师的一天,说给我听听?

小伙子回答第一问题很快很清楚,一年工作当然没什么东西。Simon觉得小伙子挺聪明。所以在小伙子回答了第二个问题后,问了一个发散性的问题:“你刚才说你在公司里处于中等水平,那比你差的人为什么会比你差呢?”

这个问题是个陷阱。

小伙子冒冒失失回答说:“我觉得他们每天工作是为工作而工作,工作没有责任感。”

Simon点点头说:“是吗?那真是糟糕的员工。那你刚好比糟糕的员工好一点了?”

小伙子的脸一下子红了,“我不是这个意思……”

“好了,那你说说比你好的人为什么比你强?”

“我觉得他非常努力,工作很多年了还在学习各种构架,水平很高。”于是Simon就问那最后一个问题。果然,小伙子回答的是要成为构架师。大概70%的人想成为构架师。但是构架师是什么呢?

Simon问道:“那你为什么要成为构架师呢?”

小伙子一愣,大概还没有人这么置疑过他。“年纪大了,不能老写程序吧。”这个回答,让Simon想起关于他对什么是老的定义:当你希望做年轻人做的事情时,你就还年轻;如果你希望做老年人做的事情,你就老了。这和你出生了多长时间是没有关系的。

Simon接着问:“好吧,那你说说你成为构架师以后,每天都会做什么?”

小伙子说:“我还没想过,不过,我想应该主要是需求分析,设计构架吧……”这大概是现在年轻人的通病,年轻人很容易追逐一些自己也不清楚的目标。

Simon问:“那设计构架具体都做些什么呢?”

小伙子这次的回答是:“比如,选择程序框架,决定用Spring或Struts等等。”

“哦,那我问你,你怎么说服别人是用Spring还是Struts呢?”

“如果我有经验,我会知道哪个更好……”

“是吗,但关于Spring或Struts的知识任谁都可以很容易得到。如果别人不同意你的建议,你怎么说服他?如果同意你的建议,那你不过是作出了和别人一样的认识,别人又凭什么认可你呢?”

小伙子没想过构架师日子里还有一个说服人的工作,说:“我是构架师,我应该有权力做决定吧?”

Simon想起权力的三种层次,第一层,任命;第二层,专业;第三层,品德。

Simon问:“如果在一个成熟的软件企业里没有你所想象的构架师呢?或者说,构架师这种职业已经死亡或消失了呢?你会怎么定位你的职业?”

小伙子显得很震惊。

Simon画了一个系统构架,然后又给小伙子看了一段代码。

“那一个更难懂?”Simon问。

小伙子指着代码说:“代码难懂。”

Simon的解释是:“这就是为什么实际上所谓的构架师不存在的原因。一个更简单的东西怎么会更有价值呢?每个人都能够画出这种构架图,但不是每个人都能写出好的代码。”

送走了小伙子,Simon有点难受。他有点喜欢这个小伙子,但是,这又是一个被愚蠢的教育和误人子弟的技术杂志污染的家伙。Simon在自己的笔记本中加了一句话:中国程序员最愚蠢的认识之三:我想当构架师。前面两个赫然是:

35岁后写不动程序了;

我只要做Java(C++);

posted @ 2009-10-26 23:57 陈梓瀚(vczh) 阅读(18594) | 评论 (57)编辑 收藏
仅列出标题
共35页: First 13 14 15 16 17 18 19 20 21 Last