本書主要介紹程序設(shè)計語言的編譯程序的設(shè)計技術(shù),主要由編譯程序的基本結(jié)構(gòu)、形式語言和自動機理論的基礎(chǔ)知識、編譯過程各階段的工作原理和實現(xiàn)方法三部分構(gòu)成。
編譯原理是計算機專業(yè)開設(shè)的一門重要的專業(yè)課程,旨在介紹程序設(shè)計語言的編譯程序的構(gòu)造過程、原理和方法。從教學(xué)角度來說,編譯原理與程序設(shè)計基礎(chǔ)、離散數(shù)學(xué)和數(shù)據(jù)結(jié)構(gòu)等課程聯(lián)系緊密,它作為后幾門課程的綜合應(yīng)用,能夠?qū)ο嚓P(guān)課程內(nèi)容的深入理解和鞏固發(fā)揮良好的作用。從技術(shù)角度來說,程序設(shè)計語言的編譯過程涉及的理論與技術(shù)有利于更好地形成計算機軟件到硬件乃至軟硬件協(xié)同的概念,也適用于各種系統(tǒng)軟件、應(yīng)用軟件的設(shè)計和實現(xiàn)。從思維角度來說,編譯原理涉及的形式語言理論和自動機理論建立了一種對問題進行抽象、描述和識別,進而從本質(zhì)上認識、分析和解決問題的思維方法,對工科學(xué)生和技術(shù)人員抽象思維能力的培養(yǎng)有積極的意義。本書適合作為高等院校計算機專業(yè)本科生教材,亦可供準備參加碩士研究生入學(xué)考試的考生及從事計算機應(yīng)用和軟件開發(fā)工作的工程技術(shù)人員參考。編譯原理相關(guān)理論的專業(yè)性強,內(nèi)容抽象、難理解,因此本書在編寫過程中始終堅持以通俗易懂的語言表達實現(xiàn)對學(xué)生抽象思維能力的培養(yǎng)。本書在闡釋編譯各階段涉及的原理、方法和技術(shù)的過程中,對算法的思想、設(shè)計過程和具體內(nèi)容均給出了詳細的說明,引導(dǎo)讀者設(shè)身處地,一步一步地體會其分析和實現(xiàn)過程,整個過程強調(diào)問題的抽象描述和分析思路。在厘清、弄透算法知識的同時,提升讀者分析問題、解決問題的能力。全書共10章。第1章簡單介紹編譯的基本概念、過程和編譯程序的生成,并對形式語言和文法的相關(guān)知識進行說明。從第2章開始,按編譯的過程逐一介紹編譯各階段的任務(wù)、原理和基本實現(xiàn)技術(shù),包括詞法分析、語法分析、語義分析、中間代碼生成、運行時存儲空間的組織、代碼優(yōu)化、目標代碼生成等內(nèi)容。為幫助讀者鞏固知識點,把握重點和難點,掌握解題方法,本書在每章最后都給出了精選的習題。書中的例題和習題均以C語言為背景,算法也以C語言的格式給出,從而做到了與程序設(shè)計基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)等先修課程的較好融合。后續(xù)將出版與本書配套的學(xué)習輔導(dǎo)和實驗用書,為本書的每一章配套內(nèi)容矩陣、例題分析和練習測試。實驗包括獨立的局部算法實驗和綜合實驗。本書第1~5章由史涯晴獨自編寫,第6~10章由賀汛、史涯晴共同編寫。由于編者水平有限,書中難免存在不當和疏漏之處,敬請廣大讀者批評指正。編 者2020年5月26日于南京