第一篇:編譯技術的發(fā)展和應用
編譯技術的發(fā)展和應用
據(jù)說第一個編譯程序的出現(xiàn)是在20世紀50年代早期,很難講出確切的時間,因為當初大量的實驗和實現(xiàn)工作是由不同的小組獨立完成的,多數(shù)早期的編譯工作是將算術公式翻譯成機器代碼。用現(xiàn)在的標準來衡量,當時的編譯程序能完成的工作十分初步,如只允許簡單的單目運算,數(shù)據(jù)元素的命名方式有很多限制。然而它們奠定了對高級語言編譯系統(tǒng)的研究和開發(fā)的基礎。20世紀50年代中期出現(xiàn)了FORTRAN等一批高級語言,相應的一批編譯系統(tǒng)開發(fā)成功。隨著編譯技術的發(fā)展和社會對編譯程序需求的不斷增長,20世紀50年代末有人開始研究編譯程序的自動生成工具,提出并研制編譯程序的編譯程序。它的功能是以任一語言的詞法規(guī)則、語法規(guī)則和語義解釋出發(fā),自動產(chǎn)生該語言的編譯程序。目前很多自動生成工具已廣泛使用,如詞法分析程序的生成系統(tǒng)LEX,語法分析程序的生成系統(tǒng)YACC等。20世紀60年代起,不斷有人使用自展技術來構(gòu)造編譯程序。自展的主要特征是用被編譯的語言來書寫該語言自身的編譯程序。1971年,PASCAL的編譯程序用自展技術生成后,其影響就越來越大。
隨著并行技術和并行語言的發(fā)展,處理并行語言的并行編譯技術,將串行程序轉(zhuǎn)換成并行程序的自動并行編譯技術也正在深入研究之中。另外嵌入式應用迅速增長的需求,推動了交叉編譯技術的發(fā)展.還有系統(tǒng)芯片設計方法和關鍵EDA技術的研究,也帶動了專用語言VHDL等及其編譯技術的不斷深化。
編譯實現(xiàn)方式的發(fā)展
-手工
機器語言
匯編
系統(tǒng)程序設計語言
-自動構(gòu)造工具lex yacc gcc
推動編譯技術發(fā)展的因素
語言范型(計算模式)
計算機體系結(jié)構(gòu)
語言范型
-命令式(imperative language)
-應用式(applicative)
-基于規(guī)則的(rule-based)
-面向?qū)ο蟮模╫bject-oriented)
-并行計算(parallel computing)
體系結(jié)構(gòu)
-萬諾曼機體系結(jié)構(gòu)
-并行體系結(jié)構(gòu)
-嵌入系統(tǒng)
編譯程序執(zhí)行環(huán)境
-批處理
-交互環(huán)境
-嵌入系統(tǒng)環(huán)境
為了提高軟件開發(fā)的效率和保證質(zhì)量,人們除了要在軟件工程中對軟件開發(fā)過程所要遵循的規(guī)范化或標準化外,還盡量使用先進的軟件開發(fā)技術和相應的軟件工具,而大部分軟件工具的開發(fā),常常要用到編譯技術和方法。實際上編譯程序本身也是一種軟件開發(fā)工具。為了提高編程效率,縮短調(diào)試時間,軟件工作人員研制了不少對源程序處理的工具。這些工具的開發(fā)不同程度地用到編譯技術和方法。下面僅是一些
例子。
1、語言的結(jié)構(gòu)化編輯器 結(jié)構(gòu)化編輯器是引導用戶在語言的語法制導下編制程序,能自動地提供關鍵字和與其匹配的關鍵字,如if后必須有then,begin和end的配對,左右括號的配對等,這樣可以減少語法上的錯誤,可加快對源程序的調(diào)試,提高效率和質(zhì)量。
2、語言程序的調(diào)試工具 調(diào)試是軟件開發(fā)過程中一個重要環(huán)節(jié),結(jié)構(gòu)化編輯器只能解決語法錯誤的問題,而對一個已通過編譯的程序來說,需進一步了解的是程序執(zhí)行的結(jié)果與編程人員的意圖是否一致,程序的執(zhí)行是否實現(xiàn)預計的算法和功能。這種對算法的錯誤或程序沒能反應算法的功能等錯誤就需用調(diào)試器來協(xié)助解決。調(diào)試器的功能愈強,實現(xiàn)愈復雜,但它必須與語法分析、語義處理有緊密聯(lián)系。
3、語言程序測試工具 語言程序的測試工具有兩種:靜態(tài)分析器和動態(tài)測試器
靜態(tài)分析器是對源程序進行靜態(tài)地分析。它對源程序進行語法分析并制定相應表格,檢查變量定值與引用的關系。如某變量未被賦值就被引用,或定值后未被引用,或多余的源代碼等一些編譯程序的語法分析發(fā)現(xiàn)不了的錯誤。動態(tài)測試工具是在源程序的適當位置插入某些信息,并用測試用例記錄(顯示語句或函數(shù))程序運行時的實際路徑。將運行結(jié)果與期望的結(jié)果進行比較分析,幫助編程人員查找問題。這種測試工具在國內(nèi)已有開發(fā),如FORTRAN語言和C語言的測試工具。
4、高級語言之間的轉(zhuǎn)換工具 由于計算機硬件的不斷更新?lián)Q代,更新更好的程序設計語言的推出為提高計算機的使用效率提供了良好條件,然而一些已有的非常成熟的軟件如何在新機器新語言情況下使用呢?為了減少重新編制程序所耗費的人力和時間,就要解決如何把一種高級語言轉(zhuǎn)換成另一種高級語言,乃至匯編語言轉(zhuǎn)換成高級語言的問題。這種轉(zhuǎn)換工作要對被轉(zhuǎn)換的語言進行詞法和語法分析,只不過生成的目標語言是另一種高級語言而已。這與實現(xiàn)一個完整的編譯程序相比工作量要少些。在國內(nèi)已研制出C,PASCAL,F(xiàn)ORTRAN到Ada的翻譯器和IBM 4700匯編到C的轉(zhuǎn)換器,其效果很好。近年來,由于JAVA語言的發(fā)展,國內(nèi)外也已研制出不少其他語言到JAVA的轉(zhuǎn)換系統(tǒng),如c到JAVA的轉(zhuǎn)換系統(tǒng),cobol到JAVA的轉(zhuǎn)換系統(tǒng)等等。
編譯實現(xiàn)方式的發(fā)展主要分一下五類:手工、機器語言、匯編、系統(tǒng)程序設計語言、自動構(gòu)造工具lex yacc gcc。推動編譯技術發(fā)展的因素主要包括:語言范型(計算模式)、計算機體系結(jié)構(gòu)語言范型主要包括:命令式(imperative language)、應用式(applicative)、基于規(guī)則的(rule-based)、面向?qū)ο蟮模╫bject-oriented)、并行計算(parallel computing)。
體系結(jié)構(gòu)主要包括:萬諾曼機體系結(jié)構(gòu)、并行體系結(jié)構(gòu)、嵌入系統(tǒng)。編譯程序執(zhí)行環(huán)境主要包括:批處理、交互環(huán)境、嵌入系統(tǒng)環(huán)境、并行編譯技術、交叉編譯。
編譯程序在一個機器(宿主機)上運行,產(chǎn)生另一個機器(目標機)的匯編語言。嵌入式系統(tǒng)中的應用程序正是借助這樣的編譯程序生成。
目標處理器MIPSX是MIPS系列芯片的種,屬于RISC體系結(jié)構(gòu),來源于斯坦福大學的MIPS計劃。由于該系列CPU不是采用加州大學伯克利分校的RISC窗口技術而是采用消除流水線各級互鎖的微處理器MIPS(MicroprocessorWithout Interlocking Pipeline Stage)技術,因此而得名。MIPS是將IBM公司對優(yōu)化編譯程序的研究和加州大學伯克利分校的大規(guī)模集成電路的思想結(jié)合起來的產(chǎn)品。
由于RISC指令集的簡單和整齊,為了達到更好地利用計算機的性能,MIPS系列芯片中很好地應用了流水線策略。流水線是現(xiàn)代各類微處理器都采用的指令執(zhí) 行技巧,即將若干條指令的取指、譯碼和執(zhí)行過程部分重疊在流水線中同時執(zhí)行。以前在CISC計算機中,由于指令多而復雜,處理每條指令的所需時間不固定,當后面指令需要前條指令的結(jié)果時,往往造成指令互鎖,因此無法實現(xiàn)流水線。而斯坦福大學的MIPS計劃就是在編譯的過程中,利用編譯程序優(yōu)化處理器的流水 線以求提高處理器流水線的效率。由于采用了硬件連線控制來執(zhí)行數(shù)目不多的簡單指令,而且還能重組軟件流水線,這樣就減少了硬件復雜性。但是由于存在數(shù)據(jù)和指令轉(zhuǎn)移的相關性,這會引起流水線的停頓,降低流水線整體的執(zhí)行速率。為了調(diào)整這些相關性,又開發(fā)出了代碼重組技術,其中一種是延遲轉(zhuǎn)移(delayed branch),另一種叫延遲裝入,提升了性能。
MIPS公司的R系列就是在此基礎上開發(fā)的RISC工業(yè)產(chǎn)品的微處理器。這些系列產(chǎn)品被很多計算機公司采用生產(chǎn)各種工作站和計算機系統(tǒng)。R系 列遵循按比例提高性能設計技術,按不同工藝技術實現(xiàn)基本相同的體系結(jié)構(gòu),其適用范圍從低端的嵌入式控制器、個人計算機到高端的超級小型機、服務器甚至大型 機和巨型機,而且系統(tǒng)軟件和應用程序都是兼容的。MIPS公司在1986年推出82000處理器,1988年推出83000處理器,1991年推出第一款 64位商用微處理器84000。之后,又陸續(xù)推出88000(于1994年)、810000(于1996年)和812000(于1997年)等型號。1999年,MIPS公司發(fā)布MIPS 32和MIPS 64架構(gòu)標準。2000年,MIPS公司發(fā)布了針對MIPS 32 4Kc的新版本以及未來64位MIPS 64 20Kc處理器內(nèi)核。
在整個R系列中82000/82010是最基礎的原型;83000/83010是82000/82010的增強型產(chǎn)品;由于84000采用高 精度的CMOS工藝,因此其性能很高,用途很廣;而86000/86010是ECL電路化的高速品種,但是由于86000/86010的功耗大,成本高,所以其應用受到很大限制。但是MIPSX并不屬于以上提到的CPU中的任何一種,它是由20世紀80年代后期由美國國防部高級研究項目署(DARPA)資 助的一個項目的成果。因此,基于MIPSX的交叉編譯工具鏈研究雖然現(xiàn)有的GNU交叉編譯工具鏈對MIPS公司R系列芯片的支持很好,但還是缺乏對 MIPSX的有效支持,所以還是需要進行移植。進行移植工作前,必須首先了解MIPSX的體系結(jié)構(gòu)。經(jīng)過實驗室前幾屆師兄的分析,我們得知MIPSX的體 系結(jié)構(gòu)與MIPS公司R系列芯片中的82000最為接近,當然它們在很多地方還是存在著差別,比如具體指令集的不同,比如MIPSX沒有浮點操 作;MIPSX指令的基本操作碼只占5位;MIPSX在跳轉(zhuǎn)指令中的延時槽有兩條等。
簡單講,編譯器就是將“一種語言(通常為高級語言)”翻譯為“另一種語言(通常為低級語言)”的程序。一個現(xiàn)代編譯器的主要工作流程:源代碼(source code)→ 預處理器(preprocessor)→ 編譯器(compiler)→ 目標代碼(object code)→ 鏈接器(Linker)→ 可執(zhí)行程序(executables)高級計算機語言便于人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。源代碼一般為高級語言(High-level language),如Pascal、C、C++、Java、漢語編程等或匯編語言,而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對于C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的字節(jié)碼(ByteCode)。最后運行的時候通過通用語言運行庫的轉(zhuǎn)換,編程最終可以被CPU直接計算的機器碼(NativeCode)。
在20世紀40年代,由于馮·諾伊曼在存儲-程序
編譯原理實驗程序
計算機方面的先鋒作用,編寫一串代碼或程序已成必要,這樣計算機就可以執(zhí)行所需的計算。開始時,這些程序都是用機器語言(machine language)編寫的。機器語言就是表示機器實際操作的數(shù)字代碼,例如:
C7 06 0000 0002 表示在IBM PC 上使用的Intel 8x86處理器將數(shù)字2移至地址0 0 0 0(16進制)的指令。
但編寫這樣的代碼是十分費時和乏味的,這種代碼形式很快就被匯編語言(assembly language)代替了。在匯編語言中,都是以符號形式給出指令和存儲地址的。例如,匯編語言指令 MOV X,2 就與前面的機器指令等價(假設符號存儲地址X是0 0 0 0)。匯編程序(assembler)將匯編語言的符號代碼和存儲地址翻譯成與機器語言相對應的數(shù)字代碼。
匯編語言大大提高了編程的速度和準確度,人們至今仍在使用著它,在編碼需要極快的速度和極高的簡潔程度時尤為如此。但是,匯編語言也有許多缺點:編寫起來也不容易,閱讀和理解很難;而且匯編語言的編寫嚴格依賴于特定的機器,所以為一臺計算機編寫的代碼在應用于另一臺計算機時必須完全重寫。
發(fā)展編程技術的下一個重要步驟就是以一個更類似于數(shù)學定義或自然語言的簡潔形式來編寫程序的操作,它應與任何機器都無關,而且也可由一個程序翻譯為可執(zhí)行的代碼。例如,前面的匯編語言代碼可以寫成一個簡潔的與機器無關的形式 x = 2。
在1954年至1957年期間,IBM的John Backus帶領的一個研究小組對FORTRAN語言及其編譯器的開發(fā),使得上面的擔憂不必要了。但是,由于當時處理中所涉及到的大多數(shù)程序設計語言的翻譯并不為人所掌握,所以這個項目的成功也伴隨著巨大的辛勞。幾乎與此同時,人們也在開發(fā)著第一個編譯器,Noam Chomsky開始了他的自然語言結(jié)構(gòu)的研究。他的發(fā)現(xiàn)最終使得編譯器結(jié)構(gòu)異常簡單,甚至還帶有了一些自動化。Chomsky的研究導致了根據(jù)語言文法(grammar,指定其結(jié)構(gòu)的規(guī)則)的難易程度以及識別它們所需的算法來為語言分類。正如現(xiàn)在所稱的-與喬姆斯基分類結(jié)構(gòu)(Chomsky hierarchy)一樣-包括了文法的4個層次:0型、1型、2型和3型文法,且其中的每一個都是其前者的專門化。2型(或上下文無關文法(context-free grammar))被證明是程序設計語言中最有用的,而且今天它已代表著程序設計語言結(jié)構(gòu)的標準方式。
分析問題(parsing problem,用于限定上下文無關語言的識別的有效算法)的研究是在20世紀60年代和70年代,它相當完善地解決了這一問題,現(xiàn)在它已是編譯理論的一個標準部分。它們與喬姆斯基的3型文法相對應。對它們的研究與喬姆斯基的研究幾乎同時開始,并且引出了表示程序設計語言的單詞(或稱為記號)的符號方式。人們接著又深化了生成有效的目標代碼的方法,這就是最初的編譯器,它們被一直使用至今。人們通常將其誤稱為優(yōu)化技術(optimization technique),但因其從未真正地得到過被優(yōu)化了的目標代碼而僅僅改進了它的有效性,因此實際上應稱作代碼改進技術(code improvement technique)。
這些程序最初被稱為編譯程序-編譯器,但更確切地應稱為分析程序生成器(parser generator),這是因為它們僅僅能夠自動處理編譯的一部分。這些程序中最著名的是 Yacc(yet another compiler-compiler),它是由Steve Johnson在1975年為Unix系統(tǒng)編寫的。
類似地,有窮自動機的研究也發(fā)展了另一種稱為掃描程序生成器(scanner generator)的工具,Lex(與Yacc同時,由Mike Lesk為Unix系統(tǒng)開發(fā)的)是這其中的佼佼者。在20世紀70年代后期和80年代早期,大量的項目都關注于編譯器其他部分的生成自動化,這其中就包括代碼生成。這些嘗試并未取得多少成功,這大概是因為操作太復雜而人們又對其不甚了解。
編譯器設計最近的發(fā)展包括:首先,編譯器包括了更為復雜的算法的應用程序,它用于推斷或簡化程序中的信息;這又與更為復雜的程序設計語言(可允許此類分析)的發(fā)展結(jié)合在一起。其中典型的有用于函數(shù)語言編譯的Hindle y-Milner類型檢查的統(tǒng)一算法。
其次,編譯器已越來越成為基于窗口的交互開發(fā)環(huán)境(interactive development environment,IDE)的一部 分,它包括了編輯器、鏈接程序、調(diào)試程序以及項目管理程序。這樣的IDE的標準并沒有多少,但是已沿著這一方向?qū)藴实拇翱诃h(huán)境進行開發(fā)了。
編輯器(editor):編譯器通常接受由任何生成標準文件(例如ASCII文件)的編輯器編寫的源程序?,F(xiàn)在,編譯器已與另一個編輯器和其他程序捆綁進一個交互的開發(fā)環(huán)境-IDE中。此時,盡管編輯器仍然生成標準文件,但會轉(zhuǎn)向正被討論的程序設計語言的格式或結(jié)構(gòu)。這樣的編輯器稱為基于結(jié)構(gòu)的(structure based),且它早已包括了編譯器的某些操作;因此,程序員就會在程序的編寫時而不是在編譯時就得知錯誤了。從編輯器中也可調(diào)用編譯器以及與它共用的程序,這樣程序員無需離開編輯器就可執(zhí)行程序。
編譯原理是計算機專業(yè)的一門重要專業(yè)課,旨在介紹編譯程序構(gòu)造的一般原理和基本方法。內(nèi)容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優(yōu)化和目標代碼生成。編譯原理是計算機專業(yè)設置的一門重要的專業(yè)課程。雖然只有少數(shù)人從事編譯方面的工作,但是這門課在理論、技術、方法上都對學生提供了系統(tǒng)而有效的訓練,有利于提高軟件人員的素質(zhì)和能力。目前各個大學使用的教材機械工業(yè)出版社、國防工業(yè)出版社出版的《編譯原理》。
大學課程為什么要開設編譯原理呢?這門課程關注的是編譯器方面的產(chǎn)生原理和技術問題,似乎和計算機的基礎領域不沾邊,可是編譯原理卻一直作為大學本科的必修課程,同時也成為了研究生入學考試的必考內(nèi)容。編譯原理及技術從本質(zhì)上來講就是一個算法問題而已,當然由于這個問題十分復雜,其解決算法也相對復雜。我們學的數(shù)據(jù)結(jié)構(gòu)與算法分析也是講算法的,不過講的基礎算法,換句話說講的是算法導論,而編譯原理這門課程講的就是比較專注解決一種的算法了。在20世紀50年代,編譯器的編寫一直被認為是十分困難的事情,第一Fortran的編譯器據(jù)說花了18年的時間才完成。在人們嘗試編寫編譯器的同時,誕生了許多跟編譯相關的理論和技術,而這些理論和技術比一個實際的編譯器本身價值更大。就猶如數(shù)學家們在解決著名的哥德巴赫猜想一樣,雖然沒有最終解決問題,但是其間誕生不少名著的相關數(shù)論。
推薦參考書
雖然編譯理論發(fā)展到今天,已經(jīng)有了比較成熟的部分,但是作為一個大學生來說,要自己寫出一個像TurbocC,Java那樣的編譯器來說還是太難了。不僅寫編譯器困難,學習編譯原理這門課程也比較困難。
第一本書的原名叫《CompilersPrinciples,Techniques,andTools》,另外一個響亮的名字就是龍書。原因是這本書的封面上有條紅色的龍,也因為獗臼樵詒嘁朐?砘?嘴域確實?忻?所以很多國外的學者都直接取名為龍書。最近機械工業(yè)出版社已經(jīng)出版了此書的中文版,名字就叫《編譯原理》。該書出的比較早,大概是在85或86年編寫完成的,作者之一還是著名的貝爾實驗室的科學家。里面講解的核心編譯原理至今都沒有變過,所以一直到今天,它的價值都非凡。這本書最大的特點就是一開始就通過一個實際的小例子,把編譯原理的大致內(nèi)容羅列出來,讓很多編譯原理的初學者很快心里有了個底,也知道為什么會有這些理論,怎么運用這些理論。而這一點是我感覺國內(nèi)的教材缺乏的東西,所以國內(nèi)的教材都不是寫給愿意自學的讀者,總之讓人看了半天,卻不知道里面的東西有什么用。
第二本書的原名叫《ModernCompilerDesign》,中文名字叫做《現(xiàn)代編譯程序設計》。該書由人民郵電出版社所出。此書比較關注的是編譯原理的實踐,書中給出了不少的實際程序代碼,還有很多實際的編譯技術問題等等。此書另外一個特點就是其現(xiàn)代而字。在傳統(tǒng)的編譯原理教材中,你是不可能看到如同Java中的垃圾回收等算法的。因為Java這樣的解釋執(zhí)行語言是在近幾年才流行起來的東西。如果你想深入學習編譯原理的理論知識,那么你肯定得看前面那本龍書,如果你想自己動手做一個先進的編譯器,那么你得看這本《現(xiàn)代編譯程序設計》。
第三本書就是很多國內(nèi)的編譯原理學者都推薦的那本《編譯原理及實踐》?;蛟S是這本書引入國內(nèi)比較早吧,我記得我是在高中就買了這本書,不過也是在前段時間才把整本書看完。此書作為入門教程也的確是個不錯的選擇。書中給出的編譯原理講解也相當細致,雖然不如前面的龍書那么深入,但是很多地方都是點到為止,作為大學本科教學已經(jīng)是十分深入了。該書的特點就是注重實踐,不過感覺還不如前面那本《現(xiàn)代編譯程序設計》的實踐味道更重。此書的重點還是在原理上的實踐,而非前面那本那樣的技術實踐。《編譯原理及實踐》在講解編譯原理的各個部分的同時,也在逐步實踐一個現(xiàn)代的編譯器TinyC.等你把整本書看完,差不多自己也可以寫一個TinyC了。作者還對Lex和Yacc這兩個常用的編譯相關的工具進行了很詳細的說明,這一點也是很難在國內(nèi)的教材中看到的。
推薦了這三本教材,都有英文版和中文版的。很多英文好的同學只喜歡看原版的書,不我的感覺是這三本書的翻譯都很不錯,沒有必要特別去買英文版的。理解理論的實質(zhì)比理解表面的文字更為重要。
編譯原理的實質(zhì)
幾乎每本編譯原理的教材都是分成詞法分析,語法分析(LL算法,遞歸下降算法,LR算法),語義分析,運行時環(huán)境,中間代碼,代碼生成,代碼優(yōu)化這些部分。其實現(xiàn)在很多編譯原理的教材都是按照85,86出版的那本龍書來安排教學內(nèi)容的,所以那本龍書的內(nèi)容格式幾乎成了現(xiàn)在編譯原理教材的定式,包括國內(nèi)的教材也是如此。一般來說,大學里面的本科教學是不可能把上面的所有部分都認真講完的,而是比較偏重于前面幾個部分。像代碼優(yōu)化那部分東西,就像個無底洞一樣,如果要認真講,就是單獨開一個學期的課也不可能講得清楚。所以,一般對于本科生,對詞法分析和語法分析掌握要求就相對要高一點了。
詞法分析相對來說比較簡單??赡苁窃~法分析程序本身實現(xiàn)起來很簡單吧,很多沒有學過編譯原理的人也同樣可以寫出各種各樣的詞法分析程序。不過編譯原理在講解詞法分析的時候,重點把正則表達式和自動機原理加了進來,然后以一種十分標準的方式來講解詞法分析程序的產(chǎn)生。這樣的做法道理很明顯,就是要讓詞法分析從程序上升到理論的地步。
語法分析部分就比較麻煩一點了?,F(xiàn)在一般有兩種語法分析算法,LL自頂向下算法和LR自底向上算法。LL算法還好說,到了LR算法的時候,困難就來了。很多自學編譯原理的都是遇到LR算法的理解成問題后就放棄了自學。其實這些東西都是只要大家理解就可以了,又不是像詞法分析那樣非得自己寫出來才算真正的會。像LR算法的語法分析器,一般都是用工具Yacc來生成,實踐中完全沒有比較自己來實現(xiàn)。對于LL算法中特殊的遞歸下降算法,因為其實踐十分簡單,那么就應該要求每個學生都能自己寫。當然,現(xiàn)在也有不少好的LL算法的語法分析器,不過要是換在非C平臺,比如Java,Delphi,你不能運用YACC工具了,那么你就只有自己來寫語法分析器。
等學到詞法分析和語法分析時候,你可能會出現(xiàn)這樣的疑問:詞法分析和語法分析到底有什么?就從編譯器的角度來講,編譯器需要把程序員寫的源程序轉(zhuǎn)換成一種方便處理的數(shù)據(jù)結(jié)構(gòu)(抽象語法樹或語法樹),那么這個轉(zhuǎn)換的過程就是通過詞法分析和語法分析的。其實詞法分析并非一開始就被列入編譯器的必備部分,只是我們?yōu)榱撕喕Z法分析的過程,就把詞法分析這種繁瑣的工作單獨提取出來,就成了現(xiàn)在的詞法分析部分。除了編譯器部分,在其它地方,詞法分析和語法分析也是有用的。比如我們在DOS,Unix,Linux下輸入命令的時候,程序如何分析你輸入的命令形式,這也是簡單的應用??傊?,這兩部分的工作就是把不規(guī)則的文本信息轉(zhuǎn)換成一種比較好分析好處理的數(shù)據(jù)結(jié)構(gòu)。那么為什么編譯原理的教程都最終把要分析的源分析轉(zhuǎn)換成樹這種數(shù)據(jù)結(jié)構(gòu)呢?數(shù)據(jù)結(jié)構(gòu)中有Stack,Line,List這么多數(shù)據(jù)結(jié)構(gòu),各自都有各自的特點。但是Tree這種結(jié)構(gòu)有很強的遞歸性,也就是說我們可以把Tree的任何結(jié)點Node提取出來后,它依舊是一顆完整的Tree。這一點符合我們現(xiàn)在編譯原理分析的形式語言,比如我們在函數(shù)里面使用函樹,循環(huán)中使用循環(huán),條件中使用條件等等,那么就可以很直觀地表示在Tree這種數(shù)據(jù)結(jié)構(gòu)上。同樣,我們在執(zhí)行形式語言的程序的時候也是如此的遞歸性。在編譯原理后面的代碼生成的部分,就會介紹一種堆棧式的中間代碼,我們可以根據(jù)分析出來的抽象語法樹,很容易,很機械地運用遞歸遍歷抽象語法樹就可以生成這種指令代碼。而這種代碼其實也被廣泛運用在其它的解釋型語言中。像現(xiàn)在流行的Java,.NET,其底層的字節(jié)碼bytecode,可以說就是這中基于堆棧的指令代碼的。
關于語義分析,語法制導翻譯,類型檢查等等部分,其實都是一種完善前面得到的抽象語法樹的過程。比如說,我們寫C語言程序的時候,都知道,如果把一個浮點數(shù)直接賦值給一個整數(shù),就會出現(xiàn)類型不匹配,那么C語言的編譯器是怎么知道的呢?就是通過這一步的類型檢查。像C++語言這中支持多態(tài)函數(shù)的語言,這部分要處理的問題就更多更復雜了。大部編譯原理的教材在這部分都是講解一些比較好的處理策略而已。因為新的問題總是在發(fā)生,舊的辦法不見得足夠解決。
本來說,作為一個編譯器,起作用的部分就是用戶輸入的源程序到最終的代碼生成。但是在講解最終代碼生成的時候,又不得不講解機器運行環(huán)境等內(nèi)容。因為如果你不知道機器是怎么執(zhí)行最終代碼的,那么你當然無法知道如何生成合適的最終代碼。這部分內(nèi)容我自我感覺其意義甚至超過了編譯原理本身。因為它會把一個計算機的程序的運行過程都通通排在你面前,你將來可能不會從事編譯器的開發(fā)工作,但是只要是和計算機軟件開發(fā)相關的領域,都會涉及到程序的執(zhí)行過程。運行時環(huán)境的講解會讓你更清楚一個計算機程序是怎么存儲,怎么裝載,怎么執(zhí)行的。關于部分的內(nèi)容,我強烈建議大家看看龍書上的講解,作者從最基本的存儲組織,存儲分配策略,非局部名字的訪問,參數(shù)傳遞,符號表到動態(tài)存儲分配(malloc,new)都作了十分詳細的說明。這些東西都是我們編寫平常程序的時候經(jīng)常要做的事情,但是我們卻少去探求其內(nèi)部是如何完成。
關于中間代碼生成,代碼生成,代碼優(yōu)化部分的內(nèi)容就實在不好說了。國內(nèi)很多教材到了這部分都會很簡單地走馬觀花講過去,學生聽了也只是作為了解,不知道如何運用。不過這部分內(nèi)容的東西如果要認真講,單獨開一學期的課程都講不完。在《編譯原理及實踐》的書上,對于這部分的講解就恰到好處。作者主要講解的還是一種以堆棧為基礎的指令代碼,十分通俗易懂,讓人看了后,很容易模仿,自己下來后就可以寫自己的代碼生成。當然,對于其它代碼生成技術,代碼優(yōu)化技術的講解就十分簡單了。如果要仔細研究代碼生成技術,其實另外還有本叫做《AdvanceCompilerDesginandImplement》,那本書現(xiàn)在由機械工業(yè)出版社引進的,十分厚重,而且是英文原版。不過這本書我沒有把它列為推薦書給大家,畢竟能把龍書的內(nèi)容搞清楚,在中國已經(jīng)就算很不錯的高手了,到那個時候再看這本《AdvanceCompilerDesginandImplement》也不遲。代碼優(yōu)化部分在大學本科教學中還是一個不太重要的部分,就是算是實踐過程中,相信大家也不太運用得到。畢竟,自己做的編譯器能正確生成執(zhí)行代碼已經(jīng)很不錯了,還談什么優(yōu)化呢?
編譯原理的課程畢竟還只是講解原理的課程,不是專門的編譯技術課程。這兩門課程是有很大的區(qū)別的。編譯技術更關注實際的編寫編譯器過程中運用到的技術,而原理的課
第一個編譯程序的出現(xiàn)是在20世紀50年代早期,很難講出確切的時間,因為當初大量的實驗和實現(xiàn)工作是由不同的小組獨立完成的,多數(shù)早期的編譯工作是將算 術公式翻譯成機器代碼。用現(xiàn)在的標準來衡量,當時的編譯程序能完成的工作十分初步,如只允許簡單的單目運算,數(shù)據(jù)元素的命名方式有很多限制。然而它們奠定 了對高級語言編譯系統(tǒng)的研究和開發(fā)的基礎。20世紀50年代中期出現(xiàn)了FORTRAN等一批高級語言,相應的一批編譯系統(tǒng)開發(fā)成功。隨著編譯技術的發(fā)展和 社會對編譯程序需求的不斷增長,20世紀50年代末有人開始研究編譯程序的自動生成工具,提出并研制編譯程序的編譯程序。它的功能是以任一語言的詞法規(guī) 則、語法規(guī)則和語義解釋出發(fā),自動產(chǎn)生該語言的編譯程序。目前很多自動生成工具已廣泛使用,如詞法分析程序的生成系統(tǒng)LEX,語法分析程序的生成系統(tǒng) YACC等。20世紀60年代起,不斷有人使用自展技術來構(gòu)造編譯程序。自展的主要特征是用被編譯的語言來書寫該語言自身的編譯程序。1971 年,PASCAL的編譯程序用自展技術生成后,其影響就越來越大。
隨著并行技術和并行語言的發(fā)展,處理并行語言的并行編譯技術,將串行程序轉(zhuǎn)換成并行程序的自動并行編譯技術也正在深入研究之中。另外嵌入式應用迅速增 長的需求,推動了交叉編譯技術的發(fā)展.還有系統(tǒng)芯片設計方法和關鍵EDA技術的研究,也帶動了專用語言VHDL等及其編譯技術的不斷深化。我國編譯器研發(fā)工作起步并不算晚,早在60年代初期,董韞美院士和楊芙清院士就分別在中科院和北大領導研究組開發(fā)編譯器,那時面向的高級語言是ALGOL和FORTRAN,目標機是國產(chǎn)機。
在改革開放前,由于國家需要,中科院、國防科大、江南計算所、北大等單位一直在研制國產(chǎn)計算機,包括大型機和高性能計算機(如向量機、并行機),相應的也在研制高級語言編譯器。中科院計算所以董韞美院士領導的研究組先后開發(fā)了119機、109機的類 ALGOL語言編譯器BCY。國防科大開發(fā)了向量編譯器和向量識別器。
70年代中科院計算所張兆慶教授研究組(以后稱ACTGroup)開始在國產(chǎn)機上研制FORTRAN語言編譯器,先后參與了眾多的院級和國家級科研攻關項目,主持開發(fā)了013,757,KJ8920等國產(chǎn)大型機系統(tǒng)中的FORTRAN語言編譯器,所研制的編譯器支持了數(shù)百萬行應用軟件的運行。
90年代以來ACTGroup承擔科學院重大項目,國家攻關項目,863項目,以及國際合作項目,先后開發(fā)了共享內(nèi)存多處理機的并行識別器,分布式內(nèi)存多處理機的并行識別器,SIMD芯片和VLIW芯片的并行優(yōu)化C編譯器。將編譯技術與圖形學結(jié)合,ACTGroup還推出了集成化、可視化的并行編程環(huán)境。ACTGroup在先進編譯技術和并行編程環(huán)境方面的研究工作獲國內(nèi)外專家高度評價,國際著名學者評價此研究組居編譯領域的世界先進行列。
第二篇:編譯技術發(fā)展綜述
編譯技術發(fā)展綜述
計算機科學與軟件學院
計算機1302 蔡元昊 1311611517
引言:編譯程序構(gòu)造的原理和技術一直屬于最近公布的核心知識領域,已成為計算機科學必備的專業(yè)基礎知識。而且編譯程序的構(gòu)造是計算機科學中一個非常成功的分支,也是最早獲得成功的分支之一,他所建立的理論和技術方法值得人們深入研究和學習。
摘要:編譯程序是計算機的核心系統(tǒng)之一,是掌握計算機理論和軟件技術的關鍵知識,編譯原理合計數(shù)為人們理解計算機語言。創(chuàng)造優(yōu)秀的軟件奠定了理論基礎。擴展了視野,開辟了捷徑。編譯原理和技術可以應用在其他諸如軟件建模語言、硬件描述語言。腳本語言等的翻譯方面:在集成化軟件開發(fā)環(huán)境以及軟件安全一直有著廣泛的應用。而且,編譯原理的研究有力的推動了計算機科學、計算機工程、軟件開發(fā)以及人機工程的研究和發(fā)展。編譯原理是計算機專業(yè)的一門重要專業(yè)課,旨在介紹編譯程序構(gòu)造的一般原理和基本方法。內(nèi)容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優(yōu)化和目標代碼生成。
一、早期編譯技術的發(fā)展
編譯器是將一種語言翻譯為另一種語言的計算機程序。編譯器將源程序(source language)編寫的程序作為輸入,而產(chǎn)生用目標語言(target language)編寫的等價程序。通常地,源程序為高級語言(high-level language),如C或C + +,而目標語言則是目標機器的目標代碼(object code,有時也稱作機器代碼(machine code)),也就是寫在計算機機器指令中的用于運行的代碼。這一過程可以表示為: 源程序→編譯器 →目標程序
在20世紀40年代,由于馮·諾伊曼在存儲-程序計算機方面的先鋒作用,編寫一串代碼或程序已成必要,這樣計算機就可以執(zhí)行所需的計算。開始時,這些程序都是用機器語言(machine language)編寫的。機器語言就是表示機器實際操作的數(shù)字代碼,例如: C7 06 0000 0002 表示在IBM PC 上使用的Intel 8x86處理器將數(shù)字2移至地址0 0 0 0(16進制)的指令。
但編寫這樣的代碼是十分費時和乏味的,這種代碼形式很快就被匯編語言(assembly language)代替了。在匯編語言中,都是以符號形式給出指令和存儲地址的。例如,匯編語言指令 MOV X,2 就與前面的機器指令等價(假設符號存儲地址X是0 0 0 0)。匯編程序(assembler)將匯編語言的符號代碼和存儲地址翻譯成與機器語言相對應的數(shù)字代碼。
匯編語言大大提高了編程的速度和準確度,人們至今仍在使用著它,在編碼需要極快的速度和極高的簡潔程度時尤為如此。但是,匯編語言也有許多缺點:編寫起來也不容易,閱讀和理解很難;而且匯編語言的編寫嚴格依賴于特定的機器,所以為一臺計算機編寫的代碼在應用于另一臺計算機時必須完全重寫。發(fā)展編程技術的下一個重要步驟就是以一個更類似于數(shù)學定義或自然語言的簡潔形式來編寫程序的操作,它應與任何機器都無關,而且也可由一個程序翻譯為可執(zhí)行的代碼。例如,前面的匯編語言代碼可以寫成一個簡潔的與機器無關的形式 x = 2
第一個編譯程序的出現(xiàn)是在20世紀50年代早期,多數(shù)早期的編譯工作是將算術公式翻譯成機器代碼。用現(xiàn)在的標準來衡量,當時的編譯程序能完成的工作十分初步,如只允許簡單的單目運算,數(shù)據(jù)元素的命名方式有很多限制。然而它們奠定了對高級語言編譯系統(tǒng)的研究和開發(fā)的基礎。20世紀50年代中期出現(xiàn)了FORTRAN等一批高級語言,相應的一批編譯系統(tǒng)開發(fā)成功。隨著編譯技術的發(fā)展和社會對編譯程序需求的不斷增長,20世紀50年代末有人開始研究編譯程序的自動生成工具,提出并研制編譯程序的編譯程序。它的功能是以任一語言的詞法規(guī)則、語法規(guī)則和語義解釋出發(fā),自動產(chǎn)生該語言的編譯程序。目前很多自動生成工具已廣泛使用,如詞法分析程序的生成系統(tǒng)LEX,語法分析程序的生成系統(tǒng)YACC等。20世紀60年代起,不斷有人使用自展技術來構(gòu)造編譯程序。自展的主要特征是用被編譯的語言來書寫該語言自身的編譯程序。1971年,PASCAL的編譯程序用自展技術生成后,其影響就越來越大。隨著并行技術和并行語言的發(fā)展,處理并行語言的并行編譯技術,將串行程序轉(zhuǎn)換成并行程序的自動并行編譯技術也正在深入研究之中。另外嵌入式應用迅速增長的需求,推動了交叉編譯技術的發(fā)展.還有系統(tǒng)芯片設計方法和關鍵EDA技術的研究,也帶動了專用語言VHDL等及其編譯技術的不斷深化。在70年代后期和80年代早期,大量的項目都貫注于編譯器其它部分的生成自動化,這其中就包括了代碼生成。這些嘗試并未取得多少成功,這大概是因為操作太復雜而人們又對其不甚了解。編譯器設計最近的發(fā)展包括:首先,編譯器包括了更加復雜算法的應用程序它用于推斷或簡化程序中的信息。其次,編譯器已越來越成為基于窗口的交互開發(fā)環(huán)境(Interactive Development Environment,IDE)的一部分,它包括了編輯器、連接程序、調(diào)試程序以及項目管理程序。
在九十年代,作為GNU項目或其它開放源代碼項目標一部分,許多免費編譯器和編譯器開發(fā)工具被開發(fā)出來。隨著芯片研制,國內(nèi)還有若干單位也在開展基于GCC生成面向特定芯片的編譯器工作。編譯器包括了更加復雜算法的應用程序它用于推斷或簡化程序中的信息;這又與更為復雜的程序設計語言的發(fā)展結(jié)合在一起。其中典型的有用于函數(shù)語言編譯的Hindley-Milner類型檢查的統(tǒng)一算法。其次,編譯器已越來越成為基于窗口的交互開發(fā)環(huán)境(Interactive Development Environment,IDE)的一部分,它包括了編輯器、連接程序、調(diào)試程序以及項目管理程序。這樣的IDE標準并沒有多少,但是對標準的窗口環(huán)境進行開發(fā)已成為方向。另一方面,盡管近年來在編譯原理領域進行了大量的研究,但是基本的編譯器設計原理在近20年中都沒有多大的改變。
大約在1999年,SGI公布了他們的一個工業(yè)化的并行化優(yōu)化編譯器Pro64的源代碼,后被全世界多個編譯器研究小組用來做研究平臺,并命名為Open64。Open64的設計結(jié)構(gòu)好,分析優(yōu)化全面,是編譯器高級研究的理想平臺。3.編譯器的種類
編譯器可以生成用來在與編譯器本身所在的計算機和操作系統(tǒng)(平臺)相同的環(huán)境下運行的目標代碼,這種編譯器又叫做“本地”編譯器。另外,編譯器也可以生成用來在其它平臺上運行的目標代碼,這種編譯器又叫做交叉編譯器。交叉編譯器在生成新的硬件平臺時非常有用?!霸创a到源碼編譯器”是指用一種高階語言作為輸入,輸出也是高階語言的編譯器。例如: 自動并行化編譯器經(jīng)常采用一種高階語言作為輸入,轉(zhuǎn)換其中的代碼,并用并行代碼注釋對它進行注釋(如OpenMP)或者用語言構(gòu)造進行注釋(如FORTRAN的DOALL指令)。二.編譯工具
1.C語言對應的編譯器——VS2008 C語言對應的編譯器可以用VS2003、VS2005、VS2008、TC等,以最新版本的Visual Studio 2008為例
Microsoft? Visual Studio? 2008 使開發(fā)人員能夠快速創(chuàng)建高質(zhì)量、用戶體驗豐富而又緊密聯(lián)系的應用程序,充分展示了 Microsoft 開發(fā)智能客戶端應用程序的構(gòu)想。借助 Visual Studio 2008,采集和分析信息將變得更為簡單便捷,業(yè)務決策也會因此變得更為有效。任何規(guī)模的組織都可以使用 Visual Studio 2008 快速創(chuàng)建能夠利用 Windows Vista? 和 2007 Office system 的更安全、更易于管理并且更可靠的應用程序。
Visual Studio 2008 在三個方面為開發(fā)人員提供了關鍵改進: 1.快速的應用程序開發(fā) 2.高效的團隊協(xié)作 3.突破性的用戶體驗
Visual Studio 2008 提供了高級開發(fā)工具、調(diào)試功能、數(shù)據(jù)庫功能和創(chuàng)新功能,幫助在各種平臺上快速創(chuàng)建當前最先進的應用程序。2005 年,微軟發(fā)布了 Visual Studio 2005。.NET 字眼從各種語言的名字中被抹去,但是這個版本的 Visual Studio 仍然還是面向.NET 框架的(版本2.0)。它同時也能開發(fā)跨平臺的應用程序,如開發(fā)使用微軟操作系統(tǒng)的手機的程序等??傮w來說是一個非常龐大的軟件,甚至包含代碼測試功能。
Visual Studio 9 目前可以確定的是支持建立于 DHTML 基礎上的 AJax 技術,這種微軟在
Visual InterDev 時代提出的基于異步的客戶端動態(tài)網(wǎng)頁技術在當年并沒有像微軟預期中的那么流行起來,反而隨著 GMail 等應用而東山再起,漸漸成為主流網(wǎng)絡應用之一。同時 Visual Studio 9 會強化對于數(shù)據(jù)庫的支持以及微軟新的基于工作流(Workflow)的編程模型。預計為了保持與 Office 系列的統(tǒng)一,Visual Studio 9 的名稱為 Visual Studio 2008。
2.C++語言對應的編譯器——Microsoft Visual C++ 6.0 Visual C++是一個集成環(huán)境的C++編譯器,功能很多。還有 Borland C++ Buider C++編譯器,比較小巧實用。C++ Buider 也是C++編譯器,是另一個公司的產(chǎn)品。
Microsoft Visual C++ 6.0功能特點:
幾乎所有世界級的軟件,從業(yè)界領先的Web瀏覽器到面向任務的企業(yè)應用,都是使用Microsoft Visual C++開發(fā)系統(tǒng)來開發(fā)的。要用C++來開發(fā)Windows和Web上的高性能應用程序,Visual C++是效率最高的首選工具。Visual C++ 6.0在不犧牲靈活性、性能和控制力度的同時,給C++帶來更高水平的生產(chǎn)效率。除了IntelliSense Technology(智能感應技術)和Edit and Continue(即編即調(diào))等顯著縮短開發(fā)時間的新特性外,Visual C++ 6.0還為Web開發(fā)和企業(yè)開發(fā)提供更良好的支持。Microsoft Visual C++ 6.0專業(yè)版的健壯的構(gòu)件開發(fā)、強大的數(shù)據(jù)庫工具和完備的Internet支持將使您從中受益,創(chuàng)建出策略性的商務解決方案來。
有了這些顯著縮短開發(fā)時間的新特性,您可以享受到一種全新水平的工作效率。編碼所費的時間減少了,編譯所費的時間減少了,調(diào)試所費的時間也減少了,一句話,創(chuàng)建應用程序所費的時間減少了,同時還可以享受到更多的構(gòu)件重用。獲得令人目眩的速度。本已是速度的標準的Visual C++如今更上一層樓,Visual C++ 6.0在多處進行了最優(yōu)的調(diào)整,這樣的結(jié)果是:開發(fā)者可以創(chuàng)建出可能范圍內(nèi)的最小最快的構(gòu)件和應用。3.JAVA語言對應的編譯器——eclipse JCreater、JBuilder、eclipse、myeclipse、netbean這幾個是主流,eclipse和myeclipse(eclipse的擴展功能更多)是主流中的主流。
JBudler Eclipse 屬于IDE,是集成開發(fā)環(huán)境(IDE)!IDE是集成了編譯,檢錯,自動查找錯誤,深度反檢查功能的輔助開發(fā)工具。就是說,只要屬于java的IDE,都會把sun的編譯器集成到它里面來。而JBudler與Eclipse 等這些開發(fā)工具更多的是體現(xiàn)在對不同層面java開發(fā)提供了不同的強大功能。比如:MyEclipse強勢在web開發(fā)的便捷。JBudler對GUI更強大。eclipse是一個非常著名的集成開發(fā)工具,其自身功能強大而易用。更為重要的是,軟件本
身是一個開放源代碼的項目,由一個國際組織進行管理,很多大公司都是這個組織的成員,包括IBM和Borland等著名的軟件開發(fā)商,事實上,eclipse本來是IBM開發(fā)的工具,是由IBM將其貢獻給開放源代碼社區(qū)的。正因為如此,任何人都可以免費獲得eclipse開發(fā)環(huán)境,而不需要支付任何費用。
eclipse的另一個非常重要的特點是其提供了非常靈活的擴展能力,事實上,eclipse可以被稱作一個開發(fā)平臺,它提供了豐富的接口可以擴展其本身。eclipse本身是使用Java開發(fā)的,開發(fā)人員可以簡單的按照其規(guī)范開發(fā)eclipse的插件,就可以在eclipse平臺上增加更多的功能。大量的開發(fā)人員基于eclipse開發(fā)了插件,比如C++開發(fā)、UML設計、J2EE開發(fā)等都有相應的插件。事實上,包括IBM在內(nèi),很多大的軟件公司基于eclipse開發(fā)了其自己的軟件產(chǎn)品,這無疑得益于eclipse良好的結(jié)構(gòu)。
三、編譯原理的近期發(fā)展 隨著大規(guī)模集成電路、網(wǎng)絡通訊和其它數(shù)字信息技術的迅速發(fā)展,目前嵌入式系統(tǒng)己經(jīng)廣泛地滲透到科學研究、工程設計、軍事技術、各類產(chǎn)業(yè)和商業(yè)文化藝術等各方面,在人們?nèi)粘I钪械姆椒矫婷娴教幨乔度胧较到y(tǒng)設備的身影,如手機、PDA、智能家電以及汽車電子等。隨著國內(nèi)外各種嵌入式產(chǎn)品的進一步開發(fā)和推廣,嵌入式技術和人們的生活結(jié)合越來越緊密,人們?nèi)粘5墓ぷ?、學習和生活方式終將不可避免地逐步改變,嵌入式產(chǎn)品正在逐步形成時尚,在當今的信息社會中扮演越來越重要的角色。
嵌入式系統(tǒng)一般指的是非PC系統(tǒng),它包括完全植入嵌入式硬件內(nèi)部的為特定應用設計的專用計算機系統(tǒng),以及相應的硬件。嵌入式系統(tǒng)以應用為中心的,它的軟硬件可以根據(jù)需求進行裁減,以此來適應目標系統(tǒng)對外形尺寸、功能、可靠性、成本、功耗、外部接口等方面的嚴格要求。簡單地說,嵌入式系統(tǒng)集操作系統(tǒng)、應用軟件與硬件于一體,具有軟件代碼小、高度自動化、響應速度快等特點,因此特別適合要求實時和多任務的應用。
由于嵌入式系統(tǒng)資源有限,一般無法提供編譯、匯編、鏈接等工具,同時也很難提供高級調(diào)試功能,因此嵌入式系統(tǒng)的應用軟件一般不能直接在嵌入式系統(tǒng)平臺上進行開發(fā),而需要在交叉編譯環(huán)境中開發(fā)。也就是說通常是在另外的開發(fā)平臺上開發(fā)的,一般這種開發(fā)平臺由通用的計算機系統(tǒng)和專用的嵌入式系統(tǒng)軟件開發(fā)工具組成。
編譯實現(xiàn)方式的發(fā)展主要分一下五類:手工、機器語言、匯編、系統(tǒng)程序設計語言、自動構(gòu)造工具lex yacc gcc。推動編譯技術發(fā)展的因素主要包括:語言范型(計算模式)、計算機體系結(jié)構(gòu)語言范型主要包括:命令式(imperative language)、應用式(applicative)、基于規(guī)則的(rule-based)、面向?qū)ο蟮模╫bject-oriented)、并行計算(parallel computing)。體系結(jié)構(gòu)主要包括:萬諾曼機體系結(jié)構(gòu)、并行體系結(jié)構(gòu)、嵌入系統(tǒng)。編譯程序執(zhí)行環(huán)境主要包括:批處理、交互環(huán)境、嵌入系統(tǒng)環(huán)境、并行編譯技術、交叉編譯。編譯程序在一個機器(宿主機)上運行,產(chǎn)生另一個機器(目標機)的匯編語言。嵌入式系統(tǒng)中的應用程序正是借助這樣的編譯程序生成。目標處理器MIPSX是MIPS系列芯片的種,屬于RISC體系結(jié)構(gòu),來源于斯坦福大學的MIPS計劃。由于該系列CPU不是采用加州大學伯克利分校的RISC窗口技術而是采用消除流水線各級互鎖的微處理器MIPS(MicroprocessorWithout Interlocking Pipeline Stage)技術,因此而得名。MIPS是將IBM公司對優(yōu)化編譯程序的研究和加州大學伯克利分校的大規(guī)模集成電路的思想結(jié)合起來的產(chǎn)品。
由于RISC指令集的簡單和整齊,為了達到更好地利用計算機的性能,MIPS系列芯片中很好地應用了流水線策略。流水線是現(xiàn)代各類微處理器都采用的指令執(zhí)行技巧,即將若干條指令的取指、譯碼和執(zhí)行過程部分重疊在流水線中同時執(zhí)行。以前在CISC計算機中,由于指令多而復雜,處理每條指令的所需時間不固定,當后面指令需要前條指令的結(jié)果時,往往造成指令互鎖,因此無法實現(xiàn)流水 線。而斯坦福大學的MIPS計劃就是在編譯的過程中,利用編譯程序優(yōu)化處理器的流水線以求提高處理器流水線的效率。由于采用了硬件連線控制來執(zhí)行數(shù)目不多的簡單指令,而且還能重組軟件流水線,這樣就減少了硬件復雜性。“編譯原理”課程分析編譯原理課程一般利用常用軟件如C,Pascal等來構(gòu)建編譯的各部分程序,編譯原理的構(gòu)成包括詞法分析,語法分析、語義分析、中間代碼生成、代碼優(yōu)化和目標代碼生成等。編譯原理課程的學習可以對程序設計語言的設計和實現(xiàn)有深刻的理解,還可以有助于快速理解定位和解決在程序編譯、測試與運行中出現(xiàn)的問題。編譯程序規(guī)模大。由于編譯原理是一個極其復雜的系統(tǒng),程序規(guī)模大,將它肢解開來一部分一部分地研究。理論知識抽象。要完整地構(gòu)造一個編譯系統(tǒng)并不是一件容易的事情,它不僅需要具有較完備的軟件知識,并需要掌握現(xiàn)有的軟件工具的使用,而且更重要的是要有豐富的實踐經(jīng)驗,了解硬件系統(tǒng)結(jié)構(gòu)和操作系統(tǒng)的功能。算法的理解和實現(xiàn)。編譯原理這門課包含許多理論知識和算法,這些理論的學習和理解都存在著一定的難度。其中理論知識包括:詞法分析器的構(gòu)造,語法中各種分析器(LR,LL,SLR,LALR等)實現(xiàn)與完成。
在編譯原理的不斷發(fā)展和完善過程中,一本本課程教材接踵而至,其中不乏非常優(yōu)秀的“名書”。編譯領域里程碑式的經(jīng)典著作——龍書,20年后終于出新版!這是一個延綿30年的故事,這是一部關于龍書的傳奇!最新版本,增添三章節(jié)內(nèi)容,使龍書地位更權(quán)威!1977年,Alfred V.Aho 和Jeffrey D.Ullman 出版《Principles of Compiler Design 》,封面是一名騎士和一只恐龍,因此第一次被人稱為龍書,但因為那條龍是綠色的,所以稱為綠龍書。過了9年,1986年,原來的兩位作者加上Ravi Sethi, 升級了前一本書,書名改為《Compilers: Principles, Techniques and Tools》,封面依然沿用騎士和恐龍,那頭龍是紅色的,因此被叫做龍書二或者是紅龍書。又過了一個9年,又一個9年,編譯領域的巨無霸--龍書始終都沒有升級。終于在2006年年底,龍書升級了。作者又增加了Monica S.Lam,名字沿用《Compilers: Principles, Techniques and Tools》,封面依然保持恐龍和武士的設計,但這次的龍是紫色,因此叫做紫龍書。
本書全面、深入地探討了編譯器設計方面的重要主題,包括詞法分析、語法分析、語法制導定義和語法制導翻譯、運行時刻環(huán)境、目標代碼生成、代碼優(yōu)化技術、并行性檢測以及過程間分析技術,并在相關章節(jié)中給出大量的實例。與上一版相比,本書進行了全面的修訂,涵蓋了編譯器開發(fā)方面的最新進展。每章中都提供了大量的系統(tǒng)及參考文獻。本書是編譯原理課程方面的經(jīng)典教材,內(nèi)容豐富,適合作為高等院校計算機及相關專業(yè)本科生及研究生的編譯原理課程的教材,也是廣大技術人員的極佳參考讀物。Alfred V.Aho是哥倫比亞大學的Lawrence Gussman計算機科學教授。Aho教授多次獲獎,其中包括哥倫比亞校友會頒發(fā)的2003Great Teacher獎和電子與電器工程師協(xié)會的Jonh von Neumann獎章。他是美國國家工程院院士,以及ACM和IEEE的會員。Monica S.Lam是斯坦福大學的計算機科學教授。她曾經(jīng)是Tensilica 的首席科學家,并且是moka5的創(chuàng)建者和首席執(zhí)行官。她領導了 SUIF項目。該項目開發(fā)了最流行的研究性編譯器之一,并首創(chuàng)了很多在工業(yè)界得到應用的編譯技術。Jeffery D.Ullman是Gradiance公司的首席執(zhí)行官和Standford大學的StanfordcW.Ascherman計算機科學(名譽退休)教授他的研究興趣包括數(shù)據(jù)庫理論、數(shù)據(jù)庫集成、數(shù)據(jù)挖掘和利用信息基礎軟件的教育技術.他是美國國家工程院的院士,ACM的會員,并且是 Karlstrom獎和Knuth獎的獲得者。
我對編譯技術發(fā)展的總結(jié):
編譯原理是門實用的科學性的學科,當今世界發(fā)展離不開編譯的進步,正是考慮到其重要性,中國乃至世界都應該注重這方面人才的培養(yǎng),發(fā)展并不是一帆風順,尤其是中國的核心技術缺乏,創(chuàng)新能力不足,不像美國,日本,甚至印度都很注重知識產(chǎn)權(quán)的重要性,都很注重自主創(chuàng)新的重要性,所以今后作為一個中國人,作為一個開發(fā)者應該把國家的利益放在第一位,把自主創(chuàng)新放在第一位,希望中國編譯技術的發(fā)展越來越好!
第三篇:無線光通信技術發(fā)展及其應用
無線光通信技術發(fā)展及其應用
一、無線光通信技術發(fā)展歷史
光在空氣中直接傳輸?shù)耐ㄐ欧绞椒Q之為無線光通信。也就是利用激光束作為信道在空間(近地或外太空)中直接進行語音、數(shù)據(jù)、圖像等信息雙向傳送的一種技術。又稱為“自由空間光通信”(Freespace opticalunicanon)或虛擬光纖(VirtualFiler)。無線光通信的出現(xiàn)比無線電通信要早得多。在兩千七百年前的周幽王時代,就有了利用烽火臺通信的方法。這是人類最早利用無線光通信的典型方式。后來,雖然人類社會的文明程度和科學技術得到了很大的提高,但是簡單的利用光傳遞信息的方式仍然在廣泛使用,例如紅黃綠交通信號燈、旗語等。不論是烽火臺,還是交通紅綠燈、旗語,它們都是利用大氣來傳播可見光,由人眼來接收。這些都是非常原始的無線光通信方式。其后許多年,無線光通信幾乎沒有什么太大的發(fā)展。
盡管如此,人們?nèi)匀粵]有對無線光通信失去興致。以發(fā)明電話而著名的貝爾,在1876年發(fā)明了電話之后,就想到利用光來通電話。1880年,他利用太陽光作光源,大氣為傳輸媒質(zhì),用硒晶體作為光接收器件,成功地進行了光電話的實驗,通話距離最遠達到了213m。1881年,貝爾宣讀了一篇題為《關于利用光線進行聲音的產(chǎn)生與復制》的論文,報導了他的光電話裝置。在貝爾本人看來:在他的所有發(fā)明中,光電話是最偉大的發(fā)明。這被認為是近代無線光通信的開始。1930年至1932年間,日本在東京的日本電報公司與每日新聞社之問實現(xiàn)了3 6kn,的無線光通信,但在大霧大雨天氣里效果很差。第二次世界大戰(zhàn)期間,無線光電話發(fā)展成為紅外線電話,因為紅外線肉眼看不見,更有利于信息保密。
利用光在大氣中傳送信息方便簡單,所以人們開始研究的光通信都是這種方式。但是光在大氣中的傳送要受到氣象條件的很大限制,比如在遇到下雨、下雪、陰天、下霧等情況,信號傳輸受到很大阻礙。此外,太陽光、燈光等普通的可見光源,都不適合作為通信的光源,因為從通信技術上看,這些光都是帶有“噪聲”的光。也就是說,這些光的頻率不穩(wěn)定、不單一,光的性質(zhì)也很復雜。因此,要用光來通信,必須找到高強度的、可靠的光源。在此后的幾十年中,由于這項關鍵技術沒有得到解決,無線光通信就一直裹足不前。也正因此,貝爾的光話始終沒有走上實用化的階段。
1960年7月8日,美國科學家梅曼發(fā)明了紅寶石激光器,從此人們便可獲得性質(zhì)與電磁波相似而頻率穩(wěn)定的光源。激光器的發(fā)明對無線光通信的研究工作產(chǎn)生了重大的影響。研究現(xiàn)代化無線光通信的時代也從此開始。20世紀60年代后,隨著人們對通信的要求變得越來越強烈,無線光通信獲得了突飛猛進的發(fā)展。許多實驗室用氫-氖氣體激光器做了傳送電視信號和20路電話的實驗。也有的公司制成了語言信道試驗性通信系統(tǒng),最大傳輸距離為600米。到70年代初無線激光通信己進入應用發(fā)展階段。然而1970年半導體激光器和低損耗光纖這兩項關鍵技術的重大突破,使光纖通信開始從理想變成可能,這立即引起了各國電信科技人員的重視,他們競相進行研究和實驗。1977年,世界上第一條光纖通信系統(tǒng)在美國芝加哥市投入商用,速率為45Mb/s。這也同時標志著無線光通信的研發(fā)開始轉(zhuǎn)向外太空光通信,近地的無線光通信工作幾乎停滯。20世紀90年代后期,隨著全光接入網(wǎng)的發(fā)展,對固定無線應用的關注和對高速率的要求,無線光通信技術因其具有獨到的優(yōu)勢,在固定無線寬帶接人技術中,能為寬帶接人的快速部署提供一種靈活的解決方案,又得到了極大的關注。其應用范圍己從軍用和航天逐漸邁人民用領域,技術也在得以逐步完善。
二、基本工作原理
1880年,貝爾的光電話用弧光燈或者太陽光作為光源,光束通過透鏡聚焦在話筒的震動片上。當人對著話筒講話時,震動片隨著話音震動而使反射光的強弱隨著話音的強弱作相應的變化,從而使話音信息調(diào)制在光波上。在接收端,裝有一個拋物面接收鏡,它把經(jīng)過大氣傳送過來的載有話音信息的光波反射到硅光電池上,硅光電池將光能轉(zhuǎn)換成電流。電流送到聽筒,就可以聽到從發(fā)送端送過來的聲音了。這是無線光通信的基本工作原理?,F(xiàn)代無線光通信設備的每一端分別包括專用光學望遠鏡、激光收發(fā)器、線路接口、電源、機械支架等部分組成。一些廠商的設備還包括伺服機構(gòu)、監(jiān)控裝置、微波備份及遠程管理軟件等部分。
激光收發(fā)器的光源主要采用LD和LED,其中的LD多采用鋁砷化鉀二極管、DFB,接收器主要采用PIN或APD。
三、技術優(yōu)勢與劣勢
1、技術優(yōu)勢 相對于常用的數(shù)字微波、銅纜數(shù)字用戶線、光纖等其他幾種接入方式,無線光通信主要優(yōu)勢有:①良好的安全保密性,由于激光的高指向性使它的發(fā)射光束極窄,方向性很好。通常激光光束的發(fā)散角都在毫弧度,甚至微弧度數(shù)量級,因此具有數(shù)據(jù)傳遞極高的保密性。②無微波頻段的許可證,因為無線光通信的工作頻段在350THz,設備間無射頻信號干擾前無需申請頻率使用許可證。③運營成本相對低廉,由于無須進行昂貴的管道工程鋪設和維護,使得其造價約為光纖通信工程的五分之一。④架設迅速無線光通信架設、組網(wǎng)速度快,只須在通信節(jié)點上進行設備安裝,工程建設以小時或天為計量單位,尤其適合作為光纖通信的應急故障后備及臨時構(gòu)造大容量的通信鏈路。重新撤換部署也很方便。⑤透明的傳輸協(xié)議對于任何傳輸協(xié)議均可容易的迭加,電路和數(shù)據(jù)業(yè)務都可透明傳輸。⑥設備尺寸小,由于光波的波長短,在同樣功能情況下,光收發(fā)天線的尺寸比微波、毫米波通信天線尺寸要小許多,同時功耗小,體積小,重最輕。⑦信息容量大,光波作為信息載體可輕易傳輸高達10Gb/s的數(shù)據(jù)。目前已經(jīng)商用無線激光設備,最高速率已達2 5Gb/s。實驗室里最高傳輸速率已達160Gb/s。
2、技術劣勢
當然,無線光通信也有其固有的劣勢:①天氣影響通信質(zhì)量天氣因素尤其是大霧、沙塵暴等所引起的光的色散、漫反射將極大影響光通信的質(zhì)量。②通信距離受限目前用于近地的民用無線光通信的設備所能達到的距離受人眼安全的發(fā)射功率、成本、數(shù)據(jù)速率、天氣條件等的限制,一般為100m-5kmm,延長傳輸距離也可以通過建立中繼站的方法。③只能在視距范圍內(nèi)建立通信鏈路兩個通信節(jié)點之間視距范圍內(nèi)必須無遮擋。對于中間存在障礙物而不可直視的兩點之間的傳輸,可以通過建立一個中繼站實現(xiàn)連接。④安裝點的震動影響樓頂搖晃、振動可能會影響兩個節(jié)點之間的激光對準,使通信質(zhì)量下降甚至暫時中斷。⑤意外因素可能使通信鏈路中斷如飛鳥等障礙物經(jīng)過鏈路空問,通信可能會瞬間中斷。
總之,由于無線光通信設備固有的特點,在眾多接入方式中具有比較明顯的優(yōu)勢。
四、應用領域
與傳統(tǒng)的租用線路比較,無線光通信綜合了光纖通信與微波通信的優(yōu)點,根據(jù)其最大優(yōu)勢(寬帶寬)與最大劣勢(短距離),定位在城域接入網(wǎng)、交換機和移動基站等設備的連接、閉路監(jiān)視系統(tǒng)、廣播電視信號的單、雙工的傳輸中使用。可以很靈活的接人數(shù)據(jù)、話音、視頻業(yè)務。其益處在于長期費用的節(jié)約和對數(shù)據(jù)吞吐能力的增長。目前的主要應用場合包括:①對于特殊要求的線路進行冗余備份以及應急時鏈路和意外恢復:在突發(fā)的自然或人為意外災害中,原有通信線路被破壞,難以立即恢復時,或者在一些特殊地方發(fā)生突發(fā)事件,需要應急通信,采用無線光通信進行快速的部署。②提供室內(nèi)外、臨近局域網(wǎng)之間的互連互通:當分布在兩座樓宇之間的辦公室需要建立一條企業(yè)內(nèi)部通信鏈路,受價格、帶寬、線路資源等因素和其他通信方式不能較好地解決時,采用無線光通信就可快速解決。③解決綜合業(yè)務網(wǎng)(FSN)接入的“最后一公里”:對智能小區(qū)的寬帶接入,大企業(yè)Intmnet的互連,校園網(wǎng)的互連,大客戶的寬帶接入等提供一種快速靈活的方案,可提供2Mb/s~2.5Gb/s的帶寬。④在不具備接入條件或帶寬不足時提供高效的接入方案:在通信鏈路跨越高速公路、鐵路、河流、峽谷、海灣或擁擠的城區(qū)時,由于地理條件的限制無法敷設光纖線路時,采用無線光通信可以有效解決。⑤用于移動通信蜂窩網(wǎng)基站與交換中心的互聯(lián)。⑥用于一些大型集會如運動會、展覽會、慶祝會等需要快速建立一些臨時鏈路用于現(xiàn)場通信的場合。
五、結(jié)束語
無線光通信填補了受頻率資源許可、價格、帶寬等限制的無線通信方式與受地形、建網(wǎng)時間等特殊限制的光纖通信方式之間的空白。在一些情況下可以解決其他方式無法解決的問題??梢造`活、快速地以較小的投資建立寬帶通信鏈路。因此,在調(diào)查和了解使用過程中的不同條件和要求如傳輸?shù)木嚯x、速率、誤碼率、可通率以及當?shù)氐镍B群和氣象條件如降雨、雪、霧、沙塵的天數(shù)及程度等情況下,可以充分考慮利用無線光通信的方式組阿,迅速建立一個有效覆蓋且能夠為用戶提供端到端的綜合接入服務能力的寬帶接入網(wǎng)絡。
第四篇:淺析脈沖電子圍欄技術發(fā)展及應用
淺析脈沖電子圍欄技術發(fā)展及應用
前言》
脈沖電子圍欄作為最主流應用的一種實現(xiàn)公共安全的新型高科技智能周界報警產(chǎn)品,它與傳統(tǒng)的紅外、微波、靜電感應等周界安防系統(tǒng)相比,具有誤報率低、不受地形和環(huán)境限制、安全性高等顯著優(yōu)點,已被廣泛應用于世博會、奧運會、變電站、工廠、小區(qū)、學校、別墅、倉庫、機場、軍事基地、看守所、監(jiān)獄等各個行業(yè)。
隨著網(wǎng)絡技術的發(fā)展與信息化建設的深入,市場對周界安防要求不斷提高,尤其對解決安防行業(yè)核心系統(tǒng)存在的技術漏洞需求最為明顯。市場需求催生了創(chuàng)新的周界安防產(chǎn)品,第五代脈沖電子圍欄產(chǎn)品—“T6/T8系列觸網(wǎng)防旁路脈沖電子圍欄主機”應運而生。T6/T8系列電子圍欄主機采用Smart DEC智能算法(全稱“防等電位破解技術”),新增單線觸網(wǎng)報警、防旁路報警功能,終結(jié)了電子圍欄行業(yè)長期存在的兩大技術漏洞,且能通過識別前端觸網(wǎng)信號,極大的降低誤報率。從用戶的角度考慮,第五代脈沖電子圍欄主機最大程度上改善了用戶體驗,電子圍欄技術發(fā)展及應用進入了下一個里程碑時代。
脈沖電子圍欄的前世今身》
電子圍欄發(fā)展可追溯到上世紀二三十年代,從最原始的牧場電子圍欄到第五代智能觸網(wǎng)防旁路型脈沖電子圍欄的演化,這無疑是電子圍欄近100年來無數(shù)次技術革新的成果。第一階段:牧場電子圍欄
電子圍欄最早起源于英國英格蘭的流動牧場,牧人為了放牧的需要,拉一根導線,通上直流電,就形成簡單的電子圍欄,使牲畜在一定范圍內(nèi)活動。戰(zhàn)后在歐洲,牧業(yè)在農(nóng)業(yè)中的比重是很高的,大量的牧業(yè)市場需求促進了“電子圍欄”的開發(fā)和推廣。牛羊等遇到“電子圍欄”的電擊阻擋而退回,很好地起到“牧羊人”的作用,同時也防止圈外的大型動物或猛獸跑進來,對當時的牧業(yè)發(fā)展起到了較大的促進,在一些畜牧業(yè)比較發(fā)達的國家仍然在發(fā)揮著較大的作用,姑且算是第一代電子圍欄產(chǎn)品的雛形。第二階段:報警電子圍欄
隨著整個“電子圍欄”行業(yè)的發(fā)展和深入,產(chǎn)品附件和種類越來越多,90年代中后期具有阻擋和報警功能的智能型周界安防報警系統(tǒng),開始專業(yè)用于社會公共安全領域,它具有斷路、短路、失電報警功能同時又秉承了電子圍欄的安全阻擋功能。該產(chǎn)品充分考慮了人的主動性和智慧性,能準確判斷出無意觸摸、蓄意破壞、非法闖入等各種情況,是現(xiàn)周界安防項目的比較好的選擇。第三階段:智能電子圍欄
隨著人們對產(chǎn)品性能和功能的要求越來越高,產(chǎn)品需要更加人性化,具有更多功能的產(chǎn)品開始出現(xiàn)。第二代產(chǎn)品輸出脈沖電壓恒定,當周界的長短出現(xiàn)變化時,前端的電壓會隨著周界的長度出現(xiàn)過高或過低的現(xiàn)象;同時當產(chǎn)品安裝在圍墻較低的別墅或小區(qū)時,白天會出現(xiàn)誤擊到小孩或附近工作人員的現(xiàn)象?;谝陨蠁栴},第三代可調(diào)節(jié)輸出電壓和可設定高壓模式、安全模式切換功能的產(chǎn)品入市,如G3/T5系列脈沖電子圍欄主機,它具有斷路、短路、失電報警功能同時又秉承了電子圍欄的安全阻擋功能,充分考慮了人的主動性和智慧性,能準確判斷出無意觸摸、蓄意破壞、非法闖入等各種情況。同時,這一階段的產(chǎn)品還有的具有遙控操作、遠距離操作等功能,為產(chǎn)品大規(guī)模地應用于別墅、小區(qū)提供了更好的產(chǎn)品。第四階段:網(wǎng)絡電子圍欄
隨著安防行業(yè)物聯(lián)網(wǎng)的逐步深入,絕大部分周界報警系統(tǒng)仍停留在前端報警和單一設備的控制管理之上,存在無法進行聯(lián)動的缺陷,致使安防系統(tǒng)處于“分散管理”的狀態(tài)。由此網(wǎng)絡電子圍欄應運而生,以G5S/G5P系列脈沖電子圍欄主機為例,其主要節(jié)點設備全網(wǎng)絡電子圍欄主機、智能控制終端和管理軟件都可直接接入以太網(wǎng),用戶通過網(wǎng)絡即可監(jiān)管電子圍欄,實現(xiàn)信息實時傳遞、數(shù)據(jù)交互和遠程監(jiān)管的功能需求。第四代產(chǎn)品的網(wǎng)絡化與集成化程度達到了空前成熟水平,且具有方案靈活、施工簡便、成本節(jié)省、傳輸穩(wěn)定的特點。
三年磨一劍的技術突破》
智能感知磁場平衡波,彌補技術漏洞
脈沖電子圍欄是通過主機的發(fā)射端口向前端圍欄上的合金線發(fā)射脈沖電,由接收端接收脈沖電信號,使電子圍欄系統(tǒng)形成一個完整的回路。一旦有人為入侵,造成相鄰兩根合金線的短路或者有人故意破壞剪斷前端圍欄合金線(開路),脈沖電子圍欄主機會及時發(fā)出警報并通過通信線路傳送至控制中心。
在脈沖電子圍欄行業(yè)蓬勃發(fā)展的當下,卻有著兩個致命的技術弊端困擾著行業(yè)從業(yè)人員多年:單線觸網(wǎng)不報警和旁路跨接不報警,為用戶帶來了極大的安全隱患。目前市面上的脈沖電子圍欄產(chǎn)品單線觸網(wǎng)雖然可以對入侵者產(chǎn)生電擊,在電阻很小的時候有些產(chǎn)品也會產(chǎn)生報警,但當電阻很大的時候就不會報警。這也就是說,當入侵者穿著球鞋或帶著塑膠手套以單線觸網(wǎng)方式攀爬圍欄,則市面上的電子圍欄將不會產(chǎn)生報警,而入侵者所穿戴的絕緣材質(zhì)物品也可阻擋其遭受前段圍欄的電擊,使其順利翻越圍墻,存在嚴重的防范漏洞。
旁路跨接不報警是現(xiàn)有電子圍欄的另一技術弊端。旁路跨接分為單線旁路跨接(圖1)和回路旁路跨接(圖2),當入侵者用短路線分別連接電子圍欄前端每根金屬線的兩端(單線旁路跨接),或用兩
(四)條短路線在圍欄網(wǎng)絡接線跨接處分別連接相間隔的金屬線(回路旁路跨接)后,電子圍欄前端產(chǎn)生失效區(qū),而當失效區(qū)金屬線被剪斷時,主機不報警,入侵者就可以趁這個“漏洞”翻越圍欄,造成財產(chǎn)損失。
圖1
圖2 為了彌補電子圍欄的缺陷及增加客戶的安全保障,上海廣拓耗時3年成功研發(fā)出全新的T6/T8系列觸網(wǎng)防旁路型脈沖電子圍欄,采用Smart DEC智能算法(全稱“防等電位破解技術”),能通過識別前端觸網(wǎng)情況,實現(xiàn)單線觸網(wǎng)報警、防旁路報警、短路報警和斷路報警這四類報警方式,從真正意義上解決了長久存在的技術漏洞,提升電子圍欄的安全性。全析計算識別入侵信號,最大降低誤報
電子圍欄主機原則上是不允許有漏報,如何在沒有漏報的基礎上減少誤報是目前各電子圍欄技術急需解決的問題?,F(xiàn)如今,減少誤報普遍著力于對硬件的改進上,即傳感器與前端關鍵元器件的提升。傳感器負責對收集信號進行分析,傳感器分析的程度越準確,就越能將各種誤報的信號排除在外。從總的趨勢來看,脈沖電子圍欄正不斷向數(shù)字化技術邁進,并成為一種主流趨勢。與以往幾代脈沖電子圍欄在硬件上的更迭相比,現(xiàn)在數(shù)字化的技術越來越偏重于軟件,即把一些產(chǎn)生誤報、漏報的可能情況,比如小動物、風、雨、雪等干擾信號進行軟件建模,通過軟件算法識別出各種誤報信號,這樣就可以減少誤報情況發(fā)生的機率。在這個方面,T6/T8系列脈沖電子圍欄主機采用Smart DEC智能算法,通過感知電子圍欄金屬線上的磁場變化,并經(jīng)由一系列精密運算,從而精準判斷出前端圍欄的觸網(wǎng)情況,全面革新了電子圍欄的報警技術。當前端圍欄被碰觸,搭載于主機內(nèi)的Smart DEC智能算法能夠通過計算圍欄金屬線上電磁場的變化量辨別出是人體還是小動物的觸碰,并針對人為入侵行為向控制中心發(fā)出報警信號,極大減少電子圍欄產(chǎn)品的誤報率。同時,當入侵者使用短路方式對前端圍欄進行接駁,圍欄金屬線上的電磁場平衡將被遭到破壞,Smart DEC智能算法通過對電磁場平衡波動的監(jiān)測準確探知入侵者的旁路跨接行為(包含單線旁路跨接和回路旁路跨接),并即刻將報警信息發(fā)送控制中心,為安保人員進行處警提供絕佳的時間優(yōu)勢。
行業(yè)發(fā)展趨勢》
網(wǎng)絡化、數(shù)據(jù)化應用引發(fā)的市場大變革
基于物聯(lián)網(wǎng)的滲入,未來周界安防的發(fā)展趨勢,必然是以用戶為核心而設計網(wǎng)絡化、數(shù)據(jù)化等特征的綜合信息操作系統(tǒng)。作為安防系統(tǒng)的第一道屏障,電子圍欄需要一個數(shù)據(jù)化的系統(tǒng)操作從而更有效的來判斷系統(tǒng)的穩(wěn)定性及安全性。業(yè)內(nèi)專家普遍認為,T6/T8系列觸網(wǎng)防旁路型脈沖電子圍欄主機采用獨創(chuàng)的Smart DEC技術,智能識別入侵者觸碰電子圍欄前端的多種報警類型,其技術設計理念在周界的前端入侵探測領域具有顯著創(chuàng)新性和先進性。
然而,電子圍欄主機入侵探測傳感模式與觸發(fā)判斷的技術革新仍不能完全滿足日益增長的用戶需求,周界安防解決方案更需要擁有強大的網(wǎng)絡系統(tǒng)集成平臺,這使得電子圍欄主機在設計上考慮多種通信方式。以T6/T8系列主機為例,產(chǎn)品內(nèi)置以太網(wǎng),RS485豐富接口,最大程度提高了產(chǎn)品通訊連接能力和穩(wěn)定性,適應用戶與視頻監(jiān)控系統(tǒng)、語音對講系統(tǒng)、燈光控制系統(tǒng)有效集成需求。便捷的通過智能鍵盤或控制軟件調(diào)控用戶服務器結(jié)構(gòu),如遠程防區(qū)布撤防、模式切換、輸出電壓調(diào)整、靈敏度調(diào)節(jié)、報警響應時間調(diào)節(jié)等功能,順利實現(xiàn)跨地區(qū)遠程移動的安全警戒和管理。
當有人非法翻越圍墻或破壞圍欄時,脈沖電子圍欄具有阻擋作用,聯(lián)動視頻監(jiān)控系統(tǒng)彈出報警點視頻畫面,進行視頻復核。通過智能控制終端配套的移動云警APP管理前端電子圍欄防區(qū)信息一目了然,推送機制保障報警信息即時送達,報警信息列表輕松查看報警詳情,隨時隨地處理警情。
最后,電子圍欄系統(tǒng)采用的全網(wǎng)絡化架構(gòu),和MK智能控制終端、SMC3000管理平臺組成三級網(wǎng)絡結(jié)構(gòu),只需簡單的將網(wǎng)線插入主機和光纖收發(fā)器,施工費用至少減少30%,降低了工程施工的復雜程度及成本。以上正是脈沖電子圍欄網(wǎng)絡化、數(shù)據(jù)化所帶來的技術革新,這種變革真正意義上區(qū)別了國內(nèi)各廠商在產(chǎn)品技術和設計理念上的差異。產(chǎn)品技術上的差異可以在較短時間內(nèi)得以趕超,而設計理念的差異往往源自于廠商本身自帶的基因,并非簡單就能彌補及突破。在全球安防市場風云驟變的時代,更驗證了電子圍欄領先廠商創(chuàng)新、匠心的戰(zhàn)略實施為用戶創(chuàng)造安防的全新價值。
第五篇:CMP(化學機械拋光)技術發(fā)展優(yōu)勢及應用
CMP(化學機械拋光)技術發(fā)展優(yōu)勢及應用
CMP-化學機械拋光技術它利用了磨損中的“軟磨硬”原理,即用較軟的材料來進行拋光以實現(xiàn)高質(zhì)量的表面拋光。在一定壓力及拋光漿料存在下,被拋光工件相對于拋光墊作相對運動,借助于納米粒子的研磨作用與氧化劑的腐蝕作用之間的有機結(jié)合,在被研磨的工件表面形成光潔表面151.CMP技術最廣泛的應用是在集成電路(IC)和超大規(guī)模集成電路中(ULSI)對基體材料硅晶片的拋光。而國際上普遍認為,器件特征尺寸在0.35 5m以下時,必須進行全局平面化以保證光刻影像傳遞的精確度和分辨率,而CMP是目前幾乎唯一的可以提供全局平面化的技術。其中化學機械拋光漿料是關鍵因素之一。拋光磨料的種類、物理化學性質(zhì)、粒徑大小、顆粒分散度及穩(wěn)定性等均與拋光效果緊密相關。此外,拋光墊的屬性(如材料、平整度等)也極大地影響了化學機械拋光的效果.隨著半導體行業(yè)的發(fā)展,2003年,全球CMP拋光漿料市場已發(fā)展至4.06億美元.但國際上CMP拋光漿料的制備基本屬于商業(yè)機密,不對外公布。1化學機械拋光作用機制
CMP作用機理目前還沒有完整的從微觀角度的理淪解釋。但從宏觀上來說,可以解釋如下:將旋轉(zhuǎn)的被拋光晶片壓在與其同方向旋轉(zhuǎn)的彈性拋光墊上,而拋光漿料在晶片與領升:拋光機 http://www.tmdps.cn
底板之間連續(xù)流動。上下盤高速反向運轉(zhuǎn),被拋光晶片表面的反應產(chǎn)物被不斷地剝離,新拋光漿料補充進來,反應產(chǎn)物隨拋光漿料帶走。新裸露的品片平面又發(fā)生化學反應,產(chǎn)物再被剝離下來而循環(huán)往復,在襯底、磨粒和化學反應劑的聯(lián)合作用下,形成超精表面,要獲得品質(zhì)好的拋光片,必須使拋光過程中的化學腐蝕作用與機械磨削作用達到一種平衡。如果化學腐蝕作用大于機械拋光作用,則會在拋光片表面產(chǎn)生腐蝕坑、桔皮狀波紋;反之,機械拋光作用大于化學腐蝕作用則表面產(chǎn)生高損傷層.為了進一步了解CMP作用的本質(zhì),近年來國內(nèi)外有很多關于CMP作用微觀機理的研究.清華人學王亮亮、路新春的研究表明:CMP中主要是低頻、大波長的表面起伏被逐漸消除,而小尺度上的粗糙度并未得到顯著改善;當顆粒直徑在10^-25 nm的范圍時,粒徑和粗糙度不存在單調(diào)的增減關系;桔皮的產(chǎn)生主要是拋光漿料中堿濃度過高所致。而北京交通大學張朝輝等根據(jù)Lei提出的CMP作用中納米流體薄膜理論,提出化學機械拋光過程中,受載的粗糙峰和被拋光的品片表面之間存在一納米量級的薄流體膜,形成了納米級薄膜流動系統(tǒng),指出對納米級流動規(guī)律進行研究將有助r-了解化學機械拋光的作用機理,其中,在極薄的膜厚情況下的溫度場分析是一項迫切任務。同時,陳楊的研究也表明了相似的觀點:材料的去除首先源于化學腐蝕作用。一方面,在拋光領升:拋光機 http://www.tmdps.cn
過程中晶片表面局部接觸點產(chǎn)生高溫高壓,從而導致一系列復雜的摩擦化學反應;在拋光漿料中的堿性組分和納米磨料顆粒作用下,硅片表面形成腐蝕軟質(zhì)層,從而有效地減弱磨料對硅片基體的刻劃作用,提高拋光效率和拋光表面質(zhì)量。另一方面,根據(jù)Preston公式: N RR=QWNV(其中,NRR為材料去除率;QW為被拋光材料的密度;N為拋光有效磨料數(shù);V為單個磨料所去除材料的體積,包括被去除的硅叢體的體積V,和軟質(zhì)層的體積V2),軟質(zhì)層的形成導致v增大(即化學腐蝕作用可促進機械磨削作用),V1減小,從而有利于減小切削深度、增強塑性磨削和提高拋光表面質(zhì)量。因此,在拋光漿料質(zhì)量濃度相同的條件下,采用納米磨料拋光不僅有利于減小切削深度、提高拋光表面質(zhì)量,同時由于有效磨料數(shù)N的急劇增大,還有利于提高拋光效率。應該指出的是,軟質(zhì)層的厚度同拋光條件有關,就納米級磨料而言,相應的軟質(zhì)層的厚度一般處于幾納米至十幾納米之間:而由于CMP是機械去除和化學去除相互作用的過程,因此難以通過靜態(tài)化學腐蝕測最軟質(zhì)層的硬度。忽略拋光墊和其它一些因素的影響,拋光漿料的流動特性對CMP的行為有很大的影響。一般拋光漿料磨粒為圓形的納米級粒子,利用微極性流體可以模擬粒子的微旋運動對拋光性能的影響。張朝輝研究的模擬結(jié)果表明微極性將增加承載能力,從而有利于提高拋光速率。這一特性在低節(jié)距或低轉(zhuǎn)速下更為顯著,體現(xiàn)出尺寸依賴性。
領升:拋光機 http://www.tmdps.cn
2化學機械拋光漿料
拋光漿料的成分主要由三部分組成:腐蝕介質(zhì)、成膜劑和助劑、納米磨料粒子。拋光漿料要滿足拋光速率快、拋光均一性好及拋后易清洗等要求.磨料粒子的硬度也不宜太高,以保證對膜層表面的機械損害比較輕。
按pH值分類,拋光漿料主要分為兩類:酸性拋光漿料和堿性拋光漿料。一般酸性拋光漿料都包含氧化劑、助氧化劑、抗蝕劑(又叫成膜劑)、均蝕劑、pH調(diào)制劑和磨料。氧化劑起在被拋光物件表面發(fā)生氧化腐蝕作用,然后通過機械作用去除表面凸起部分,使物件表面平整:另外,氧化劑還能氧化基體表面形成一層氧化膜從而提高選擇性。助氧化劑起到提高氧化速率的作用。均蝕劑可使腐蝕均勻,從而使表面光滑細膩;抗蝕劑的作用是在被拋光物件表面與被腐蝕基體形成一層聯(lián)結(jié)膜,從而阻止腐蝕的進行以提高選擇性。而堿性拋光漿料中一般包含絡合劑、氧化劑、分散劑、pH調(diào)制劑和磨料。因為堿性拋光漿料僅在強堿中才有很寬的腐蝕領域,而且磨料易造成劃傷,所以應用遠不如酸性拋光漿料廣泛。對于不同的腐蝕基體要選擇不同的絡合劑:分散劑一般為大分子量非離子有機分散劑,其作用是保證漿料中的磨料不發(fā)生絮凝和沉降現(xiàn)象,并使磨料的勤度保持盡可能低,具有良好的流動性。下面主要介紹目前使用最為廣泛的幾種拋光漿料。
領升:拋光機 http://www.tmdps.cn
2.1 CeO2拋光漿料
稀土氧化物CeO2具有很好的拋光性能,其特點是拋光速率高,對材料的去除率高,被拋光表面粗糙度和表面微觀波紋度較小,顆粒硬度低,對被拋光表面損傷較弱;其缺點是勃度大,易劃傷且高低選擇性不好,沉淀在介質(zhì)膜_L吸附嚴重,為后續(xù)清洗帶來困難.CeO2拋光漿料廣泛應用于玻璃精密拋光、超大規(guī)模集成電路Sio2介質(zhì)層拋光和單晶硅片拋光等,而現(xiàn)在國內(nèi)外有很多研究也致力于CeO2拋光漿料對半導體襯底材料(如GaAs晶片)的拋光。
首先納米CeO2粒子通過化學吸附與拋光表面上的Sio2之間形成Ce-O-Si鍵,CeO2粒子將表面部分Sio2撕裂下來,進入溶液中;經(jīng)過擴散,Sio2粒子又從CeO2粒子的表面脫落。Ce-O-Si鍵的形成與S-O-Si鍵的斷裂影響著拋光速率.化學吸附作用和機械撕裂作用同時影響著Si-O-Si鍵的斷裂。CeO2拋光漿料區(qū)別于傳統(tǒng)拋光活性強的拋光漿料都是強酸,它在堿性拋光環(huán)境下是兩性的,能同時吸附陽離子和陰離子,故有更好的拋光性能。鄉(xiāng)屯度、硬度、粒度、粒度分布、懸浮性、表面電性、表面活性和密度等都是影響其拋光性能的主要因素.粒度大的適合高速拋光,粒度小的適用于低速拋光圈.具有高拋光性能的納米CeO2目前的合成方法主要有:液相反應法、固相反應法、機械化學法。液相反應法包括:溶領升:拋光機 http://www.tmdps.cn
膠一凝膠法、液相沉淀法、電化學法、水熱法、微乳液法、噴霧熱分解法等。張鵬珍等采用溶膠一凝膠法制備了平均晶粒度在13.3 nm且粒度分布均勻的納米CeO2粉體,經(jīng)此CeO2拋光漿料拋光后的玻璃幕片表面粗糙度(Ra)可降到0.6nm左右,顯示了良好的拋光性能。Ming等(2a)也采用此法在常壓下制備納米CeO2,原料為硝酸飾錢、尿素和去離子水,通過加熱得到的CeO2粒徑為8 nm,具有立方體結(jié)構(gòu)。電化學法制得的CeO2優(yōu)點是粒子粒度很小,分散性也較好,工藝也相對簡單,但是產(chǎn)率較低。水熱法的優(yōu)點是不需要進行高溫灼燒處理,避免了硬團聚。Verdon等在耐熔的合金容器中,于1.5 MPa和500%條件下進行水熱合成制得的納米CeO2晶型較好。BondioliF等利用固相反應在得到的CeO2產(chǎn)物尺寸為10-20 nm,且具有較好的尺寸分布.有研究表明,用機械化學法也能制成粒度在10-20nm的納米CeO2.Rajendran(291通過一種新的方法研究了CeO2拋光Si仇過程,發(fā)現(xiàn)CeO2的機械作用能加速其與Siq還原的化學反應,并且在拋光過程中存在Cc 3+與Ce0+兩種價態(tài)。
2.2 Si02拋光漿料
Si仇拋光料的優(yōu)點是選擇性和分散性好,機械磨損性能較好,化學性質(zhì)較活潑,后清洗過程廢液處理較容易,其缺點是硬度較高,易在被拋光物體表面造成不平整,且在拋光領升:拋光機 http://www.tmdps.cn
漿料中易產(chǎn)生凝膠現(xiàn)象,對拋光速度的再現(xiàn)性有不良影響,同時會使被拋光物體表面產(chǎn)生刮傷。SiO2拋光漿料的pH值、磨料粒徑(50-200 nm)與分散度、濃度等都對其拋光效果有很大的影響。Si02拋光漿料用于硅片的拋光、層間介電層OLD)的拋光、妮酸鉀晶片的拋光、硬盤基片的拋光等。Siq拋光料的制備方法國內(nèi)外有很多研究,從總體來說主要是分散法與凝聚法:分散法是通過機械攪拌將納米Si仇粉末直接分散到水中來制備Si02漿料的。用分散法制備Si02漿料主要包括以下3個過程:①納米Si02穎粒在液體中潤濕:②團聚體在機械攪拌力作用下被打開成獨立的原生粒子或較小的團聚體;③將原生粒子或較小的團聚體穩(wěn)定住,阻止再發(fā)生團聚。采用分散法制備出的Si仇漿料濃度高、顆粒均勻、分散性好、純度高、黏度較小,但受粉體本身性能的影響特別嚴重。凝聚法是利用水溶液中化學反應所生成的SiO2通過成核、生長,采用各種方法脫除其中雜質(zhì)離子得到納米Sio2水分散體系的一種方法,該法制得的Sio2漿料穎粒粒徑均一,形狀規(guī)整,純度與濃度也較高.王占銀以SiO2作為拋光漿料,分析了影響妮酸鏗晶片拋光效果的因素,通過優(yōu)化工藝參數(shù),使妮酸銼的表面粗糙度凡達到0.387 nmo雷紅制備了Sio2拋光漿料用來拋光鎳磷敷鍍的硬盤基片,表面形貌儀測得拋光后基片的表面粗糙度和波紋度分別為0.052 nm和0.063 nm,且基片表面無凹坑、電蝕等缺陷。另有研究領升:拋光機 http://www.tmdps.cn
表明[301當Si02拋光漿料pH->9時,在拋光漿料中加入適量的活性劑和鰲合劑,能消除Si02凝膠現(xiàn)象,得到較好的拋光結(jié)果。目前,對影響Si02拋光漿料拋光效果〔高拋光速率、低表面損傷、高表面平整度、易清洗等)的各種因素(拋光漿料粒度、pH值、溫度、拋光漿料流速等)的研究己比較成熟.2.3 A1203拋光漿料
1998年日本COSMOS公司首次開發(fā)了納米級別的超細A1203微粉作磨料的納米級拋光劑,從而Al2o3拋光漿料廣泛應用于CMP領域,以納米Y-AI203為研磨粒子的漿料可用于集成電路生產(chǎn)過程中層間鎢、鋁、銅等金屬薄膜的平坦化及高級光學玻璃、石英品體和各種寶石的拋光等.A12o3場拋光漿料因具有選擇性低、分散穩(wěn)定性不好、易團聚等缺點,往往在幾分鐘內(nèi)就會出現(xiàn)沉淀,顆粒變粗,所以在拋光中表面劃傷嚴重,損傷層深,所以通常A1203拋光漿料要混合有機添加物一起使用并控制好工藝條件以達到良好的拋光效果。宋曉嵐等的研究表明,在y-A12偽固含量為6%的漿料中,加入異丙醉胺分散劑的用量為-y-A1203粉體質(zhì)量的1%,同時控制漿料的pH值約為4,此時納米y-A12場粉末的潤濕性能最佳,漿料Zeta電位值較高,勃度較小,在該條件下可成功獲得長時間不沉降的穩(wěn)定漿料。盧海參采用丙烯酞氯對超細氧化鋁進行表面改性,有效提高了氧化鋁拋光漿料的分領升:拋光機 http://www.tmdps.cn
散性,進一步的研究表明材料去除速率隨壓力或下盤轉(zhuǎn)速先增大后減小,隨拋光時的延長,材料去除速率初期較人,后期變化趨于平緩。具有良好的抗靜電性和可擦性的A1203拋光漿料在國內(nèi)已經(jīng)研制出來,應用于磁性材料的精密拋光加工中。有研究表明,通過A1203外層包覆Si02形成殼一核性結(jié)構(gòu)粒子拋光漿料拋光能很好地提高拋光性能,減低表面損傷和粗糙度,其機理可能為殼一核結(jié)構(gòu)的緩沖效應和粒子之間的解聚作用。
3化學機械拋光技術發(fā)展趨勢
隨著計算機、通信及網(wǎng)絡技術的高速發(fā)展,對作為其基礎的集成電路的性能要求愈來愈高。集成電路芯片增大而單晶體管元件減小及多層集成電路芯片是發(fā)展的必然趨勢,使得CMP在集成電路行業(yè)的重要性越來越顯著,這對CMP技術提出了更高的要求。
在CMP設備方面,正在由單頭、雙頭拋光機向多頭拋光機發(fā)展;結(jié)構(gòu)逐步由旋轉(zhuǎn)運動結(jié)構(gòu)向軌道拋光方法和線形拋光技術方面發(fā)展;開發(fā)帶有多種在線檢測裝置的設備,如組裝聲學信號、力學信號、薄膜厚度及拋光漿料性質(zhì)等在線測量裝置,并且結(jié)合目前的干進干出要求,將拋光后清洗裝置與拋光機集成來進行開發(fā)。在應用方面,CMP技術已從集成電路的硅品片、層間介質(zhì)(ILD)、絕緣體、導體、鑲嵌金屬W.AI.Cu.Au及多晶硅、硅氧化物溝道等的平面化,拓展至領升:拋光機 http://www.tmdps.cn
薄膜存貯磁盤、微電子機械系統(tǒng)(MFMS)、陶瓷、磁頭、機械磨具、精密閥門、光學玻璃和金屬材料等表面加工領域。在CMP拋光漿料方面,關鍵是要開發(fā)新型拋光漿料,特別是復合磨料拋光漿料,使其能提供高的拋光速率、好的平整度、高的選擇性以及利于后續(xù)清洗過程,以使磨料粒子不會殘留在芯片表面而影響集成電路性能。
CMP漿料有待于發(fā)展的技術有:磨料制各技術、漿料分散技術和拋光漿料配方技術。首先要解決的就是尺寸小、分散度大、硬度適中、均勻性好、純度高的納米磨料粒子。拋光漿料的排放及后處理工作最也在增大(出于環(huán)保原因,即使?jié){料不再重復利用,也必須先處理才可以排放)。而且,拋光漿料價格昂貴,如何對拋光漿料進行后處理,補充必要的化學添加劑,重復利用其中的有效成分,或降級使川,不僅可以減少環(huán)境污染,而且可以大大降低加工成本。拋光漿料的后處理研究將是未來的新研究熱點。另外一方面,復合磨料拋光漿料的研究也將是未來的趨勢之一,因為復合磨料拋光漿料在保持單一磨料拋光漿料優(yōu)點同時也改善了其缺點,在國外已經(jīng)出現(xiàn)了復合拋光磨料的研究報道,如A1203, Si02, CeO2各種單一拋光磨料互相通過包覆形成殼一核型的復合拋光磨料,集中各種單一拋光磨料的優(yōu)點,從而配制出拋光效果更佳的新型復合拋光漿料。實驗表明,在較軟的磨料粒子外面包覆一層較硬的物質(zhì),可以在提高其拋光速率的同時領升:拋光機 http://www.tmdps.cn
也保持了較高的選擇性;而在較硬的磨料粒子外面包覆一層較軟的物質(zhì),則可在保持其較高拋光速率的基礎上改善其拋光表面質(zhì)量。如Lu等成功地在球形SiO2粒子外面包覆一層Ce02,并以其作為磨料制備復合拋光漿料與Sio2和Ce02拋光漿料進行拋光實驗的比較,研究表明,復合磨料具有更好的拋光效果。目前,CMP技術己經(jīng)不局限于使用固體磨料,甚至出現(xiàn)了用氣體來進行拋光的技術(如HVPE技術等),為拋光漿料的發(fā)展開拓了新的思路。
近年來,CMP技術得到了長足的發(fā)展,涌現(xiàn)出了不少新技術,例如:固結(jié)磨料化學機械拋光技術、電化學機械平坦化技術、無磨料化學機械拋光技術、無應力拋光技術、接觸平坦化技術和等離子輔助化學蝕刻平坦化技術等。
盡管CMP技術發(fā)展的速度很快,但目前對CMP技術的了解還處于定性的階段,需要解決的理論及技術問題還很多。如人們對諸如拋光參數(shù)(如壓力、轉(zhuǎn)速、溫度等)對平面度的影響、拋光墊一漿料一片子之間的相互作用、漿料化學性質(zhì)(如組成、pH值、顆粒度等)對各種CMP參數(shù)的影響及其機理了解仍然甚少,因而定量確定最佳CMP工藝、系統(tǒng)地研究CMP工藝過程參數(shù)、建立完善的CMP理論模型、滿足各種超大型集成電路生產(chǎn)對CMP工藝的不同要求,是研究CMP技術的重大課題。由于缺乏有效的在線終點檢測技術,維持穩(wěn)定的、一次通過性的生產(chǎn)運轉(zhuǎn)過程還存在困難,因而迫切需要開發(fā)領升:拋光機 http://www.tmdps.cn
實用的在線檢測手段。一般在芯片工藝的最后幾個階段也需進行CMP加工,此時每個芯片的價值已達到數(shù)千至數(shù)十萬美元,因而,芯片表面殘留漿料的清除是CMP后清洗的主要課題。研制合適的CMP工藝、拋光設備及漿料以使去除速度高而穩(wěn)定、片子的模內(nèi)均勻性和片內(nèi)均勻性都理想,且產(chǎn)生的表面缺陷少,是CMP技術發(fā)展的主要難題。4結(jié)語
綜上所述,CMP技術可用于各種高性能和特殊用途的集成電路制造,且應用領域口益擴展,已成為最為重要的超精細表面全局平面化技術,也是國際競爭的關鍵技術,其增長勢頭和發(fā)展前景非??捎^。深入研究和開發(fā)CMP技術,并形成擁有自主知識產(chǎn)權(quán)的材料和工藝,將促進我國IC產(chǎn)業(yè)的良性發(fā)展,提高我國在這一方面的國際地位,同時也將帶來了巨大的經(jīng)濟和社會效益。
領升:拋光機 http://www.tmdps.cn