re: 外觀模式 lwch 2011-05-27 07:58
@nscboy
設(shè)計(jì)模式就是這么定義的..
re: 代理模式 lwch 2011-05-16 20:16
@K.V
哪里詭異了...
re: 裝飾模式 lwch 2011-05-06 16:07
@千暮(zblc)
截圖下來貌似有點(diǎn)變色..
上圖那個(gè)例子運(yùn)行到一半崩掉了..
re: ESEngine_Demo5 lwch 2011-03-02 17:44
@陳梓瀚(vczh)
- -編譯原理以前有幾篇文章..
re: CGen:用最原始的方法生成中間指令 lwch 2011-02-19 15:49
原始的就是簡(jiǎn)單..
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是在運(yùn)行時(shí)生成的,要壓縮的話還得遍歷一遍..
re: 使用面向組合子算法寫詞法分析器 lwch 2011-01-27 14:44
@陳梓瀚(vczh)
這個(gè)問題還真沒考慮過..惰性計(jì)算的確不是一件容易的事情..
但這個(gè)作為詞法分析器已經(jīng)足夠
re: 面向組合子的一些測(cè)試 lwch 2011-01-23 16:53
@陳梓瀚(vczh)
的確..沒有理解組合這個(gè)概念..
@xx
還處于學(xué)習(xí)階段,Linux0.00的代碼比較短應(yīng)此拿它來研究.
re: 編譯項(xiàng)目跟蹤文檔(二) lwch 2010-11-02 18:31
用自頂向下的方法很容易對(duì)這類語法,運(yùn)算符優(yōu)先級(jí)越高就越先被歸約..
沒有檢查緩沖區(qū)長(zhǎng)度...
會(huì)造成溢出
發(fā)現(xiàn)DFA生成的時(shí)候有點(diǎn)小問題,修改了一下...
采用新的算法生成DFA狀態(tài)機(jī),現(xiàn)在生成126個(gè)狀態(tài),408條邊僅需1.1秒..
現(xiàn)在156個(gè)狀態(tài)435條邊Release版本需要15秒左右..
@陳梓瀚(vczh)
沒算上IO時(shí)間,時(shí)間主要消耗在DFA的狀態(tài)機(jī)生成上..
優(yōu)化完Debug版本效率差不多提升了一半,Release版本差不多2,300毫秒
開啟代碼的完全優(yōu)化Debug版本和之前相比提升了10倍左右..
算法主要時(shí)間基本都消耗在反復(fù)讀取指針的值上
對(duì)這3種情況分別反匯編以后都得到以下結(jié)果
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
所以說優(yōu)化后的效率是一樣的
@jmchxy
比如后面的L"a"在變量a里則表達(dá)式成了
str += 'a' + a;
稍不注意就會(huì)出問題..
@陳梓瀚(vczh)
參照了你那篇寫出來的..不過代碼出入比較大..