• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    編譯技術(shù)的發(fā)展

    2018-12-25 08:08:06賈巧蘭河南大學(xué)軟件學(xué)院
    數(shù)碼世界 2018年4期
    關(guān)鍵詞:宿主機(jī)匯編語言代碼

    賈巧蘭 河南大學(xué)軟件學(xué)院

    機(jī)器語言是機(jī)器直接能夠識(shí)別的語言,匯編語言與機(jī)器有關(guān),屬于低級(jí)語言,需要進(jìn)行編譯之后才可運(yùn)行。編譯技術(shù)的必要性來自于匯編語言的缺點(diǎn):閱讀和理解較為困難、編寫過程不易且嚴(yán)格依賴于特定的機(jī)器,因此,編譯技術(shù)應(yīng)運(yùn)而生。

    1 產(chǎn)生的必然

    在20世紀(jì)40年代,由于馮.諾伊曼在存儲(chǔ)-程序計(jì)算機(jī)方面的先鋒作用,為使計(jì)算機(jī)能夠執(zhí)行所需的計(jì)算,編寫一串代碼或程序已成必要。起初,這些程序都是用機(jī)器語言(machine language)進(jìn)行編寫。機(jī)器語言就是表示機(jī)器實(shí)際操作的數(shù)字代碼,但編寫這樣的代碼十分費(fèi)時(shí)和乏味,這種代碼形式很快就被匯編語言(assembly language)所代替。在匯編語言中,都是以符號(hào)形式給出指令和存儲(chǔ)地址的,大大提高了編程的速度和準(zhǔn)確度,但是由于匯編語言的編寫嚴(yán)格依賴于特定的機(jī)器,所以為一臺(tái)計(jì)算機(jī)編寫的代碼在應(yīng)用于另一臺(tái)計(jì)算機(jī)時(shí)必須完全重寫,費(fèi)時(shí)費(fèi)力。

    2 發(fā)展

    20世紀(jì)50年代早期,由于當(dāng)初大量的實(shí)驗(yàn)和實(shí)現(xiàn)工作是由不同的小組獨(dú)立完成的,多數(shù)早期的編譯工作是將算術(shù)公式翻譯成機(jī)器代碼。用現(xiàn)在的標(biāo)準(zhǔn)來衡量,當(dāng)時(shí)的編譯程序能完成的工作十分基礎(chǔ)且有限,如只允許進(jìn)行簡(jiǎn)單的單目運(yùn)算,數(shù)據(jù)元素的命名方式也有很多限制。然而它們奠定了對(duì)高級(jí)語言編譯系統(tǒng)的研究和開發(fā)的基礎(chǔ)。

    20世紀(jì)50年代中期出現(xiàn)了FORTRAN等一批高級(jí)語言,相應(yīng)的一批編譯系統(tǒng)開發(fā)成功。隨著編譯技術(shù)的發(fā)展和社會(huì)對(duì)編譯程序需求的不斷增長,20世紀(jì)50年代末有人開始研究編譯程序的自動(dòng)生成工具,提出并研制編譯程序的編譯程序。它的功能是以任一語言的詞法規(guī)則、語法規(guī)則和語義解釋出發(fā),自動(dòng)產(chǎn)生該語言的編譯程序。目前很多自動(dòng)生成工具已廣泛使用,如詞法分析程序的生成系統(tǒng)LEX,語法分析程序的生成系統(tǒng)YACC等。20世紀(jì)60年代起,不斷有人使用自展技術(shù)來構(gòu)造編譯程序。自展的主要特征是用被編譯的語言來書寫該語言自身的編譯程序;70年代后期和80年代早期,大量的項(xiàng)目都貫注于編譯器其它部分生成自動(dòng)化,其中也包括代碼的生成。

    3 編譯技術(shù)

    3.1 目前流行的編譯技術(shù)

    目前流行的編譯技術(shù)主要有:并行編譯技術(shù)、交叉編譯技術(shù)、動(dòng)態(tài)編譯技術(shù)。并行編譯技術(shù)首先利用重構(gòu)技術(shù)將串行程序并行化,將已有的串行語言編寫的程序經(jīng)過相關(guān)分析分解成可并行的成分分配到CPU或多處理機(jī)上運(yùn)行,最后直接編寫并行程序;由于目標(biāo)機(jī)的指令系統(tǒng)與宿主機(jī)的指令系統(tǒng)的不同,通常使用交叉編譯技術(shù)把某個(gè)機(jī)器(宿主機(jī))上已有的軟件移植到另一臺(tái)(目標(biāo)機(jī))上,主要是編譯程序在宿主機(jī)A上運(yùn)行把應(yīng)用程序的源程序生成目標(biāo)機(jī)B的代碼;動(dòng)態(tài)編譯技術(shù)即編譯運(yùn)行時(shí)的程序變換,是優(yōu)化利用在運(yùn)行時(shí)提供的信息對(duì)程序提供更安全的優(yōu)化,因此利用動(dòng)態(tài)編譯技術(shù)可大大擴(kuò)大優(yōu)化范圍從而能夠產(chǎn)生更有效的代碼。

    3.2 構(gòu)造編譯程序的方法

    自展法:主要特征即用被編譯的語言來書寫該語言自身的編譯程序。1971年P(guān)ASCAL的編譯程序用自展技術(shù)生成后,其影響就越來越大;自動(dòng)生成法:典型的自動(dòng)生成工具有LEX-詞法分析器和YACC-語法分析器;自編譯:主要思想是用目標(biāo)機(jī)的匯編語言或機(jī)器語言對(duì)源程序的核心部分構(gòu)造一個(gè)小小的編譯程序,再以它為工具構(gòu)造一個(gè)能夠編譯更多語言成分的較大編譯程序。

    3.3 編譯技術(shù)的應(yīng)用

    編譯技術(shù)的應(yīng)用主要有:在反病毒方面、基于編譯技術(shù)的可信賴計(jì)算方法以及基于編譯技術(shù)的協(xié)議解析方法。

    4 編譯技術(shù)未來的發(fā)展

    4.1 多核處理器編程

    由于不同結(jié)構(gòu)的處理器核的指令集不同,需要生成在不同處理器核上執(zhí)行不同的執(zhí)行碼,因此編譯過程更加復(fù)雜,為了提高性能,對(duì)編譯優(yōu)化技術(shù)的要求也更高。多核處理器的編譯過程主要是代碼劃分、分別編譯、執(zhí)行代碼的組織。

    4.2 復(fù)雜軟件系統(tǒng)的安全性和可靠性

    所面臨的的三個(gè)挑戰(zhàn):需要開發(fā)相關(guān)的工程技術(shù)來幫助檢測(cè)和避免程序缺陷;安全風(fēng)險(xiǎn)-開發(fā)相關(guān)的策略檢測(cè)程序?qū)ν獠抗舻牡钟芰?;開發(fā)自動(dòng)的程序驗(yàn)證技術(shù)

    4.3 移動(dòng)領(lǐng)域的編譯技術(shù)

    隨著智能手機(jī)的迅速發(fā)展,移動(dòng)領(lǐng)域的編譯發(fā)展顯得尤為重要。利用交叉編譯技術(shù)來跨平臺(tái),將具備更強(qiáng)的競(jìng)爭(zhēng)優(yōu)勢(shì),未來或?qū)⒃趲追N主要的移動(dòng)設(shè)備開發(fā)技術(shù)中脫穎而出。

    5 總結(jié)

    編譯技術(shù)是人類智慧到機(jī)器執(zhí)行的橋梁,軟件到硬件層層推進(jìn)的銜接力量!

    [1]張亞娟、馮靈霞、王雪春.編譯技術(shù)的發(fā)展及應(yīng)用2010

    [2]陳火旺、劉春林、譚慶平、趙克佳、劉越.程序設(shè)計(jì)編譯原理1980

    猜你喜歡
    宿主機(jī)匯編語言代碼
    高等學(xué)校計(jì)算機(jī)專業(yè)課程教學(xué)改革實(shí)踐——以匯編語言與接口技術(shù)課程為例
    匯編語言與C語言的混合程序設(shè)計(jì)技術(shù)研究
    電子制作(2019年10期)2019-06-17 11:45:16
    創(chuàng)世代碼
    創(chuàng)世代碼
    創(chuàng)世代碼
    創(chuàng)世代碼
    虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室在農(nóng)村職校計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)教學(xué)中的應(yīng)用研究
    提高《匯編語言程序設(shè)計(jì)》教學(xué)效率的思考與實(shí)踐
    嵌入式計(jì)算機(jī)軟件測(cè)試關(guān)鍵技術(shù)的思考
    嵌入式計(jì)算機(jī)軟件測(cè)試關(guān)鍵技術(shù)研究
    怀仁县| 慈利县| 鸡泽县| 麻阳| 霍城县| 灌云县| 张家口市| 无棣县| 中卫市| 杨浦区| 加查县| 威宁| 辽阳市| 龙口市| 宜宾县| 麟游县| 突泉县| 安徽省| 桂林市| 富民县| 津南区| 萨迦县| 英吉沙县| 鹰潭市| 遵化市| 乐平市| 常州市| 锦州市| 瑞安市| 东台市| 交城县| 棋牌| 曲水县| 迁安市| 堆龙德庆县| 朝阳市| 阳谷县| 广饶县| 重庆市| 江阴市| 青川县|