第553章 教學(第2頁)
對於一個長年累月深耕技術的理工男來說,周瑜提供的這些技術知識文件,比什麼高級職位,要誘惑得多。
編譯程序的實現算法較為複雜,因為它所翻譯的語句與目標語言的指令不是一一對應關係,而是一多對應關係。、
同時因為它要處理遞歸調用、動態存儲分配、多種數據類型,以及語句間的緊密依賴關係。但是,由於高級程序設計語言書寫的程序需要易讀、易移植和表達特徵強等特點,所以開發難度非常高。
所以,劉存濤對於教授員工知識,這個環節,並不敢隨意。
而他面前的這些高校尖子生、社招精英們,也是在大夏新科“歷練”工作有不少時間,甚至大部分人都是老員工,所以在面對新項目,需要學習的時候,都能夠快速調整狀態,開始學習。
頗為寬敞的工作室裡面,三十九歲的劉存濤,侃侃而談道:“編譯程序的基本功能是把源程序的高級語言,翻譯成目標程序。
但是,作為一個具有實際應用價值的編譯系統,除了基本功能之外,還應具備語法檢查、調試措施、修改手段、覆蓋處理、目標程序優化、不同語言合用以及人-機聯繫等重要功能。
比如編譯程序必須分析源程序,然後綜合成目標程序。
首先,我們需要檢查源程序的正確性,並把它分解成若干基本成分;其次,再根據這些基本成分建立相應等價的目標程序部分……
詞法分析的任務是對由字符組成的單詞進行處理,從左至右逐個字符地對源程序進行掃描,產生一個個的單詞符號,把作為字符串的源程序改造成為單詞符號串的中間程序。
這個執行詞法分析的程序稱為詞法分析程序或掃描器……
要注意的是,源程序中的單詞符號經掃描器分析,一般產生二元式。而手工構造可使用狀態圖進行工作,自動生成則是使用確定的有限自動機來實現……”
從語法分析,到中間代碼生成,再到代碼優化、目標代碼生成,一堂課的時間,劉存濤就帶著這些學員進行了一個跨度極大的跨越式綜合瀏覽學習。