摘要: 上一篇文章基本上把分析的過程都講完了,于是這次就把FpMacro作為一個Demo拿了出來。不第一次就發的原因主要是那個時候FpMacro剛剛寫完,當然寫完就要用的,于是后來就在Vczh Library++ 3.0的庫里面大量使用了FpMacro作為代碼生成的一個工具,用來代替一部分的宏的功能。當然最后我并沒有寫個插件安裝到VC++里,而是寫了一個批處理文件去調用FpMacro.exe。
代碼內詳
閱讀全文
posted @
2009-12-12 22:19 陳梓瀚(vczh) 閱讀(4936) |
評論 (0) |
編輯 收藏
摘要: 在上一篇文章中,我們已經實現了在C++中直接寫文法并轉換成文法樹的工作,現在要開始實現三個組合文法了。
閱讀全文
posted @
2009-12-11 22:49 陳梓瀚(vczh) 閱讀(2990) |
評論 (1) |
編輯 收藏
摘要: 上一篇文章中我們看到了可配置語法分析器使用起來的樣子,在這篇文章中我將告訴大家如何通過重載操作符的方法構造文法表達式樹,從而使用遞歸向下法進行語法分析的工作。
閱讀全文
posted @
2009-12-04 23:43 陳梓瀚(vczh) 閱讀(3205) |
評論 (1) |
編輯 收藏
摘要: 上一篇文章提到了我開發了可配置語法分析器之后做了一個FpMacro用來生成C++有規律的代碼。這一篇文章就從FpMacro入手,分析可配置語法分析器所需要具備的功能。首先讓我們來了解一下什么是FpMacro。
閱讀全文
posted @
2009-11-27 21:21 陳梓瀚(vczh) 閱讀(3246) |
評論 (3) |
編輯 收藏
摘要: 花了差不多兩個星期的時間將一個可配置語法分析器寫好了。這個語法分析器被設計來完成以下任務:
1、易于使用,并且在運行時可更改
2、提供對分析字符串和容器的支持
3、可使用正則表達式輔助定義分析器
4、如果覺得預定義的設備不滿意,用戶可以自行提供新的文法元素(譬如說增加一種使用通配符進行語法分析的元素)
5、提供可配置錯誤恢復策略,提供合理的錯誤發生位置信息,用戶可根據自己的意愿來決定錯誤信息的內容。
閱讀全文
posted @
2009-11-27 10:01 陳梓瀚(vczh) 閱讀(3123) |
評論 (2) |
編輯 收藏
http://news.cnblogs.com/n/51405/ 年9月,剛剛辭去谷歌全球副總裁、大中華區總裁的李開復博士,又創立了旨在培育創新人才和新一代高科技企業的創業平臺——創新工場。幾個月來,李開復奔赴全國各地,四處招賢納才。在三四十名得到面試通知的大學生中,一些人的求職理由讓他感到非常驚訝。
“我父母覺得我跟著李開復干就對了!”
“我父母覺得我應該去家跨國公司工作。”
“我父母希望我待在上海。”
“來應聘到底是你的決定還是你父母的決定?”聽完這些大學生的回答,李開復感覺很無奈,便跟他們說:“我來發一封E-mail跟你的父母溝通一下吧。”“對不起,我的父母不會用E-mail。”
不會用E-mail的父母,居然告訴孩子應該去哪一個互聯網公司工作,這不是很奇怪的事嗎?11月14日,在第二屆新東方家庭教育高峰論壇上,李開復跟大家分享了他最近的一些經歷,并鄭重地告訴在座的家長,在嚴管和壓力下長大的孩子,雖然聽話,但最后可能會失去管理自己的能力,甚至沒法獨立。
他建議,在家庭教育中,家長對孩子要多信任、多放權,少嚴管、少施壓。在當今時代,家長可能不懂下一代,不清楚孩子自己希望成為一個什么樣的人。此外,如果家長幫孩子做了太多的決定,會讓孩子形成一種心理:反正有父母幫我作決定,這不是我的責任。當他有一天面對獨立,他的路反而會走得非常艱難。
“我常常在大學演講時聽到學生舉手問,你總告訴我們要追隨我心,可我不知道我心是什么。你總告訴我們要學自己有興趣的東西,但是我不知道自己的興趣是什么。”李開復認為,過于嚴格的管教,已經使得一些從小生長在被動環境里的孩子,被培養成機器,他們聽不到自己的聲音,找不到自己的興趣,不知道自己將成為什么樣的人。
李開復也承認,在實施家庭教育的過程中,每個人都會犯錯,都會有管得太多的時候,但關鍵是要讓孩子知道,最終的決定權掌握在他們自己手中。
posted @
2009-11-16 00:52 陳梓瀚(vczh) 閱讀(8168) |
評論 (5) |
編輯 收藏
摘要: DFA與捕獲和預查結合起來的話很麻煩,不能用一張表來迭代,而是要用回溯,然后在回溯的時候記下狀態。至此正則表達式的所有算法都完成了,接下來是詳細介紹。
閱讀全文
posted @
2009-11-14 19:13 陳梓瀚(vczh) 閱讀(2470) |
評論 (1) |
編輯 收藏
摘要: 今天花了一個晚上完成并測試了從NFA到DFA的代碼。NFA到DFA的主要過程就是構造出一個等價于NFA的狀態機,使得從任何一個狀態出去的狀態轉換都不具有相同的條件。這個約束就是“確定性”的含義,給定一個狀態和一個輸入,最多只能跳轉到一個目標狀態。于是知道了這個過程,代碼就很好寫了:
閱讀全文
posted @
2009-11-03 08:34 陳梓瀚(vczh) 閱讀(2729) |
評論 (8) |
編輯 收藏
摘要: 這篇文章的代碼所描述的算法在這里有詳細的說明。
Epsilon-NFA到NFA的目標主要是產生一個沒有Epsilon邊的,跟原狀態圖等價的新狀態圖。過程不復雜,首先從起始狀態開始,尋找所有Epsilons邊到達的對象的集合,然后復制這個集合的所有狀態包含的非Epsilon狀態。其實狀態做完之后,尋找所有能夠產生非Epsilon邊的狀態然后重復這個過程,最后NFA就出來了。代碼如下:
閱讀全文
posted @
2009-10-28 04:34 陳梓瀚(vczh) 閱讀(2382) |
評論 (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) 閱讀(18615) |
評論 (57) |
編輯 收藏