編譯器
- 基于即時編譯的GNU Octave性能優(yōu)化*
n-Time)編譯器是提高程序運行效率的一種重要手段,當(dāng)源代碼被轉(zhuǎn)換為中間語言后,由JIT編譯器讀取全部或部分中間語言,并將其即時編譯成機(jī)器語言。機(jī)器語言可被緩存并在以后重用,這大大提升了JIT編譯器的效率。許多解釋型語言都具有成熟高效的JIT編譯器,例如Java虛擬機(jī)JVM(Java Virtual Machine)[1]和JavaScript語言的V8引擎[2]及Microsoft.NET Framework中的JIT編譯器[3]。一些成熟的編譯器框架
計算機(jī)工程與科學(xué) 2022年12期2022-12-22
- 基于XML的紅外發(fā)射編譯器設(shè)計
決傳統(tǒng)紅外發(fā)射編譯器無法實現(xiàn)多用戶編碼以及新增編碼格式較為復(fù)雜的問題,本文提出了一種基于XML的紅外發(fā)射編譯器的設(shè)計,該設(shè)計采用XML文件數(shù)據(jù)格式調(diào)用的方法,將不同類型的紅外發(fā)射碼以特定信息格式存儲在庫文件中,該格式中包含定制用戶碼信息,編譯器進(jìn)行編譯操作時直接調(diào)用XML文件庫中的配置信息及編碼數(shù)據(jù)信息即可完成一種紅外發(fā)射碼的編譯操作,實現(xiàn)了可定制化多用戶編碼及支持多種編碼格式的可擴(kuò)充性需求。近年來隨著物聯(lián)網(wǎng)的發(fā)展,智能家居展現(xiàn)出強(qiáng)勁的活力。智能遙控器作為
數(shù)字技術(shù)與應(yīng)用 2022年3期2022-04-14
- PowerPC處理器代碼執(zhí)行順序研究
現(xiàn)現(xiàn)代處理器和編譯器會對代碼的執(zhí)行順序進(jìn)行一定的調(diào)整和優(yōu)化。本文通過對處理器的架構(gòu)、流水線執(zhí)行方式以及編譯器的優(yōu)化原則等內(nèi)容進(jìn)行研究,經(jīng)過查閱相關(guān)手冊,通過在代碼中嵌入同步指令sync以及volatile關(guān)鍵字可以保證代碼嚴(yán)格按照順序執(zhí)行[1]。在進(jìn)行型號調(diào)試時,某總線時序要求先對地址A進(jìn)行寫操作,然后再對地址B和C分別進(jìn)行一次讀操作。即需要嚴(yán)格按照如下三行代碼順序執(zhí)行:由于CPU先執(zhí)行了讀操作,而后執(zhí)行了寫操作,與預(yù)期的執(zhí)行順序不一致,造成總線時序錯誤。
數(shù)字通信世界 2022年3期2022-04-01
- Java注解機(jī)制的應(yīng)用研究
術(shù);框架技術(shù);編譯器中圖分類號:TP311.1? ? ? 文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2022)34-0035-041 引言Java或Android的開發(fā)者對注解(Annotation) 機(jī)制一定不會陌生,在項目開發(fā)過程中,開發(fā)者會接觸到很多注解,如@Override、@Deprecated、@SuppressWarnings等,如果使用框架,可能會使用到注解@Controller、@Param、@Select等。目前關(guān)于注解原理的資料相對
電腦知識與技術(shù) 2022年34期2022-02-20
- 計算機(jī)代數(shù)系統(tǒng)的設(shè)計與實現(xiàn)
算機(jī)代數(shù)系統(tǒng)中編譯器的設(shè)計以及實現(xiàn)是最關(guān)鍵的步驟。2.1 計算機(jī)代數(shù)系統(tǒng)的設(shè)計特點現(xiàn)如今的計算機(jī)代數(shù)系統(tǒng),無論是在哪種界面中,只要是對用戶所輸入的指令進(jìn)行接受處理過程中,核心部位的編譯器起到了十分重要的作用,編譯器對指令的識別、分析、檢查、處理等步驟進(jìn)行精確的控制,除此之外還要進(jìn)行高精確度的整數(shù)處理以及符號處理等功能,并將這些功能對應(yīng)的指令進(jìn)行分配。而對于支撐編譯器的虛擬機(jī)機(jī)解釋器部分在計算機(jī)代數(shù)系統(tǒng)中只是以輔助的形式存在,在整個系統(tǒng)功能上并不占有主導(dǎo)作用
電子世界 2021年16期2021-09-26
- 編譯器中激進(jìn)蝴蝶優(yōu)化方法的研究與實現(xiàn)*
代碼,可以輔助編譯器進(jìn)行冗余代碼刪除操作。但是,受限于保守的分析手段,編譯器中仍有一部分冗余代碼無法被發(fā)現(xiàn),以至于無法對其優(yōu)化。而程序中的冗余代碼會致使布局優(yōu)化難以實施,甚至?xí)?dǎo)致嚴(yán)重的寄存器溢出等問題。編譯優(yōu)化是非常成熟的領(lǐng)域,國內(nèi)清華大學(xué)、中國科學(xué)院計算技術(shù)研究所以及國防科技大學(xué)和江南計算所等都有相關(guān)的研究和積累。例如,清華大學(xué)Zhou等人[1]將最小割法應(yīng)用于控制流圖形成的流網(wǎng)絡(luò)中,提出了最小割法的靜態(tài)單賦值部分冗余消除MC-SSAPRE(Min-C
計算機(jī)工程與科學(xué) 2021年6期2021-06-25
- 基于GCC編譯器向量化的數(shù)據(jù)結(jié)構(gòu)布局優(yōu)化研究
AOCC等主流編譯器中也提供了編譯器的自動向量化(Compiler Automatic Vectorization,CAV)支持,它們能夠分析應(yīng)用程序中的循環(huán),自動找到使用SIMD指令的機(jī)會[1].通過一個向量指令操作完成對多個數(shù)據(jù)元素的同時運算[2,3],可以在與標(biāo)量運算相同的時間內(nèi)執(zhí)行更多的操作,是提高程序性能的重要途徑之一.利用SIMD指令最常用的方法是編譯器的自動向量化,當(dāng)編譯器不能對代碼進(jìn)行向量化時,可嵌入向量化的匯編代碼,或調(diào)用一些高級的庫文件
綿陽師范學(xué)院學(xué)報 2021年5期2021-05-28
- 代碼生成器形式化驗證技術(shù)研究
從源代碼(傳統(tǒng)編譯器)中生成二進(jìn)制可執(zhí)行文件。另外,模型驅(qū)動工程技術(shù)的發(fā)展也需要使用代碼生成器,實現(xiàn)從模型語言到通用編程語言的轉(zhuǎn)化。然而,許多有錯誤的代碼生成器,特別是編譯器,它可以把一個正確的安全程序變成一個不正確的不安全的可執(zhí)行代碼。因此,應(yīng)該給予代碼生成器的V&V 以更多的關(guān)注。認(rèn)證機(jī)構(gòu)通常要求代碼生成器必須與它生成系統(tǒng)的部分有相同的安全級別。編譯器要求在語義上是透明的:編譯后的代碼應(yīng)該按照源程序的語義所規(guī)定的方式運行。然而,編譯器尤其是優(yōu)化編譯器是
儀器儀表用戶 2021年4期2021-04-19
- 編譯器的現(xiàn)狀與YC編譯器的分析
:本文通過介紹編譯器的現(xiàn)狀,并著重論述了三種編譯器的概念及缺點,引出YC編譯器的特點及優(yōu)勢,允許最終用戶直接對開發(fā)商提供的產(chǎn)品再次擴(kuò)展與開發(fā)。關(guān)鍵詞:編譯器;YC;分析;優(yōu)點編譯器是將“一種語言(通常為高級語言)”翻譯為“另一種語言(通常為低級語言)”的程序。C語言代碼主要是在特定詞匯照著特定格式排列組合而成的,方便程序員的識別與理解,可CPU卻無法直接讀懂C語言代碼,其往往只能讀懂二進(jìn)制形式的指令。因此,開發(fā)者必須設(shè)計出一個專門的工具,將程序員使用的C語
科技研究·理論版 2021年18期2021-04-18
- “編譯原理”課程教學(xué)改革探討
課程是一門介紹編譯器工作原理和方法的課程。它是高等學(xué)校培養(yǎng)計算機(jī)專業(yè)人才的主干課程之一,也是一門對理論、實踐要求都很高的課程。它既要求學(xué)生理解編譯原理、編譯系統(tǒng)結(jié)構(gòu)、各種編譯算法,又需要學(xué)生具備設(shè)計、完成、分析和維護(hù)編譯程序的初步能力。同時,“編譯原理”課程又是計算機(jī)專業(yè)中一門綜合性很強(qiáng)的專業(yè)課程,需要以多門前修課程為基礎(chǔ),如“數(shù)據(jù)結(jié)構(gòu)”“離散數(shù)學(xué)”“操作系統(tǒng)”“程序設(shè)計”“匯編語言”等等。據(jù)筆者了解,目前大多數(shù)“編譯原理”課程的內(nèi)容包括詞法分析(正則表達(dá)
梧州學(xué)院學(xué)報 2021年6期2021-04-11
- 面向理想性能空間的跨架構(gòu)編譯分析方法
ok.com)編譯器性能優(yōu)化是計算機(jī)系統(tǒng)結(jié)構(gòu)優(yōu)勢得以充分發(fā)揮的基礎(chǔ),是關(guān)乎整個系統(tǒng)功能與性能的重要環(huán)節(jié).編譯器優(yōu)化的實質(zhì)是“取眾人之長,補(bǔ)己之短”.一款高性能編譯器需要汲取其他諸多編譯器的長處,它的優(yōu)化契機(jī)和提升空間也往往源于對同期編譯器的優(yōu)勢挖掘.但是,面對眾多同期編譯器設(shè)計,選擇哪些作為參照物分析才能攫取更多收益是編譯器優(yōu)化分析最為關(guān)注的問題.Fig. 1 Interference with compiler performance by differ
計算機(jī)研究與發(fā)展 2021年3期2021-04-01
- C 語言程序的理解與編譯優(yōu)化
但實際上,有些編譯器進(jìn)行了優(yōu)化:先進(jìn)行兩次自增,然后再將兩個a 相加。還有其它依賴于編譯器的問題,出現(xiàn)在習(xí)題或思考題甚至考試題中。這種情況是應(yīng)該避免的,因此程序的運行結(jié)果是依賴于編譯器的,在不同的編譯器下運行結(jié)果可能不同。為了清楚的理解C 語言教學(xué)中存在的一些編譯相關(guān)的問題,使初學(xué)者編寫與不依賴于編譯器的C 語言程序,本文將列舉一些典型的C 語言示例程序,給出了它們在集成開發(fā)環(huán)境Eclipse + MinGW GCC、LCCWin32 以及在Visual
現(xiàn)代計算機(jī) 2020年18期2020-08-07
- C語言學(xué)習(xí)模式研究
徹。C語言手機(jī)編譯器的廣泛應(yīng)用,為愛好C語言的朋友們,提供了便利。隨時隨地學(xué)習(xí)C語言源代碼,更激發(fā)了朋友們的編程興趣。本文主要講解C語言新的學(xué)習(xí)模式。通過應(yīng)用新模式學(xué)習(xí)C語言,可以達(dá)到全面理解C語言精華,掌握重點知識,提高自學(xué)能力的效果。關(guān)鍵詞:C語言? 學(xué)習(xí)模式? 編譯器? 自學(xué)能力一、C語言學(xué)習(xí)模式概述C語言歷史悠久,2000年左右,筆者在上大學(xué)計算機(jī)科學(xué)與技術(shù)專業(yè)時,就有這門專業(yè)課。二十年后的今天,依舊作為專升本或考研的專業(yè)課之一,說明C語言是非常重
數(shù)碼世界 2020年7期2020-08-04
- 基于RISC-V GCC編譯器的指令延遲調(diào)度
。而這些恰恰是編譯器靜態(tài)指令調(diào)度策略中的核心影響因素。因此,如果借助于靜態(tài)調(diào)度策略,為當(dāng)前指令去權(quán)衡計算它需要等待的時間,適當(dāng)調(diào)整指令的位置,在指令排布過程中拉長它和前驅(qū)的距離,我們就能保證它在正確的時間完成譯碼以及到達(dá)執(zhí)行功能部件。綜上所述,雖然成熟的處理器大部分使用動態(tài)調(diào)度來避免流水線冒險,但是基于RISC-V 指令集的處理器目前尚未成熟,都處在研究設(shè)計階段,所以使用RISC-V ISA 的處理器研發(fā)時,為縮短研發(fā)周期和研發(fā)成本。靜態(tài)調(diào)度是解決流水線冒
電子技術(shù)與軟件工程 2020年8期2020-04-23
- Keil C51通用精確延時程序設(shè)計
身有關(guān)外,還與編譯器有非常重要的關(guān)系。本文以Keil C51為例,探討如何編制通用精確的延時程序。為獲得通用精確的延時程序,可通過編譯器合理配置和優(yōu)化代碼編寫兩方面來達(dá)到目的。一、模塊化編程采用模塊化編程,將常用延時函數(shù)程序封裝為獨立模塊。項目中需要時僅需調(diào)用延時程序頭文件并將C語言源文件添加到項目中即可,便于修改和維護(hù)。同時模塊化也有利于在配置編譯器時有針對性對該模塊進(jìn)行相應(yīng)配置。二、合理配置編譯器對于Keil C51編譯器來說,可以從“存儲器類型及存儲
科技風(fēng) 2020年10期2020-04-10
- 一種針對大規(guī)模CGRA的編譯器后端設(shè)計
大,對CGRA編譯器的后端設(shè)計帶來了更大的挑戰(zhàn)[2-3]。編譯器后端負(fù)責(zé)把前端生成的程序中間表示(IR)轉(zhuǎn)化為最終目標(biāo)CGRA指令集系統(tǒng)的配置包,并盡可能保證應(yīng)用在CGRA上的高效運行。針對大規(guī)模CGRA的諸多架構(gòu)新特性,需要設(shè)計一套新的編譯器后端流程。1 大規(guī)模粗粒度可重構(gòu)架構(gòu)通過RTL實現(xiàn)和測試,實驗證明8×8是目前28nm半導(dǎo)體工藝下較合適的PEA規(guī)模。同時,為了進(jìn)一步提高CGRA的算力,PEA的數(shù)量也將進(jìn)一步擴(kuò)大。本文所針對的大規(guī)模CGRA共包含1
現(xiàn)代計算機(jī) 2020年6期2020-04-01
- 方舟編譯器初探*
龔宇潔方舟編譯器初探*龔宇潔(武漢城市職業(yè)學(xué)院,湖北 武漢 430070)2019-04,華為首次公開了自主研發(fā)的方舟編譯器,2019-08-31開源編譯器框架代碼,從華為的設(shè)計思想和框架設(shè)計來看,方舟編譯器將會在業(yè)界帶來一場安卓性能革命。作為一名Android開發(fā)者,對方舟有限的資源和開源內(nèi)容進(jìn)行了學(xué)習(xí)和解讀,結(jié)合安卓編譯器發(fā)展的研究,對方舟編譯器進(jìn)行了初步的探索。方舟編譯器;Android;多語言設(shè)計;設(shè)計方案1 概述2019-04,華為舉行了P30手
科技與創(chuàng)新 2019年23期2019-12-19
- 安卓性能革命?華為方舟編譯器解密
碼的轉(zhuǎn)換,是由編譯器來完成的,它的角色比較接近現(xiàn)實中的翻譯,因為我們?nèi)四X(類似安卓手機(jī)的CPU)不懂外語,想要和外國人交流的話就需要借助翻譯(即編譯器),將外語轉(zhuǎn)換為我們可以理解的母語。好的翻譯可以影響雙方交流的流暢度,而一個好的編譯器同樣直接影響著手機(jī)系統(tǒng)和軟件的運行效率。方舟編譯器為安卓加速此次華為開發(fā)的方舟編譯器是怎樣提高手機(jī)系統(tǒng)效率的呢?開發(fā)安卓應(yīng)用目前用得最多的是Java,它所創(chuàng)建的源文件經(jīng)過編譯生成Class.dex文件,最后被打包成DEX字節(jié)
電腦愛好者 2019年11期2019-10-30
- 運行速度大突破華為《方舟編譯器》詳解
——“華為方舟編譯器”。據(jù)介紹,華為《方舟編譯器》可以讓安卓性能突飛猛進(jìn)。近日,華為王成錄博士對《方舟編譯器》的原理進(jìn)行了講解,表示華為從2009年就創(chuàng)建編譯組,期間推出自研編譯器HCC、編程語言CM等,一直到如今推出了《方舟編譯器》。什么是編譯器編譯器是連接人類世界與機(jī)器世界之間的一座橋梁,同時也扮演著“翻譯者”的角色。它將程序員使用的高級語言翻譯成機(jī)器能明白的機(jī)器碼,從而使得手機(jī)能夠聽懂并執(zhí)行人類的指令?,F(xiàn)有的安卓系統(tǒng)主要是在手機(jī)上進(jìn)行編譯,往往有部分
計算機(jī)與網(wǎng)絡(luò) 2019年9期2019-10-21
- 堆棧機(jī)器簡單編譯器在Isabelle/HOL中的驗證
機(jī)器的特點,其編譯器(compiler)也相比其他結(jié)構(gòu)機(jī)器的編譯器要簡單、快速.形式化方法(formal methods)是用于計算機(jī)軟件工程和硬件工程的開發(fā)和驗證技術(shù). 基于數(shù)學(xué)分析,它有助于保證設(shè)計的可靠性和魯棒性. 如今,借助內(nèi)置的決策程序和定理證明器,越來越多的人開始使用交互式定理證明(Interactive Theorem Proving)工具來對設(shè)計進(jìn)行形式化驗證.本文基于Isabelle/HOL對堆棧機(jī)器的簡單編譯器進(jìn)行形式化驗證,證明對于由
常熟理工學(xué)院學(xué)報 2019年5期2019-09-24
- 快速掌握編譯器設(shè)計方法
]要提供較好的編譯器[1]。軟件開發(fā)商為我們提供了各種平臺的不同語言[9]的編譯器,但有些設(shè)備(如手機(jī)或 PAD)的編譯器能力較弱,需要后期的開發(fā)者對其進(jìn)行改進(jìn)或重新編寫。簡單講,編譯器就是將"一種語言(通常為高級語言)"翻譯為"另一種語言(通常為低級語言)"的程序。其中主要涵蓋了最重要的詞法分析和語法分析過程,再之后進(jìn)行語義分析生成中間代碼及優(yōu)化,生成目標(biāo)代碼。因此,寫好一個編譯器程序的前提是要了解編譯器的運行原理[4],并掌握它的詞法分析技術(shù)與語法分析
軟件 2018年5期2018-06-14
- 基于Cygwin的編譯工具鏈的使用介紹
、交叉編譯概述編譯器常分類為: “本地”編譯器:生成用于它本身處計算機(jī)和操作系統(tǒng)相同的環(huán)境下運行的目標(biāo)代碼。 交叉編譯器:生成用于其他平臺上運行的目標(biāo)代碼,對新硬件平臺非常有用。 三、開發(fā)環(huán)境的建立GNU工具基于Linux環(huán)境。在Windows下使用它方式:用終端軟件登陸Linux服務(wù)器;安裝虛擬機(jī)和Linux系統(tǒng); 安裝Linux模擬器;可單機(jī)運行,占用資源少,但配置麻煩。3.1 安裝CygwinCygwin 是一套可運行在Windows上的Linux
科學(xué)與財富 2018年8期2018-05-09
- Renesas Synergy增加對IAR Systems先進(jìn)編譯器技術(shù)的支持
加更多功能。該編譯器生成的代碼執(zhí)行速度非??欤贓EMBC Coremark等知名速度基準(zhǔn)測試中均榜上有名。代碼執(zhí)行速度越快,MCU處于低功率模式的時間就越長,因此可延長電池壽命。眾多物聯(lián)網(wǎng)設(shè)備用Synergy MCU監(jiān)測或控制周圍環(huán)境以及住宅/樓宇/工業(yè)自動化系統(tǒng)、家電、能源管理系統(tǒng)以及醫(yī)療保健設(shè)備的各種組件。此前,e2 studio用戶會用標(biāo)準(zhǔn)GCC GNU編譯器開發(fā)應(yīng)用。通過此次與IAR Systems合作,瑞薩為用戶增加了直接在e2 studio環(huán)
單片機(jī)與嵌入式系統(tǒng)應(yīng)用 2018年4期2018-04-17
- 嵌入式Java編譯器的研究與設(shè)計*
片機(jī)的Java編譯器。而作為目前國內(nèi)使用最多,應(yīng)用最廣的嵌入式內(nèi)核,為了實現(xiàn)與Internet的連接,依然沿用傳統(tǒng)的設(shè)計方法,十分費時費力,所以只有極少數(shù)實力雄厚的公司和技術(shù)精湛的個人才能對其進(jìn)行開發(fā)[1]。因此將Java語言引入MCS-51等廉價8位單片機(jī)的應(yīng)用設(shè)計,可讓國內(nèi)嵌入式系統(tǒng)技術(shù)和家庭信息化技術(shù)跟上國外技術(shù)發(fā)展的潮流,使廣大的中小型公司和初入門的嵌入式系統(tǒng)設(shè)計者都能很方便地實現(xiàn)與網(wǎng)絡(luò)的連接,是一件非常重要和非常緊迫的工作。本文的目標(biāo)是針對國內(nèi)外
單片機(jī)與嵌入式系統(tǒng)應(yīng)用 2018年4期2018-04-11
- 遞歸對自頂向下語法分析的影響
影響。關(guān)鍵詞:編譯器 ;語法分析;遞歸;左遞歸;右遞歸中圖分類號:TP314.51 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)04-0231-02語法分析是編譯程序的核心部分,語法分析方法有多種,每一種語法分析方法只能處理某一種形式的文法,為了適應(yīng)所選擇的語法分析方法,常常需要對原始文法進(jìn)行改造。比如含有左遞歸文法或二義性文法將無法采用自頂向下的方法來進(jìn)行語法分析,本文從遞歸的角度出發(fā),討論遞歸對自頂向下語法分析的影響。1 遞歸的定義遞歸作為
電腦知識與技術(shù) 2018年4期2018-03-19
- 基于OSCAR編譯器實現(xiàn)汽車發(fā)動機(jī)控制軟件在多核處理器中的并行化
基于OSCAR編譯器實現(xiàn)汽車發(fā)動機(jī)控制軟件在多核處理器中的并行化對未來汽車的要求是更安全、更舒適和更節(jié)能,而這些要求可以通過具有增強(qiáng)電控單元的集成控制系統(tǒng)來實現(xiàn),或通過實時控制系統(tǒng)(如發(fā)動機(jī)控制)和增強(qiáng)的信息系統(tǒng)(如人類和其它車輛的識別,對包括自然災(zāi)害場合在內(nèi)的交通狀況導(dǎo)航)來實現(xiàn)。日臻完善的汽車發(fā)動機(jī)控制算法要求功能較強(qiáng)的微處理器來滿足實時限制,而利用多核處理器是實現(xiàn)下一代汽車綜合控制系統(tǒng)的很有前途方法。但對汽車控制軟件實施并行化處理來減少響應(yīng)時間一直都
汽車文摘 2017年3期2017-12-08
- Cmd模式下帶有package的Java程序的編譯和運行
ackage;編譯器;完全路徑在開發(fā)復(fù)雜的Java項目時,程序員很難確保自己選用的類名和其他程序員選擇的類名完全不同。為避免類名的沖突,Java使用包(package)對類進(jìn)行統(tǒng)一管理。Java中的包,相當(dāng)于文件中的目錄,目錄名即是包名,如目錄結(jié)構(gòu)為ch5/bean,包名即為ch5.bean;在bean目錄中創(chuàng)建java類,并在文件的開頭添加package ch5.bean;工程根目錄中的java類文件未特別指定包名的情況下,即不使用package語句時,
科技風(fēng) 2017年12期2017-10-21
- Fedora 操作系統(tǒng)安裝Gamit詳細(xì)過程
t軟件及gcc編譯器軟件了,且對gamit軟件安裝步驟的介紹往往存在不夠詳細(xì)和不夠準(zhǔn)確的問題,筆者從2011年開始接觸gamit軟件,沒有采用如redhat9等老linux系統(tǒng),而是使用了代表linux系統(tǒng)最新發(fā)展成果的Fedora15/16/17系列操作系統(tǒng)。使用新的系統(tǒng)和軟件意味著一定會遇到之前可能沒有出現(xiàn)過的新問題,這需要我們進(jìn)行探索和解決。Fedora Linux/Unix操作系統(tǒng)是一種新銳而且成熟的Linux操作系統(tǒng),曾由RedHat公司支持現(xiàn)已
科技視界 2017年14期2017-10-09
- 魂芯DSP上復(fù)數(shù)類型的支持和優(yōu)化①
的復(fù)數(shù)指令,而編譯器不能直接利用這些復(fù)數(shù)指令來提升編譯性能.因此針對魂芯DSP芯片提供了大量的復(fù)數(shù)類操作指令的特點,在傳統(tǒng)開源編譯器Open64的編譯框架基礎(chǔ)上進(jìn)行研究,實現(xiàn)了復(fù)數(shù)作為編譯器基礎(chǔ)類型和復(fù)數(shù)運算操作的支持.同時,通過識別特定的復(fù)數(shù)類操作的模式利用魂芯DSP上的復(fù)數(shù)類指令對程序編譯優(yōu)化.實驗結(jié)果表明,該實現(xiàn)方案在魂芯DSP編譯器上對復(fù)數(shù)程序優(yōu)化后能夠取得平均5.28的加速比.編譯優(yōu)化;分簇體系DSP;復(fù)數(shù)指令;Open64編譯器復(fù)數(shù)分為實部和虛
計算機(jī)系統(tǒng)應(yīng)用 2017年9期2017-09-15
- Clang編譯平臺優(yōu)勢分析
性的c家族語言編譯器。Clang不僅在編譯速度上普遍比傳統(tǒng)的編譯器快,并且其基于庫的體系結(jié)構(gòu),使得Clang易于剪裁、體量輕盈,同時,還具有強(qiáng)大的動、靜態(tài)分析功能,發(fā)布不到十年,已經(jīng)得到了軟件開發(fā)和維護(hù)專業(yè)人員的廣泛認(rèn)可。關(guān)鍵詞:軟件開發(fā);編譯器;語法分析;抽象語法樹0引言Clang是LLVM項目的一個子項目。LLVM的命名最早源自于底層虛擬機(jī)(Low Level Virtual Machine)的縮寫,但是其工作卻并未直接針對傳統(tǒng)的虛擬機(jī),而是旨在提供一
智能計算機(jī)與應(yīng)用 2017年3期2017-07-15
- 棧在編譯程序語法分析中的應(yīng)用
出;語法分析;編譯器中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)17-0067-021概述在計算機(jī)算法與數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)中,棧(stack)是一種非常重要的線性結(jié)構(gòu),而棧是限定僅在表尾進(jìn)行插人和刪除操作的一種線性表。在棧中,允許進(jìn)行插人和刪除的一端稱為棧頂,不允許插入和刪除的一端稱為棧底,棧的修改是按后進(jìn)先出的原則進(jìn)行的,因此棧又稱為后進(jìn)先出的線性表,簡稱LIFO線性表。棧在計算機(jī)科學(xué)領(lǐng)域具有廣泛的應(yīng)用,如求表達(dá)式的值
電腦知識與技術(shù) 2017年17期2017-07-14
- 基于龍芯3A的編譯器及操作系統(tǒng)深度優(yōu)化
基于龍芯3A的編譯器及操作系統(tǒng)深度優(yōu)化方法,使用loongson3a指令集(mips64r2是loongson3a指令集的子集)重新編譯了Fedora21(即Loongnix1.0)操作系統(tǒng)。經(jīng)過試驗驗證,優(yōu)化后的操作系統(tǒng)性能大幅度提升,部分函數(shù)性能提升6倍以上。關(guān)鍵詞:龍芯處理器;編譯器;操作系統(tǒng);深度優(yōu)化;基礎(chǔ)指令集 文獻(xiàn)標(biāo)識碼:A中圖分類號:TP302 文章編號:1009-2374(2017)08-0044-02 DOI:10.13535/j.cnk
中國高新技術(shù)企業(yè) 2017年9期2017-06-01
- 結(jié)構(gòu)體數(shù)據(jù)對齊方法的研究
境均是在32位編譯器的編譯環(huán)境中,一般編譯器默認(rèn)對齊方式是4字節(jié)??偨Y(jié)結(jié)構(gòu)體的數(shù)據(jù)對齊方式滿足條件:1、結(jié)構(gòu)體變量的首地址能夠被其最寬基本類型成員的大小所整除。2、結(jié)構(gòu)體每個成員相對于結(jié)構(gòu)體首地址的偏移量(offset)都是成員自身大小的整數(shù)倍,如有需要編譯器會在成員之間加上填充字節(jié)。3、結(jié)構(gòu)體的總大小為結(jié)構(gòu)體最寬基本類型成員大小的整數(shù)倍,如有需要編譯器會在最末一個成員之后加上填充字節(jié)。三、手動對齊方式如果編譯器自動實現(xiàn)結(jié)構(gòu)體對齊,我們就稱為自動對齊,與之
未來英才 2017年7期2017-05-19
- 可擴(kuò)展語言編譯器的設(shè)計
0)可擴(kuò)展語言編譯器的設(shè)計葛寒松(商丘師范學(xué)院 信息技術(shù)學(xué)院,河南 商丘 476000)傳統(tǒng)的編譯器設(shè)計和實現(xiàn)的方法論限制了編程語言的開放性與可擴(kuò)展性.一般在語言徹底定型后開始制作編譯器,一旦語言擴(kuò)展成新的語言,就需要重新開發(fā)一個編譯器.可擴(kuò)展語言編譯器的設(shè)計過程中,考慮語言的進(jìn)一步擴(kuò)展,編譯器開發(fā)也會為進(jìn)一步擴(kuò)展預(yù)留一定的接口.開發(fā)過程中,嚴(yán)格遵守軟件開發(fā)的基本法則,應(yīng)用軟件工程中的增量模型,進(jìn)行迭代開發(fā),開發(fā)過程通過利用面向?qū)ο笏枷胧钩绦蚓哂懈邤U(kuò)展性,
商丘師范學(xué)院學(xué)報 2017年6期2017-04-14
- 編譯程序語法分析句柄問題分析與探討
作用。關(guān)鍵詞:編譯器; 自底向上語法分析;句柄;棧;歸約中圖分類號:TP314.51 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)33-0110-02語法分析是編譯程序的核心部分,其任務(wù)是檢查詞法分析器輸出的單詞序列是否是源語言中的句子,亦即是否符合源語言的語法規(guī)則。完成句型的分析,主要有兩種方式:一種是使用推導(dǎo)方式推導(dǎo)出句子,即自頂向下的語法分析方法;另一種是利用歸約方式識別句子,即自底向上的語法分析方法。本文以編譯程序自底向上語法分析為主線
電腦知識與技術(shù) 2016年33期2017-03-21
- 高速SRAM編譯器時序算法
?高速SRAM編譯器時序算法黃奔1,彭力2,吳海宏2 (1.江南大學(xué),江蘇無錫214122;2.中國電子科技集團(tuán)公司第58研究所,江蘇無錫214035)介紹了一種通用嵌入式存儲器(SRAM)編譯器時序建模的方法。通過對存儲器關(guān)鍵路徑延時分析,時序模型采用分段拓展的建模方式,用Rows、Columns來對SRAM進(jìn)行分段,分別討論各段對時序的影響。采用雙線性插值法對模型進(jìn)一步優(yōu)化,較大程度上提高了模型的精度。最后與ARM公司0.13 μm工藝的存儲編譯器進(jìn)行
電子與封裝 2016年7期2016-09-13
- 淺析C語言教學(xué)問題
鍵詞:C語言;編譯器;教學(xué)問題;教學(xué)改革中圖分類號:G424 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)06-0143-02Abstract:C Language is a good structured programming language. At present, it is an important basic and practical course on computer, information management and
電腦知識與技術(shù) 2016年6期2016-06-06
- Microchip為MPLAB XC系列專業(yè)版編譯器推出低成本可續(xù)訂包月許可證
XC系列專業(yè)版編譯器推出低成本可續(xù)訂包月許可證Microchip Technology Inc.(美國微芯科技公司)為其獲獎的MPLAB XC系列C編譯器專業(yè)版推出了靈活的低成本可續(xù)訂包月許可證。MPLAB XC8、XC16和XC32編譯器可降低復(fù)雜度,為所有1400余款PIC單片機(jī)(MCU)和dsPIC數(shù)字信號控制器(DSC)提供極佳的執(zhí)行速度和代碼大小,并有三種優(yōu)化級別以供選擇——免費版、標(biāo)準(zhǔn)版和專業(yè)版(PRO)。有了Microchip這種按月訂購模式
單片機(jī)與嵌入式系統(tǒng)應(yīng)用 2016年3期2016-03-13
- C++與Java軟件重量級靜態(tài)檢查
Fortify編譯器的配置、編譯腳本編寫和在ICP-CI任務(wù)管理頁面上配置檢查任務(wù)。介紹了靜態(tài)檢查處理過程,分析了出現(xiàn)各種常見問題的原因并提出了相應(yīng)的解決方案。給出了一個軟件產(chǎn)品中C/C++代碼模塊和Java代碼模塊的重量級靜態(tài)檢查應(yīng)用案例。工作實踐表明,進(jìn)行重量級靜態(tài)檢查有助于及時發(fā)現(xiàn)并解決C/C++和Java軟件源代碼的各種缺陷和安全漏洞,從而提高軟件產(chǎn)品的質(zhì)量和安全性。Windows操作系統(tǒng);靜態(tài)檢查;持續(xù)集成;安全漏洞0 引 言Windows操作系
計算機(jī)技術(shù)與發(fā)展 2016年8期2016-02-23
- 淺析C語言教學(xué)問題
鍵詞:C語言;編譯器;教學(xué)問題;教學(xué)改革中圖分類號:G424 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)06-0143-02On the Teaching of C LanguageWANG Xiao-li, HUANG Yan(Henan Information Engineering College, Zhengzhou 450000, China)Abstract:C Language is a good structured prog
電腦知識與技術(shù) 2015年6期2015-12-07
- Identification and quantitative mRNA analysis of a novel splice variant of GPIHBP1 in dairy cattle
,使用make編譯器編譯程序。我們采用的仿真平臺如表3所示,測試鏈參數(shù)如表4所示。Figure 4 Predicted tertiary structures of bovine and human GPIHBP1.The reported human CD59 was used as the reference to obtain predicted GPIHBP1 tertiary structures by the SWISS MODEL metho
Journal of Animal Science and Biotechnology 2015年1期2015-11-22
- 基于C6000系列DSP的算法優(yōu)化研究
n,開發(fā)者配置編譯器并引導(dǎo)編譯器的整個編譯過程,可以進(jìn)行代碼級和文件級優(yōu)化;Intrinsic operations,C6000系列編譯器固有的庫以及inline函數(shù)。DSP C6000 Core簡化的加載/存儲架構(gòu)圖1描述的是一種簡化的加載/存儲架構(gòu),其中包含負(fù)責(zé)執(zhí)行所有指令的處理器單元和大量的用于存儲指令執(zhí)行過程中的操作數(shù)和數(shù)據(jù)的寄存器。所有將要執(zhí)行的指令從內(nèi)存中獲取(指令的地址存儲在程序計數(shù)寄存器中)并按照順序送入處理器單元。數(shù)據(jù)可以通過加載指令從內(nèi)
中國科技信息 2015年1期2015-11-16
- ARM 攜手Green Hills為車用領(lǐng)域提供更佳性能
5處理器優(yōu)化的編譯器,為車用電子的性能樹立新標(biāo)桿,從而使Cortex-R5處理器能夠通過比其他現(xiàn)有微控制器解決方案更具成本效益的方式,滿足車用領(lǐng)域最艱巨的的需求。Green Hills編譯器已獲得EEMBC驗證實驗室的認(rèn)證,其中在飛索半導(dǎo)體基于Cortex-R5的車用微控制器上,Green Hills編譯器2015.1版獲得1.01EEMBC Automarks/MHz的性能高分,較前一版本的性能提升了30%。Green Hills開發(fā)工具提供強(qiáng)大的功能性
單片機(jī)與嵌入式系統(tǒng)應(yīng)用 2015年5期2015-03-25
- 彈載計算機(jī)程序優(yōu)化研究
序的執(zhí)行效率、編譯器優(yōu)化能力、程序并行設(shè)計等方向。本文從一般性的程序運行切入,分析了影響程序執(zhí)行效率的因素、編譯器優(yōu)化的局限性,從程序定義、減少函數(shù)調(diào)用、提高循環(huán)效率、減少不必要內(nèi)存訪問等角度介紹了一些提高程序執(zhí)行效率的程序設(shè)計方法。關(guān)鍵詞:彈載計算機(jī);程序優(yōu)化;編譯器;代碼移動中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1673-5048(2014)05-0037-040 引 言在嵌入式領(lǐng)域,實時性一直是衡量系統(tǒng)性能的一項重要指標(biāo),它主要取決于系統(tǒng)
航空兵器 2014年5期2015-02-10
- HotSpot虛擬機(jī)類加載及優(yōu)化的原理與實現(xiàn)
)1 引言即時編譯器編譯性能的好壞及代碼優(yōu)化程度的高低作為衡量商用java虛擬機(jī)的關(guān)鍵技術(shù)指標(biāo),同時也是虛擬機(jī)技術(shù)水平的最好體現(xiàn)。由于java虛擬機(jī)規(guī)范知識規(guī)定了字節(jié)碼指令的動作,但并沒有規(guī)定虛擬機(jī)的實現(xiàn)方式。執(zhí)行引擎的核心動作就是不停讀取字節(jié)碼,解釋(編譯)執(zhí)行,直到虛擬機(jī)進(jìn)程的退出為止。Sun HotSpot虛擬機(jī)執(zhí)行引擎為解釋器與編譯器共存的架構(gòu)方式,內(nèi)部的編譯器是即時編譯器主要由Client Compiler和Server Compiler構(gòu)成,解
山東工業(yè)技術(shù) 2014年21期2014-12-24
- C語言編譯器的設(shè)計與實現(xiàn)
中。2.C語言編譯器前端設(shè)計編譯是從源代碼到能直接被計算或者虛擬機(jī)執(zhí)行的目標(biāo)代碼的翻譯過程。一般而言,編譯器包含著入口點的地址和名字、及外部調(diào)用機(jī)器代碼。編譯器是程序員使用的關(guān)鍵工具,以下針對編譯器的前端設(shè)計進(jìn)行具體的分析:(1)詞法分析。這個階段主要是根據(jù)相應(yīng)的詞法規(guī)則,將源程序中的各個記號一一標(biāo)記出來,其中,每一個記號所代表著一類的單詞,通常情況下,主要涉及到的記號常見的有標(biāo)識符、關(guān)鍵字、特殊符號、字面量等等,利用詞法分析器,輸入源程序,輸出識別記號符
吉林廣播電視大學(xué)學(xué)報 2014年4期2014-09-30
- 一種簡化魯棒的ARM-Linux交叉編譯器構(gòu)建方法*
ux平臺的交叉編譯器是必備的工具。最常用的針對ARM-Linux平臺的交叉編譯器是在Linux環(huán)境下的ARM-Linux交叉編譯器。構(gòu)建ARM-Linux交叉編譯器可以利用Crosstool腳本工具構(gòu)建,也可以采用分步方式構(gòu)建。與利用Crosstool腳本工具構(gòu)建交叉編譯器的方式相比,分步方式較復(fù)雜,但分步方式的構(gòu)建過程完全可控,具有高度的可定制性,可以構(gòu)建出符合特定要求的交叉編譯器。因此,利用分步式構(gòu)建的交叉編譯器可以和目標(biāo)機(jī)有非常好的吻合,具有高可靠性
- 一種嵌入式NC代碼編譯器的設(shè)計*
嵌入式NC代碼編譯器的設(shè)計*李善鋒,劉敬猛,陳柏成,徐 東(北京航空航天大學(xué)自動化科學(xué)與電氣工程學(xué)院,北京 100191)針對嵌入式數(shù)控系統(tǒng)運行過程中對NC代碼解釋的高準(zhǔn)確率與高效率的要求,基于自頂向下的遞歸下降分析法,提出一種應(yīng)用于嵌入式數(shù)控系統(tǒng)NC代碼編譯器的設(shè)計方法。文章主要分別從詞法分析、語法分析和解釋執(zhí)行等方面進(jìn)行編譯器的設(shè)計與實現(xiàn)。實際運行結(jié)果表明:該方法能夠高效地構(gòu)建編譯器,可快速、準(zhǔn)確地對NC代碼進(jìn)行編譯,具有良好的可移植性;為嵌入式數(shù)控系
組合機(jī)床與自動化加工技術(shù) 2012年2期2012-09-12
- PGI發(fā)售可支持 OpenACC的PGI Accelerator編譯器
計算(HPC)編譯器及開發(fā)工具供應(yīng)商Portland Group宣布,可支持新的圖形處理其 (GPU)和圖形加速器指令式編程模型OpenACC?1.0標(biāo)準(zhǔn)的PGI AcceleratorTMFortran和 C編譯器已經(jīng)上市。OpenACC?編程標(biāo)準(zhǔn)讓程序員在所寫程序中提供暗示或指示。OpenACC標(biāo)準(zhǔn)由PGI、Cray和NVIDIA 3家公司聯(lián)合創(chuàng)立,同時得到CAPS的支持,于2011年11月在 SC11大會上首次發(fā)布,與NVIDIA?CUDA?并行編程
電子設(shè)計工程 2012年15期2012-03-30
- 優(yōu)化編譯器的設(shè)計
■郭靜編譯器的研究綜合了計算機(jī)科學(xué)中的操作系統(tǒng)、計算機(jī)系統(tǒng)結(jié)構(gòu)、圖算法、人工智能等眾多領(lǐng)域,因此對編譯器的研究要求研究者在各方面都有很深的理解。編譯器的研究可以追溯到上世紀(jì)50年代。從Fortran語言出現(xiàn)的那天起,研究者們就在不斷地探索怎樣使高級語言編譯后能夠和機(jī)器語言編寫的程序具有相當(dāng)?shù)男省ortran語言的成功很大程度上得益于它從一開始就有很好的編譯器。隨著越來越多的高級語言的出現(xiàn),計算機(jī)的應(yīng)用領(lǐng)域越來越廣泛,編譯器所扮演的角色顯得越來越重要。隨
群文天地 2011年14期2011-04-20
- 嵌入式開發(fā)需要的不僅僅是處理器
理器;MCU;編譯器對于處理器和單片機(jī),選擇標(biāo)準(zhǔn)變得更加抽象和復(fù)雜。由于單片機(jī)可編程,正常的電氣參數(shù)選擇標(biāo)準(zhǔn)必須要考慮器件執(zhí)行某項具體任務(wù)時的速度和效率。從表面上看,單片機(jī)性能取決于處理器內(nèi)核,但事實上并非完全如此。處理器性能的確與處理器內(nèi)核息息相關(guān),但同時它還取決于其他因素,包括集成度、支持處理器內(nèi)核的外設(shè)、采用的開發(fā)工具、要執(zhí)行的任務(wù)、工程師發(fā)揮特定單片機(jī)性能的技巧以及系統(tǒng)成本,等等。圖1中的幾個示例顯示了在不改變處理器內(nèi)核的前提下,采用編譯器技術(shù)所帶
電子產(chǎn)品世界 2010年9期2010-10-18
- 嵌入式軟件優(yōu)化的認(rèn)識與實踐
1 自動優(yōu)化C編譯器是嵌入式系統(tǒng)程序員的基本工具,正是它將程序員的思想和算法轉(zhuǎn)換成處理器可以執(zhí)行的機(jī)器碼。所有的C編譯器都能夠執(zhí)行各種類型的優(yōu)化。以gcc編譯器為例,除了常見的-O1、-O2、-O3優(yōu)化選項以外,還可以根據(jù)需要打開其他優(yōu)化開關(guān),它們的含義如表1所列。表1 gcc編譯器優(yōu)化選項含義在編碼過程中,程序員還應(yīng)該盡可能地為編譯器提供更多的信息,協(xié)助編譯器更好地進(jìn)行優(yōu)化。程序員與編譯器主要通過C語言關(guān)鍵字進(jìn)行交流。以C標(biāo)準(zhǔn)庫函數(shù)strcpy為例,它的
單片機(jī)與嵌入式系統(tǒng)應(yīng)用 2010年3期2010-08-14
- 編譯器無關(guān)性編碼在微控制器中的優(yōu)勢
間和減少精力的編譯器無關(guān)性編碼卻往往最易被忽略。對任何項目來說,為微控制器編寫編譯器無關(guān)性代碼可以獲得更大的靈活性。工欲善其事,必先利其器編譯器無關(guān),使得設(shè)計者能夠基于他們的項目需求選擇合適的編譯器。通過對比不同的編譯器,可以清楚地看出相同條件下不同工具鏈的性能差異。每個編譯器都具有與其他編譯器相區(qū)別的自身特性。有的編譯器優(yōu)化匯編功能,使生成的代碼非常小;有的更專注于執(zhí)行速度;也有的根本不進(jìn)行任何優(yōu)化。在微控制器選擇過程中,如果應(yīng)用程序代碼的大小是最終的決
單片機(jī)與嵌入式系統(tǒng)應(yīng)用 2010年2期2010-07-02
- 嵌入式軟件設(shè)計中編寫可移植的C代碼
匯編器語法、C編譯器實現(xiàn)、操作系統(tǒng)接口都會對代碼的可移植性產(chǎn)生不同程度的影響。首先,匯編代碼是不可移植的,例如ARM匯編語言編寫的代碼不可能直接運行在x86處理器上,這是因為ARM和x86的指令/機(jī)器碼不同。其次,雖然MASM和NASM匯編器都可以生成x86機(jī)器碼,但是由于它們的語法并不相同,因此也不能直接重用。最后,不同操作系統(tǒng)的系統(tǒng)調(diào)用/應(yīng)用程序編程接口相差甚遠(yuǎn),也嚴(yán)重地阻礙了代碼重用。C標(biāo)準(zhǔn)通過規(guī)定C編譯器的行為為最大化代碼重用提供了條件,但這并不等
單片機(jī)與嵌入式系統(tǒng)應(yīng)用 2010年8期2010-06-22
- NI LabVIEW 2010優(yōu)化編譯器 加速代碼執(zhí)行
效原因之一就是編譯器。編譯器簡化了諸如內(nèi)存分配和線程管理等任務(wù)。在過去十幾年,編譯器變得更加聰明。利用LabVIEW 2010,編譯器數(shù)據(jù)流中間碼被進(jìn)一步優(yōu)化。LLVM,一種開放源代碼的編譯器架構(gòu),被添加到軟件的編譯流以加速代碼執(zhí)行。NI進(jìn)行了一系列基準(zhǔn)測試,從真實客戶應(yīng)用到低級功能,新的編譯器在基準(zhǔn)測試中性能平均提高20%。在推出LabVIEW 2010的同時,NI也推出了LabVIEW附加開發(fā)者程序包,為數(shù)千合作伙伴擴(kuò)展LabVIEW平臺、增加定制功能
電子技術(shù)應(yīng)用 2010年9期2010-04-05
- 面向?qū)嶒灲虒W(xué)的可拆卸小型編譯器設(shè)計
學(xué)的可拆卸小型編譯器——SMini。詳細(xì)介紹了SMini的系統(tǒng)結(jié)構(gòu)、設(shè)計方法與實現(xiàn)技術(shù)?!娟P(guān)鍵詞】 編譯原理;編譯器;實驗教學(xué);可拆卸【中圖分類號】G40-057【文獻(xiàn)標(biāo)識碼】A 【論文編號】1009—8097(2009)06—0111—03 編譯系統(tǒng)作為計算機(jī)系統(tǒng)最基本的組成部分,已發(fā)展成為一門具有完整的理論、方法和技術(shù)的計算機(jī)學(xué)科[1][2]。國內(nèi)外高校都將“編譯原理”列為計算機(jī)專業(yè)的主要課程,它對提高學(xué)生軟件設(shè)計素養(yǎng),認(rèn)識計算機(jī)信息處理本質(zhì)起著重要作
現(xiàn)代教育技術(shù) 2009年6期2009-06-17