第178章 確實厲害

(2 / 3)
⚡ 登入後報錯可獲 3天VIP 免廣告——立即登入

碼生成器,把數學表達式翻譯成後綴表達式,也就是逆波蘭表示法。比如a加b乘c」,要輸出abc乘加」。你會怎麼做?」

這是經典題,不算難。

彭遠征幾乎是下意識地回答:「用棧。遇到操作數就輸出,遇到運算符就和棧頂比優先級。」

「好。」陸懷民點點頭,追問了一句,「那如果表達式中出現了括號呢?比如a加b乘以c減d。」

「左括號直接壓棧。遇到右括號,就把棧裡的運算符依次彈出,直到匹配的左括號。」

彭遠徵答得很快,這些都是基礎的東西,對他來說自然不是什麼問題。

陸懷民點點頭,繼續問:「彭師兄,你剛才說的是中綴表達式轉逆波蘭。現在我們換個角度想。如果不用棧,你能不能換一種方式實現同樣的功能?」

彭遠征愣了一下。

不用棧?

他腦子裡飛快地轉了一圈。

棧是這個問題標準的、最直觀的解。

不用棧,還有什麼辦法?這他倒確實沒想過。

「我————沒有想過這個問題。我一直用棧。」彭遠征知道他一時半會兒肯定想不到答案,索性如實回答。

「棧沒問題。「陸懷民說,「棧確實是最直觀、內存開銷最小的方法。但如果我們麵對的不是簡單的數學表達式呢?如果我們要處理的是一種更複雜的加工描述語言呢?」

他頓了頓,繼續說道:「你想想,用棧來寫的話,每加一種新的運算符,你就要改一次優先級表;

每加一種新的語法結構,你就要在棧的彈出邏輯裡加一堆分支判斷。到最後,整個程序會變成一團亂麻,沒人敢改,也沒人能看懂。那時候你怎麼辦?」

彭遠征的眉頭擰了起來。他隱約感覺到了陸懷民想說什麼,但又抓不住那個點。

畢竟這個時代的代碼複雜程度和後世是不可同日而語的。

很多後世的算法在這個時代極具有前瞻性。

「有一種方法,叫遞歸下降。」陸懷民說著,在麵前攤開的筆記本上刷刷寫了幾行偽代碼,把筆記本轉過來,推到彭遠征麵前:「不用棧,用函數的調用棧來代替數據棧。比如a加b乘c」,你可以定義一個解析函數,遇到加號的時候,先把左操作數輸出,然後遞歸處理右操作數,最後再輸出加號本身。」

彭遠征低頭看去。

那幾行偽代碼寫得清清爽爽,遞歸的調用順序標註得明明白白。

他一行一行往下看,心裡那層窗戶紙嘩一下就破了。

「這————這不就是編譯原理教材裡講的語法樹後序遍歷嗎?怎麼我一直沒想到用遞歸來————」

他差點想說「用遞歸來做表達式轉換」,但話到嘴邊,他自己先愣住了。

因為他突然意識到,他不是「沒想到」。而是他這些年來,從來隻在「棧「這一個框架裡打轉。

因為棧是這個問題公認標準解法,書上這麼寫,同行這麼做,他在無線電廠寫的每一個工控程序也都是這麼寫的。

所以他從來沒有想過,這件事可以不這麼做。

可眼前這個比他還小十幾歲的年輕人,似乎壓根就不覺得棧是唯一的路。

最新小說章節盡在o o p . t w

彭遠征忽然想起自己在無線電廠那十年,那本油印編譯原理教材時,書裡有一頁專門講了「遞歸下降法」。

但那一頁印得太模糊了,油墨糊成一團,隻能勉強辨認出幾個標題。當時他沒在意,翻過去了。

現在想來,他可能錯過了一扇門。

「遞歸下降解析法,是這幾年國外在嵌入式編譯器裡應用得比較多的一種方法。」陸懷民說:「它比棧更靈活,能處理更複雜的語法結構,而且代碼結構清晰,調試方便。如果我們課題組要做後處理編譯器,這個方法可能用得上。」

彭遠征點點頭,心裡翻湧著說不清的滋味。

「陸————」他抬起頭,一時竟不知該怎麼稱呼,「陸師弟,我能問一個問題嗎?」

」。講請「

」?則規法語計設麼怎備準你,令指些這義定宏、轉跳、環循的裡碼代控數,說如比一一義語的雜複更理處要果如,上礎基的降下歸遞在「

」?呢得覺兄師彭「:問反,笑了笑民懷陸

。思沉了入陷征遠彭

。請邀種一是而,較考是不的到受感他,題問個這的問民懷陸

。考思來起一他請邀

」————構結子示表間中個一成包打令指碼代G有所的麵裡體環循把降下歸遞,候時的L令指環循到讀器析解。表字鍵關個一義定預先,段階析分法詞在以可「:句字著酌斟,兒會一了考思他」————得覺我「

」————動用不全完輯邏析解的麵前,步一那開展後最改要需隻,言方碼代G了換機具工標目果如,來一樣這。碼代G的機具工標目成開展一統示表間中把,後最「:說續繼,順很路思個這得覺然忽,頓了頓他

。下一了驚度晰清的法想個這被都己自他,完說

G的統係控數種一意任配適以可端後,變不端前,來一樣這。碼代標目成譯翻示表間中把端後;示表間中成生,法語析解端前。端後和端前成拆程過譯編把「:頭點點民懷陸」。想思的譯編層分是就實其這。對「

。言方碼代

。雜複些有然忽裡心,民懷陸著看征遠彭

。的譯編懂是己自為以直一,書年十了啃頭埋裡當行個這譯編在他

。西東的沿前雜複麼什是不也西東些這,示表間中、譯編層分、降下歸遞如比,西東些那的到提民懷陸才剛可

。裡目項程工的在在實實個一在用以可,來起串樣這以可識知的散零些這,他訴告人有沒來從但

。拳的正真場一過打沒來從卻,功本基年十了練人的拳學像好就

。的真是夫功的人這,道知就他手伸一但,淺歷資他比,輕年他比。前麵他在站手對的練對,在現

。害厲實確


✅ 付款功能已修復,現在可以正常購買了 — 支援信用卡 · Apple Pay · Google Pay · WebATM · ATM 轉帳
😤 廣告總在最入戲的時候跳出來?
月付 $5 USD,升級 VIP 後全站所有頁面廣告立即全關——
不是只有這本書,是整個 oop.tw 每一頁、每一章,從此一路讀到底不被打斷。 $5 USD ≈ 一杯珍奶的錢,換一整個月零廣告清爽閱讀 · 隨時可取消
✅ 全站廣告全關 ✅ 工口專區全本解鎖 ✅ 月卡 $5 USD · 季卡 $13 USD · 年卡 $45 USD
⭐ 登入 / 免費註冊後升級
加我 LINE 好友,分享好書不錯過
第一時間獲得新書推薦、書單更新通知
立即加入
上一頁 書頁/目錄
/ 3 頁
下一頁
為本書評分(每位讀者可評一次,提交後無法修改)
發表評論
以 匿名讀者 身份發表
讀者評論