程序員的語言“艷遇史”(二)——計算中心管理員小C

作者: fzwudc  來源: 博客園  發布時間: 2010-04-26 08:50  閱讀: 1635 次  推薦: 0   原文鏈接   [收藏]  

  (***以下小說情節純屬虛構,供朋友們在緊張編程后輕松一下,如有雷同純屬巧合,切勿對號入座***)

  程序員的語言“艷遇史”(一)——班長pascal


  操作系統課上,我們無比敬仰的課任老師“胖頭余”唾沫橫飛:

  “中國計算機事業的發展,需要一大批熟練掌握unix和c的專業人才……”

  “計算機系的第一母語,那就是c語言……”

  “招之即來,來之能戰,戰之能勝……”

  要不要這么上綱上線啊,知道的懂得是上操作系統課,不知道的還以為是文革紅衛兵動員呢。今天真倒霉,來得遲了一些,擠在第一排,被噴了一臉的唾沫星子,抹一把,咦,還帶廣式月餅味的。

  “胖頭余”的可惡之處還在于,不允許我們用pc機dos系統完成大作業,必須到東校區計算中心,用Bull小型機完成,期末要檢查我們的系統帳戶。他還美其名曰,“學操作系統就要使用原滋原味的unix”。

  不去不知道,一去嚇一跳。大伙兒到計算中心都被深深震撼了,果然是“原滋原味”,里面的家什如果配上穿孔紙帶什么,就可以直接改名為“計算機歷史博物館”。小型機躲在玻璃罩里,橫躺著。我們都懷著瞻仰毛主席遺容的心情,從它旁邊經過,到里面的終端室上機。

  為什么我們在上機問題上比一年級囂張很多呢?因為當時宿舍一幫死黨湊份子買了一臺286。原來一個個信誓旦旦,這個要追趕求伯君,那個說要分析dos內核。自從小肖搞來一套“大富翁”之后,好嘛,一伙人整天湊一起擲點數。過了一段更猛的料來了!麥東從香港弄來一套日本脫衣麻將……。原來準備研究dos內核的兄弟現在被指派了更重要的任務——破解游戲通關圖片。一幫家伙流著哈喇子說,大家初三生理衛生都不及格,就指著您給復習了。

  大家知道,我是比較純潔的。喂,別扔板磚!好吧,我承認我被誘惑過,但是你們看,我不還是老老實實來計算中心上機了嗎。我的課業還算可以,就被宿舍人代會指派完成操作系統大作業的任務了。這幫禽獸!

  但是,我很快就有一個意外發現,那就是小C。

  小C是那種很耐看的女孩,雖說不上特別艷麗,但五官端莊,眼神靜靜的,像一汪清澈的湖水。平時總帶著一絲微微的笑意,讓你特別舒服。唉,這么好的女孩,當這個棺材屋子的管理員!學校管理層是怎么想的,看她年齡不大,不會是勤工儉學吧。

  小C的工作用我們的行話來說,屬于動態內存分配范疇。我們進機房,要分配一個有號數的令牌,這就算指針了。墻上幾十個掛件,每個對應一臺終端,這就算空閑內存單元了。

  進來一個,拿走一個令牌,就算是指針被分配內存了。

  出去一個,交回一個令牌,就算是釋放空閑資源了。

  如果你上去一看, 靠,“Segment fault”,指定位置上沒有終端,屬于使用null指針的情況。樓上大叔真是的,終端送修也不通知小C,搞得我還要跑下去換牌子。

  如果你發現位置已經有人,怎么回事?兄弟,這么不長眼,你18號怎么坐到28號位置來了。這屬于指針越界訪問情況,自己調解。

  一來二去,我和小C就熟悉了。原來她是高考落榜生,在計算中心當個臨時工,還在參加自學高考。不過她unix系統用得比我老練多了,這管理員沒白當,足可以當我老師。我厚著臉皮,多次以做機房衛生為代價,獲得了美女給我下指導棋的機會。用現在時髦的話說,這是兩種文明的對話——我代表dos星球,她來自外太空的unix行星。

  不過,要論高中數學什么的,就輪到她崇拜我的份了。妹妹,需要輔導早說嘛。哇,最近胳膊肘老疼,都是這做衛生給鬧的。

  現在,我愛死bull小型機了,怎么看怎么覺的比宿舍的pc機人性化。每天上機和小C郵件發來發去的,成為編程之余一大樂事。大作業都完成了,我還往計算中心跑。很快,我的免費機時就over了,自己得貼錢。不過能看到親愛得小C,我愿意。但是老蹭飯就不對了,弄得吃飯時一些人遠遠看到我,就假裝上廁所掉頭就溜。我怒了,以大作業不給參考進行威脅,局面才有所好轉。

  期末快到了,馬上要交操作系統和編譯原理兩門大作業。大家臉都綠了,一個個做奮發圖強狀,連生理衛生這么重要的課都沒人研究了。操作系統大作業是用c語言模擬unix文件系統,他們還可以參考一下。不過編譯原理大作業他們就無法參考我的了,因為我選的是實現c語言子集,他們都選了實現pascal語言子集。這幫人被c語言怪異的語法嚇到了,而且還以為一年級的入門語言肯定更簡單。我呢,在小C的精心栽培下茁壯成長,當然選c語言啦。

  他們不知道,雖然兩者都源于Algol60體系,但pascal是理論家設計的語言,模型那叫一精美;而c是工程師設計的語言,為了便于實現,不知砍掉多少東西。

  就以過程調用這塊來講吧。C語言的函數不允許嵌套,屬于非塊結構語言。任何時刻可以訪問的變量,或者屬于函數內部局部作用域,或者是全局空間(static也算全局),只有兩個層次。這樣,運行時間系統管理工作就簡單多了,反正全局變量就是分配在內存中的固定位置了,棧幀不斷堆疊就是了,下一個幀就代表調用者,可以返回,但是當前函數正常是不能訪問調用者的作用域的。

  Pascal語言就麻煩了,過程可以嵌套,內部過程可以訪問外部過程定義的變量。那時的編譯課本,70%的部分是講詞法和語法分析,運行時間系統一語帶過,講得不清不楚,夠他們喝一壺的。有的人使用什么靜態鏈、動態鏈,有的人用Display表來管理幀指針,反正都深陷泥潭。

  末了,我的兩門大作業都得了優。我正籌劃著給小C飛鴿傳書,一訴衷腸,好好慶祝一番。突然有人通知,“胖頭余”要單獨召見我。不會是要給什么獎學金吧。我樂呵呵的就跑去了。

  結果我聽到了一個無比恐怖的信息,原來小C是“胖頭余”的女兒。我們的“奸情”暴露了。什么啊,就牽過手,都傳成什么樣了!就差沒開房了。不過“胖頭余”好歹是大學教授,不會動粗,總之都是電視劇語言啦。還年輕,要把精力放在學習上,長痛不如短痛,以后不要再見面,天涯無處無芳草……

  杯具啊,我的初戀就這樣被扼殺在搖籃中。

 

  待續: 法國外教prolog

0
0
 
標簽:C
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()