資料載入處理中...
跳到主要內容
臺灣博碩士論文加值系統
:::
網站導覽
|
首頁
|
關於本站
|
聯絡我們
|
國圖首頁
|
常見問題
|
操作說明
English
|
FB 專頁
|
Mobile
免費會員
登入
|
註冊
切換版面粉紅色
切換版面綠色
切換版面橘色
切換版面淡藍色
切換版面黃色
切換版面藍色
功能切換導覽列
(44.212.94.18) 您好!臺灣時間:2023/12/11 23:50
字體大小:
字級大小SCRIPT,如您的瀏覽器不支援,IE6請利用鍵盤按住ALT鍵 + V → X → (G)最大(L)較大(M)中(S)較小(A)小,來選擇適合您的文字大小,如為IE7或Firefoxy瀏覽器則可利用鍵盤 Ctrl + (+)放大 (-)縮小來改變字型大小。
字體大小變更功能,需開啟瀏覽器的JAVASCRIPT功能
:::
詳目顯示
recordfocus
第 1 筆 / 共 1 筆
/1
頁
論文基本資料
摘要
外文摘要
目次
參考文獻
電子全文
紙本論文
QR Code
本論文永久網址
:
複製永久網址
Twitter
研究生:
王冠人
研究生(外文):
WANG, KUAN-JEN
論文名稱:
增強GCC以檢查MISRA-C 指標型別之轉換規則
論文名稱(外文):
GCC enhancement for checking pointer typeconversions rules in MISRA-C
指導教授:
陳鵬升
口試委員:
涂嘉恒
、
張榮貴
、
陳鵬升
口試日期:
2019-07-05
學位類別:
碩士
校院名稱:
國立中正大學
系所名稱:
資訊工程研究所
學門:
工程學門
學類:
電資工程學類
論文種類:
學術論文
論文出版年:
2019
畢業學年度:
107
語文別:
英文
論文頁數:
74
中文關鍵詞:
MISRA-C checker
、
GCC
、
Compiler
、
Analyzer
外文關鍵詞:
MISRA-C checker
、
GCC
、
Compiler
、
Analyzer
相關次數:
被引用:0
點閱:276
評分:
下載:32
書目收藏:0
MISRA-C 是一個軟體開發的標準,首次發表在1998 年。原先,其目
的為使語言標準化以及結構化。後來,MISRA-C 廣泛地使用在各種不同
的工業和軟體產業上,包含鐵路、航空、軍事和醫療產業。
在此篇論文中,我們透過修改GCC 內部來實作MISRA-C Checker;有
些規則已經被GCC 所偵測,但大部分的卻不是。因為GCC 包含了各種
不同的函式,我們無法針對每一個GCC 所定義的函式進行分析。因此.,
我們使用了一些方法,分析特定的函式來實作這些MISRA-C 的規則。總
計有26 個規則是我們可以檢查的,而在測試的benchmark 中,我們修改
後的編譯器可以完全支援24 個規則,而剩下的2 個則是部分支援的。
MISRA-C is a software development standard first published in 1998.
The intention was to provide a restricted subset of a standardized structured
language. MISRA-C has been adopted and used across a wide variety of industries
and applications including the rail, aerospace, military, and medical
sectors.
In this thesis, we implement the MISRA-C compliance checker based
on GCC compiler infrastructure. Some rules are already supported by GCC,
while the others are not. Since GCC contains numerous functions, we cannot
actually analyze all functions defined in GCC. Thus, we use some strategies
to figure out the functions which we should modify to implement the MISRAC
rules. There are 24 rules supported in our implementation. For the tested
benchmark programs, the modified GCC compiler can fully detect 24 rules
and the remaining 2 rules are partially supported.
1 Introduction 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Related work . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Background 4
2.1 MISRA-C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Implementation with GCC . . . . . . . . . . . . . . . . . . . . 8
3 Approach 10
3.1 GCC data types . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.1 fprintf and grep . . . . . . . . . . . . . . . . . . . . 13
3.2.2 debug_tree . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.3 inform . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.4 TREE_TYPE and TREE_OPERAND . . . . . . . . . . . . . . 19
4 Implementation MISRA-C rules 24
4.1 Implementation: variable declaration . . . . . . . . . . . . . . 24
4.2 Implementation: type casting between objects . . . . . . . . . 38
4.3 Implementation: other rules . . . . . . . . . . . . . . . . . . . 53
5 Experiment 67
5.1 Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.2 Evaluation result . . . . . . . . . . . . . . . . . . . . . . . . . 68
6 Conclusion 72
6.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.2 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
[1] Website, “Misra-c.” https://zh.wikipedia.org/wiki/MISRA_C, 2018.
[2] Website, “Pc-lint.” https://www.gimpel.com/html/links.htm.
[3] Website, “Misra-c 2012 example.” http://gimpel-online.com/
/cgi-bin/genPage.py?srcFile=misra3.c&cgiScript=analyseCode.
py&title=MISRA+C+2012+Example+%28C%29&intro=This+example+
shows+how+FlexeLint%2FPC-lint+addresses+certain+MISRA+C+
2012+guidelines.&compilerOption=online32.lnt+au-misra3.lnt+
lib-unmisra.lnt&includeOption={{quotedIncludeOption}}.
[4] Website, “Options to request or suppress warnings.” https://gcc.gnu.
org/onlinedocs/gcc/Warning-Options.html.
[5] Website, “Journey through gcc.” https://www.cse.iitb.ac.in/~uday/
gcc-mini-workshop/gcc-internals-1.pdf.
[6] Website, “Source tree organization.” https://www.airs.com/dnovillo/
200711-GCC-Internals/200711-GCC-Internals-1-condensed.pdf.
[7] Website, “An overview of gcc architecture.” https://en.
wikibooks.org/wiki/GNU_C_Compiler_Internals/GNU_C_Compiler_
Architecture.
[8] Website, “Gcc internal.” https://gcc.gnu.org/onlinedocs/gcc-7.3.
0/gccint/.
電子全文
國圖紙本論文
推文
當script無法執行時可按︰
推文
網路書籤
當script無法執行時可按︰
網路書籤
推薦
當script無法執行時可按︰
推薦
評分
當script無法執行時可按︰
評分
引用網址
當script無法執行時可按︰
引用網址
轉寄
當script無法執行時可按︰
轉寄
top
相關論文
相關期刊
熱門點閱論文
1.
Affinecalculator程式平行化計算器實作於GCC編譯器
2.
以VLIW為基礎的貼心處理器之編譯器最佳化
3.
應用GCC編譯工具組於建立可執行程式之轉譯平台
4.
ASIP的GCC移植工具
5.
具可延伸性的軟體重構工具
無相關期刊
1.
利用GCC編譯器實現記憶體重新分配錯誤的偵測與更正之研究
2.
設計與實作支援嵌入式系統之軟體的系統 層級重複技術
3.
增強GCC以檢查MISRA-C中初始化與副作用相關之規則
4.
實作函式內符號執行之研究
5.
利用GCC靜態偵測記憶體釋放錯誤之研究
6.
應用於工具機運動控制之多項式之原始碼層級共同表達式消除技術
7.
支援瞬時錯誤檢測與糾錯之行程層級重複技術
8.
支援兩軸加工之以深度學習為基礎之追蹤誤差預測技術
9.
支援迭代學習控制技術之自動化產生可適性收斂倍率之研究
10.
支援時序猜測架構之迴圈轉換與指令排程技術
11.
使用G-code改寫演算法以控制輪廓誤差之學習控制技術
12.
支援ARM資料處理指令之SIMD技術為基礎的軟體實現錯誤容忍之研究
13.
On Trading Higher Parallelism Degree with Power-limited Write Operations for NAND Flash Devices
14.
雲端系統中超多核心下自旋鎖的侷限與突破
15.
不動產經紀業廣告不實違規案例之研究
簡易查詢
|
進階查詢
|
熱門排行
|
我的研究室