原创 ruby.c源碼分析

ruby.c源碼分析 代碼編譯不了,但生活還是要繼續的。我今天就讀ruby.c。我快速的瀏覽了一下文件。因爲我執行時  ./ruby -v helloworld01 [hello] ruby - version 0.49 (18 Jul

原创 gawk1.01源碼awk3.c分析

gawk1.01源碼awk3.c分析 我一邊讀源碼,一邊把自己的一些想法寫出來。我的筆記本外接了一個顯示器。 init_vars()   這個過程,對FS,NF,RS,NF,FILENAME,OFS,ORS,OFMT幾個變量進行初始化。

原创 gawk1.01源碼安裝 續

gawk1.01源碼安裝 續 今天是個好天氣,我昨天發現有衝突,看了會書,還是不得要領,今天把衝突進行研究,發現 Option 1,   statements -> <Rule 24, tokens 2 .. 5>     stateme

原创 gawk1.01源碼分析awk.y衝突了

gawk1.01源碼分析awk.y衝突了 yang@DESKTOP-V9HS3B6:~/gawk101/gawk$ echo "hello:ok" | ./gawk 'BEGIN { FS=":"} > {print $1,$2}' he

原创 ruby0.49編譯

ruby0.49編譯 從前天開始,又開始編譯ruby0.49,過程痛苦得不想說了。 先是,dbm.c的編譯。   老是出現找不到lgdbm-compat。我後來,乾脆先寫測試程序,在網上抄一個。再進行編譯。還是報錯。於是在網上找資料。於是

原创 讀代碼時,寫測試代碼驗證自己的想法

讀代碼時,寫測試代碼驗證自己的想法 這兩天爲了編譯ruby0.49,可是費盡了心思。 後來,發現,爲了再現編譯中的錯誤,最好是自己寫測試代碼。 一。gdbm調試 因爲ruby049中有一個文件dbm.c,爲了編譯它,需要安裝gdbm。從來

原创 gawk1.01源碼分析——各文件功能

gawk1.01源碼分析——各文件功能 今天就各個文件的基本功能談下我的理解。 一、awk.h頭文件 先列出數據結構 typedef struct hashnode HASHNODE; struct hashnode {   HASHNO

原创 gawk awk3.c源碼分析

gawk awk3.c源碼分析 本來昨天要完成的,昨天晚上睡得太早,就忘記了,今天打開電腦 ,第一件事,就是把這篇完成。 這個文件主要完成一些內部函數的定義。 先定義了一些外部變量,就於對應awk程序中的NF,FS,RS,NR,FILEN

原创 coreutils-4.5.1源碼閱讀

今天忽然想,我目前的功力去勉強讀gawk1.01,ruby049的源碼,都有些勉強,真的。 因爲涉及到編譯器的許多知識。爲此,還是讀簡單些的,如coreutils的源碼。 於是,我打開了coreutils,現在讀的時候,我第一選擇是想多

原创 coreutils5.0 echo.c源碼分析

coreutils5.0 echo.c源碼分析 隨便翻翻,因爲前幾天學習了sort的用法,想讀讀sort.c的代碼,一打開,完全看不懂,因爲數據結構中,內部排序我懂了,但外部排序我不懂,看樣子,作者好像是用到了外部排序。於是果斷的略過。

原创 編譯成功的gawk1.01源碼上傳了

編譯成功的gawk1.01源碼上傳了 世界上最幸福的事,就是把代碼編譯成功了。然後一個屏幕對代碼進行編輯,另一屏幕,進行測試,立即看到效果。太爽了。 今天,我把gawk1.01編譯成功,我開始進行一些簡單的測試,如從內置函數開始。如何測試

原创 分享我修改後的一些源碼

分享我修改後的一些源碼 我有時覺得現在的時代真好。有電腦可以用,有書可以讀。而且有那麼多的開源代碼可以供自己研究。我想,或許,這就是我們真正的天堂了。 我原來學習時,偏重於讀書,很少寫代碼,導致自己水平一直不高,現在我改變思路,以讀源碼爲

原创 coreutils5.0 unexpand.c源碼分析

coreutils5.0 unexpand.c源碼分析 這個程序沒有使用過。今天先測試一下用法。 echo "          bc           haha " | ./unexpand | cat -t 發現果然把空格轉換成ta

原创 如何在大腦中模擬代碼運行

如何在大腦中模擬代碼運行 昨天,終於在筆記本上安裝好了ubuntu,這次沒有使用虛擬機。這樣,可以在ubuntu中使用圖形界面相關功能了。在win10下通過wsl使用ubuntu,不能使用圖形界面,感覺功能很受限。 心裏一想起這事,就覺得

原创 gawk1.01源碼大體結構分析

gawk1.01源碼大體結構分析 昨天找gawk的選項,因爲我想分析其調試過程。我想根據其debug的過程,來分析程序。發現在awk1.c中有-D選項,試一下,結果出現一大堆: yang@DESKTOP-V9HS3B6:~/gawk101