而 738 院的大佬們,聽到林言要過來學習交流的訊息後,一個個都翹首以盼。
等到林言剛到 738 所的門口,廠長徐欣三親自帶人出來迎接,握手時笑得眼角都堆起褶子:
“呦,今天是吹的哪門子風,咱們國家的小財神居然來咱們 738 所,真是蓬蓽生輝呀!”
“小林,你過來是是有什麼事需要吩咐我們嗎?”
“不敢當,不敢當!”
林言連連擺手,語氣真誠謙遜:“徐所長,我在計算機方面有些不成熟的想法和問題,所以專門想向您這裡的成員請教一番。我是專門過來學習取經的,您要是這麼客氣的話,實在是折煞我了。”
林言本來肚子裡就沒有太多的乾貨,況且過來時還帶著“偷師”的目的,面對大佬們時自然心虛不已,態度也格外謙遜。
經過一番寒暄,徐所長了解林言所要面對的任務和困境,又聽著他虛心請教的語氣,連忙熱情地擺擺手:
“沒事,不過是編譯系統方面的問題而已,我讓鍾翠豪和董蘊美兩位同志過來和你聊,他倆本來就是主攻這方面,而且和你年齡相仿,應該能和你聊得來。”
鍾翠豪是 1934 年出生,董蘊美先生更是 1936 年出生,他們都是 20 來歲風華正茂的年紀,並且都懷揣著熾熱的報國之心。所以沒幾分鐘便和林言一拍即合,開始火熱地討論起編譯方面的問題:
“我們最近確實在琢磨104 機的自動程式設計,因為現在用機器碼寫程式太慢,所以我們想搞一套類似蘇聯Аналитик的翻譯程式。”
“我們的路是這樣的:把源程式按行讀入,先做詞法切分,識別出操作碼和地址碼,再查一張靜態符號表,直接生成目標指令。符號表用線性查詢,儲存分配全部靜態做,陣列下標在編譯期算死。”
雖然林言不擅長編譯,但是來之前也在系統空間做了功課。所以在聽到鍾翠豪和董蘊美的提議後,也能完全理解,並且微微搖頭。
這套路子本質上還是把翻譯程式當成“高階彙編器”在用,符號表線性查詢,規模一大就會拖慢編譯;
全部靜態分配,意味著過程不能遞迴呼叫,陣列大小、下界也必須在編譯期寫死,稍一複雜就束手無策;
按行切分、直接生成目標指令,又等於把語法分析和語義分析攪在一起,一旦語言裡出現巢狀分程式、區域性變數、型別檢查,這套方法就很難擴充套件。它頂多能解眼前之急,卻撐不起一門真正通用的高階語言。
林言微微斟酌了一番,隨即丟擲自己真實的想法投石問路:
“兩位同志,我最近看到一份國外的報告,叫ALGOL 60。這個語言的設計理念比Аналитик要超前不少,你們覺得如何?”
鍾萃豪和董蘊美對視一眼,眼中閃過一絲驚訝,點頭後又搖頭:
“ALGOL 60我們也確實聽說過,不過感覺太複雜了。巢狀作用域、遞迴呼叫、名傳遞,這些東西對機器要求太高。咱們104 機才多大記憶體?連靜態分配都緊巴巴的,哪來的空間跑棧式活動記錄?”
“而且ALGOL 60的報告是英文的,國內能看懂的人屈指可數。就算搞出來,基層程式設計師也用不起來。咱們國情擺在這兒,還是先搞一套能落地的翻譯程式更實在。”
但林言還是更加執著於ALGOL 60。
ALGOL 可能在後世聲名不顯,但 C 語言在計算機界絕對是屬於聲名遠揚的存在。
而 C語言便是由 ALGOL演變幾代而來(ALGOL 60 → CPL → BCPL → B 語言→C語言),並且在這時候已經有 if、else、for、begin……end 等結構正規化,完全是一條康莊大道。
因此林言依舊堅持:
“兩位說得都對,但記憶體這事兒未必是死結。”
“現在104 機記憶體小,咱們可以先從外存倒騰,把不常用的符號表、中間程式碼先甩到磁鼓或紙帶上,執行時再按需調入;而且等以後的記憶體量變大,例如美蘇弄的電晶體計算機,據說儲存容量翻了好幾番,那棧式活動記錄就不是問題了。”
“語言這東西,底子打正了,硬體跟上來就能直接起飛;要是現在圖省事把路子走窄了,將來硬體升級了,還得推倒重來,那才真叫浪費。”
”?補彌法辦想再們咱的類之板短後然,好搭架框把先們我讓是你,了懂“:思意的言林解理間瞬人兩








