風格檢查

風格檢查

風格檢查主要是檢查在程式設計風格方面發現的問題,包括命名規則、變數說明、程式格式、注釋的使用結構化程式設計、基本控制結構的使用。

基本介紹

  • 中文名:風格檢查
  • 外文名:Style to check
  • 類別:計算機套用
高級綜合前的檢查和轉化,根據可綜合子集的檢查,綜合風格檢查,原始碼風格檢測工具的實現,代碼風格對於軟體質量的好處,代碼檢測工具總體結構,

高級綜合前的檢查和轉化

Talent2000中VHDL檔案的編譯中間結果用於綜合和模擬,VHDL是面向模擬的語言,並不是所有的VHDL語句都可以綜合,在一個實用化高級綜合系統中,除了根據可綜合子集檢VHDL源描述之外,還要求可綜合VHDL描述具有一定的風格。在進行高級綜合前,必須對VHDL檔案編譯的中間結果進行處理,包括語句可綜合性檢查、VHDL描述的可綜合性風格檢查、循環語句展開和子程式內聯。給出了要求VHDL描述具有可綜合性風格的原因,實現了面向高級綜合的檢查、循環語句的展開和子程式內聯。

根據可綜合子集的檢查

VHDL是一種面向模擬的硬體描述語言,它有一些語法現象不能夠進行綜合,例如對檔案的操作,有一些語法現象,在綜合的時候可以忽略,比如斷言語句。根據VHDL語言的可綜合子集,在綜合之前對用戶的源描述進行檢查。
首先定義一個包括綜合檢查信息的結構,這個結構包括可忽略的語句;表達式和不可綜合的語句;表達式的個數。表達式是一個樹狀結構,每一個節點是一個表達式項或者表達式,表達式項可以是變數、信號、常量、操作符和函式調用。在表達式和每個表達式項中增加caIUnsynCount方法 ,這個方法根據可綜合子集檢查表達式的可綜合性信息。變數、信號和常量根據它們的類型進行綜合性檢查,操作符根據它們的類型和運算元進行綜合性檢查,對於函式調用,要對函式體進行綜合性檢查 。

綜合風格檢查

一些實用的綜合系統對VHDL源描述的風格都有一定限制,在高級綜合系統中的這些限制主要來源於VHDL源描述再綜合之中的表達和模擬和綜合一致性。高級綜合的可綜合性風格套用於條件語句、分支語句和循環語句。在VHDL語言中,wait語句是一個非常重要的語句,因為wait語句表達了狀態、同步和時序信息,VHDL源描述必須保持模擬和綜合的一致性,Talent2000高級綜合系統中使用狀態表示循環、一部分條件和分支語句。

原始碼風格檢測工具的實現

給出了評價C/C++原始碼風格的規則分類和檢查工具的總體結構,闡述了代碼檢查工具的核心技術---擴展詞法分析和擴展語法分析,給出了代碼檢測工具的套用實例。

代碼風格對於軟體質量的好處

軟體質量控制應該貫穿軟體的整個生命周期。對於編碼的質量控制,雖然有代碼風格的要求,但具體的實施卻困難重重---沒有足夠的人力和時間進行代碼風格的檢查。事實上,軟體是人來編制的,許多BUG是人引入的,許多BUG都可以通過代碼風格的嚴格檢查來避免。好的代碼風格對於軟體質量的好處在於:
(1) 可以加快軟體開發進度。
(2) 提高軟體的可移植性。例如,好的程式風格可以定義宏使得數據類型與作業系統平台無關,提高了軟體的 可移植性。
(3) 增加了代碼的可維護性。
好的代碼風格是由一套編程時所遵循的代碼規範來保證的。儘管一個開發小組遵循相同的代碼規範,但小組各個成員編碼的結果差異仍然很大。人工閱讀原始碼,檢查代碼風格,無論是在人力還是時間上都是不可容忍的,一個高效的自動檢測工具就成為迫切的需要。Codeclear就是這樣一個C/C++原始碼風格檢查工具,其定義的 C/C++原始碼規範包括以下類型:
( 1) 布局類規則:源原始碼的頭部信息,如代碼作者、日期、功能描述等;
( 2) 注釋類規則:包括注釋位置、數量、哪些變數常量要注釋等;
( 3) 命名類規則:包括函式的命名、變數的命名等;
( 4) 表達式和語句類規則;
( 5) 函式類規則;
( 6) 可靠性相關規則;
( 7) 測試性相關規則 。

代碼檢測工具總體結構

C/C++代碼檢測工具的總統結構,其主要具有以下主要功能模組:
(1) GUI:用戶接口模組;
(2) Profiles Man:規則配置檔案管理模組,一 個規則 配置檔案定義了一套規則,代碼檢測工程檔案可以通過指定不同的規則配置檔案來檢測不同的代碼規範;
( 3) Project Man:檢測工程管理模組,一個檢測工程檔案定義了一批原始碼和用於檢測這些原始碼的規則配置檔案;
( 4) Rules Man:規則管理模組,提供規則的擴展性;
( 5) Violate Info Man:違規信息管理模組。通過該模組,用戶可以定製違規信息的報表,如違規信息的 級別等;
( 6) Hooking Files Sys:線上檢測模組。提供實時的原始碼的監控,一旦用戶保存了編輯的原始碼,該模組自動對其進行代碼風格的檢測;
( 7) Analyzer:分析器,是C/C++代碼檢測工具的核心模組。

相關詞條

熱門詞條

聯絡我們