re: 外觀模式 lwch 2011-05-27 07:58
@nscboy
設計模式就是這么定義的..
re: 代理模式 lwch 2011-05-16 20:16
@K.V
哪里詭異了...
re: 裝飾模式 lwch 2011-05-06 16:07
@千暮(zblc)
截圖下來貌似有點變色..
re: ESEngine_Demo5 lwch 2011-03-02 17:44
@陳梓瀚(vczh)
- -編譯原理以前有幾篇文章..
re: CGen:用最原始的方法生成中間指令 lwch 2011-02-19 15:49
原始的就是簡單..
re: C++指針探討 (一)數據指針 lwch 2011-02-15 15:27
int sum(MyStruct* objs, int offset, int count)
{
int result = 0;
for(int i = 0; i < count; ++i)
result += *(objs[i] + offset);
return result;
}
int sum_value = sum(me,&MyStruct::value,10);
int sum_key = sum(me,&MyStruct::key,10);
re: 使用面向組合子算法寫詞法分析器 lwch 2011-01-28 14:27
@陳梓瀚(vczh)
Node是在運行時生成的,要壓縮的話還得遍歷一遍..
re: 使用面向組合子算法寫詞法分析器 lwch 2011-01-27 14:44
@陳梓瀚(vczh)
這個問題還真沒考慮過..惰性計算的確不是一件容易的事情..
但這個作為詞法分析器已經足夠
re: 面向組合子的一些測試 lwch 2011-01-23 16:53
@陳梓瀚(vczh)
的確..沒有理解組合這個概念..
@xx
還處于學習階段,Linux0.00的代碼比較短應此拿它來研究.
re: 編譯項目跟蹤文檔(二) lwch 2010-11-02 18:31
用自頂向下的方法很容易對這類語法,運算符優先級越高就越先被歸約..
re: strcat在某種特定條件下的優化 lwch 2010-07-29 00:57
沒有檢查緩沖區長度...
會造成溢出
re: 已實現LALR(1)分析器 lwch 2010-07-22 14:23
發現DFA生成的時候有點小問題,修改了一下...
采用新的算法生成DFA狀態機,現在生成126個狀態,408條邊僅需1.1秒..
現在156個狀態435條邊Release版本需要15秒左右..
@陳梓瀚(vczh)
沒算上IO時間,時間主要消耗在DFA的狀態機生成上..
優化完Debug版本效率差不多提升了一半,Release版本差不多2,300毫秒
開啟代碼的完全優化Debug版本和之前相比提升了10倍左右..
算法主要時間基本都消耗在反復讀取指針的值上
對這3種情況分別反匯編以后都得到以下結果
00401004 |. C745 FC 00000>mov dword ptr [ebp-4], 0
0040100B |. EB 09 jmp short 00401016
0040100D |> 8B45 FC /mov eax, dword ptr [ebp-4]
00401010 |. 83C0 01 |add eax, 1
00401013 |. 8945 FC |mov dword ptr [ebp-4], eax
00401016 |> 817D FC E8030> cmp dword ptr [ebp-4], 3E8
0040101D |. 7D 02 |jge short 00401021
0040101F |.^ EB EC \jmp short 0040100D
所以說優化后的效率是一樣的
re: 關于字符串操作的注意事項 lwch 2010-07-12 23:56
@jmchxy
比如后面的L"a"在變量a里則表達式成了
str += 'a' + a;
稍不注意就會出問題..
re: 用正則表達式構造詞法分析器 lwch 2010-07-03 22:33
@陳梓瀚(vczh)
參照了你那篇寫出來的..不過代碼出入比較大..