看了一段時(shí)間的Tex源碼,還沒(méi)有看完.
從今天開(kāi)始寫一些閱讀過(guò)程中記錄下來(lái)的筆記.可能會(huì)比較亂.
1) 雖然對(duì)所謂的"文學(xué)編程"還沒(méi)有太多理解,不過(guò)這種分段分節(jié)解釋的方式確實(shí)比較適合理解,或許符合"分而治之"的思想吧.
DEK的具體做法是將源代碼和相關(guān)解釋分為1379個(gè)節(jié),每個(gè)節(jié)以<解釋><代碼>的模式來(lái)進(jìn)行處理,
一些特殊的節(jié)可能會(huì)沒(méi)有<解釋>或者沒(méi)有<代碼>.
2) 因?yàn)門ex是有pascal語(yǔ)言寫的, 而pascal有一種語(yǔ)言上的限制:
那就是要使用的聲明(包括函數(shù),過(guò)程和變量)必須在主程序的前面聲明完,而不可以等到用的時(shí)候才聲明.
DEK的典型做法是通過(guò)逐漸增加的方式來(lái)定義聲明.
比如第4節(jié)定義變量為:
var <Global variables
13>;
在第13節(jié)定義:
<Global variables
13>=bad:integer;
在第20節(jié)定義:
<Global variables
13>+=xord:array[text_char] of
ASCII_code; ...
可以看出來(lái), 這種逐漸添加聲明的方式是很適合分段解釋的.