靜態程序分析(英語:Static program analysis)是指在不執行程序的條件下,進行程序分析的方法。和要在程序執行時才能進行的動態程序分析(英语:dynamic program analysis)是不同的。大部份的靜態程序分析的對象是針對特定版本的源代码,也有些靜態程序分析...
8 KB (974 words) - 12:25, 9 December 2023
Polyspace (category 静态代码分析工具)
Polyspace是靜態程序分析的工具,利用抽象释义的方式進行大規模的分析,可以偵測C語言、C++或是Ada程式的原始碼中,是否有特定類型的執行期錯誤,或是證明沒有這類的錯誤。此工具也可以檢查原始碼是否符合特定的代碼標準(如MISRA C/C++, SEI CERT C/C++(CWE), JSF...
8 KB (749 words) - 06:24, 24 September 2023
在计算机科学中,程序分析是指自动分析一个程序的包括正确性、健壮性、安全性和活跃性等特征的过程。 程序分析主要研究两大领域:程序的优化(英语:Program optimization)和程序的正确性。前者研究如何提升程序性能并且降低程序的资源占用,后者研究如何确保程序完成预期的任务。 程序分析可以在不执行程序...
8 KB (1,268 words) - 02:32, 5 February 2025
JSLint (category 静态代码分析工具)
JSLint是一個在软件开发中確認JavaScript源代码代码风格的靜態程序分析,可透過网络应用程序jslint.com及命令行界面來進行分析,由道格拉斯·克羅克福特於2002年建立。 JSLint曾使用由MIT許可證衍伸而來的JSLint許可證,兩者的差別在於JSLint許可證多出了一句話"The...
13 KB (1,047 words) - 21:19, 20 January 2023
Lint (category 程序设计工具)
在電腦科學中,lint是一種工具程式的名稱,它用來標記原始碼中,某些可疑的、不具結構性(可能造成bug)的段落。它是一種靜態程序分析工具,最早適用於C語言,在UNIX平台上開發出來。後來它成為通用術語,可用於描述在任何一種電腦程式語言中,用來標記原始碼中有疑義段落的工具。...
1 KB (142 words) - 22:46, 7 October 2021
靜態應用程式安全測試(Static application security testing)簡稱SAST,是透過審查程式原始碼來識別漏洞,提昇軟體安全性的作法。早在電腦問世時,就已有靜態程式分析的作法。自從1998年起,SQL注入的攻擊方式開始出現在公眾的討論中,而網路應用程式整合了JavaScript及Adobe...
13 KB (1,663 words) - 15:25, 9 November 2023
SonarQube (category 静态代码分析工具)
SonarQube插件库 SonarQube IDE集成 SonarQube指南(页面存档备份,存于互联网档案馆) Eclipse Sonar指南(页面存档备份,存于互联网档案馆) 自由软件主题 Java主题 静态代码分析工具列表(英语:List of tools for static code analysis)...
7 KB (472 words) - 06:22, 20 September 2023
程序執行(英语:execution (computing))過程中所經過的所有路徑。控制流圖是由法兰·艾伦所建立,他提出Reese T. Prosser(英语:Reese Prosser)曾利用邻接矩阵用在流分析上。 CFG是許多編譯器最佳化及靜態程序分析工具中的核心技術。...
11 KB (1,575 words) - 22:07, 29 July 2023
自動程式碼審查 (category 静态代码分析工具)
程序常稱為linting,因為Lint是最早期用在靜態程式分析的軟體。 有些靜態程序分析工具可以用來協助自動程式碼審查,這些工具受歡迎的程度不如人工審查,但可以作的更快,更有效率[來源請求]。這些工具也可以封裝一些對底層規則的深入瞭解,以及要進行形態分析...
5 KB (497 words) - 00:41, 16 July 2022
程序或是其他的恶意代码。 現在的整合式防火牆常含有雲端沙盒,當本地靜態分析無法辦別時,就會去雲端比對hash值,查看是否有相關情資,若為未發現過的可疑程式,則送入沙盒測試,並記錄其行為模式。 沙盒将软件运行于一个受限的系统环境中,控制程序可使用的资源(如文件描述符、内存、磁盘空间等)。...
5 KB (569 words) - 09:28, 9 December 2022
動態驗證,也稱為實驗、動態測試(英语:dynamic testing)或測試。會執行软體,動態驗證可以確認是否有程序错误。 靜態驗證,也稱為靜態程序分析或原始碼分析或分析。靜態驗證可以確認程式的正确性。不過有可能會出現軟體實際執行結果和靜態分析不一致的情形。 動態驗證是在執行軟體時進行,並且動態的確認其行為是否正確。一般會稱為...
4 KB (537 words) - 13:48, 4 October 2021
ThreadSafe (category 静态代码分析工具)
中许多并发相关规则的情况。 ThreadSafe作为一个完全集成的插件包含于GrammaTech的CodeSonar程序分析工具套件。 Gupta, Vikram. 线程安全并发静态分析工具发布首个公开beta版本. InfoQ.com. 2013-10-08 [2014-07-01]. (原始内容存档于2014-07-14)...
6 KB (511 words) - 09:39, 10 December 2020
函式呼叫圖 (category 静态程序分析)
程序中函式之間的關係。每一個節點是一個函式,每一個邊(f, g)表示函式f呼叫函式g。若其中有出現互相呼叫的環,表示程式中可能有遞迴呼叫。 函式呼叫圖可以由動態程式分析產生(動態函式呼叫圖),也可以由靜態程式分析產生(靜態函式呼叫圖)。動態函式呼叫圖是程式執行過程的記錄,可能是效能分析...
9 KB (988 words) - 07:55, 26 December 2022
在编译程序优化理论中,逃逸分析是一种确定指针动态范围的方法——分析在程序的哪些地方可以访问到指针。它涉及到指针分析和形状分析。 当一个变量(或对象)在子程序中被分配时,一个指向变量的指针可能逃逸到其它执行线程中,或是返回到调用者子程序。如果使用尾递归优化(通常在函数编程语言中是需要的),对象也可以看...
6 KB (842 words) - 02:59, 15 January 2024
分析中會整理軟體各部份、變數、邏輯及模組之間的關係,並分析所提出變更的結果。相依性變更影響分析的層次會比可追蹤性變更影響分析要詳細。在軟體設計中,可以用靜態及動態程式分析的演算法針對程式處理,進行相依性變更影響分析。其中靜態程序分析會針對程式的架構,而動態程序分析則會在程式執行時收集程式行為的相當資訊。...
3 KB (508 words) - 14:39, 28 October 2022
如前所述,方法可能宣告為靜態的(在Visual Basic裡是shared,在Object Pascal裡是class),即靜態方法活動於類別層次,而非實體層次。靜態方法不能觸及一個特定的類別實例(也就是不能觸及this、self、Me等等)以下是以C#撰寫的靜態成員以及其客戶端的例子: public...
5 KB (646 words) - 00:05, 12 May 2025
数据流分析 是一种用于收集计算机程序在不同点计算的值的信息的技术。一个程序的控制流圖(control flow graph, CFG)被用来确定对变量的一次赋值可能传播到程序中的哪些部分。这些信息通常被编译器用来优化程序。数据流分析的一个典型的例子就是可到达定义的计算。 进行数据流分析...
9 KB (1,541 words) - 05:58, 21 August 2024
程序内部进行延迟计算(Delay calculation)。尽管可以通过严格的SPICE电路仿真来进行此类时间测量,但是这种方法在实用中耗费大量时间。静态时序分析在电路时序快速、准确的测量中扮演了重要角色。静态时序分析...
8 KB (1,167 words) - 09:41, 18 September 2023
以往正式的原始碼審查在審查的準備及進行時都需要投入許多的資源。 代碼分析工具的使用可以協助原始碼審查。尤其是一些整合在整合開發環境(IDE)下的工具,可以直接提供程式開發者有關編程標準相容的回饋。 軟件審查(英语:Software review) 軟件檢查 偵錯 軟體測試 靜態程序分析 性能分析 自動程式碼審查 代码审查工具列表 Kolawa...
7 KB (844 words) - 15:58, 28 February 2025
别名分析(Alias analysis)是编译器理论中的一种程序分析技术。当程序中同时出现两个甚至多个符号代表同样一个内存位置时,这些符号便可称作别名。与此相对应的,当两个或更多指针指向同一个地址时,那些指针称作别名指针。别名分析则是判断一个程序内是否存在别名的算法。...
1 KB (135 words) - 06:13, 11 March 2023
no longer in scope. public int getFoo() { return foo; } 程序设计语言使用α-变换使得没有变量名屏蔽了其它同名的实体。可用于静态代码分析,使得理解源代码更为容易。 例如: class Point { private: double x, y; public:...
4 KB (497 words) - 08:19, 15 January 2021
程序模擬(英語:process simulation)係用於技術程序(如化工廠、化學程序、環境系統、發電廠、複雜製造操作、生物程序以及類技術功能)的設計、開發、分析與優化等。 程序模擬是在軟體中基於模型來描述化學、物理、生物、其他技術程序與單元操作等。基本先決條件是針對純組分、混合物、化學反應的物...
3 KB (370 words) - 01:35, 16 September 2020
为提高可读性和避免编码错误,应该使用命名常量。此外,字面值可以且应该在可能的情况下,独立存放于资源文件或者脚本中,在软件部署到不同区域时,可以很方便地本地化。 反模式 编程原则 靜態程序分析工具列表(英语:List of tools for static code analysis) 软件腐败 设计异味 軟體缺陷指標 Fowler,...
3 KB (473 words) - 06:05, 8 January 2024
控制流分析(Control flow analysis)簡稱CFA,是一種確認程式控制流程的靜態代碼分析技術。控制流程會以控制流圖來表示。對於函數程式語言及物件導向程式設計,CFA都是指計算控制流程的演算法。 控制流分析一詞最早是由Neil D. Jones及Olin Shivers開始使用。...
2 KB (283 words) - 12:48, 7 February 2025
軟體架構恢復也可能是為了要進行軟體改造,所要求提出的程序。 大部份軟體架構恢復的作法會針對系統進行靜態程序分析,若是針對物件導向系統,其中有大量的函數多型以及動態連結(英语:Late binding)機制,就需要用動態程序分析(英语:dynamic program...
2 KB (286 words) - 17:40, 6 February 2021
耦合性 (計算機科學) 物件導向程式設計用語列表(英语:List of object-oriented programming terms) 靜態程序分析 GRASP (面向对象设计) SOLID (面向对象设计) Alan Hecht and Andy Simmons (1986) Integrating...
7 KB (1,021 words) - 05:23, 3 November 2022
自修改代码(Self-modifying code)是指程序在运行期间(Run time)修改自身指令。可能的用途有:病毒利用此方法逃避杀毒软件的查杀,反静态分析、加殼壓縮,反盗版 ,單晶片程序升级。 在暫存記憶體中执行代码的计算机,可修改内存中的代码段,以往这种方法常被駭客用来制造病毒(参见:EICAR...
2 KB (233 words) - 07:21, 11 February 2025
程序设计要比以往的做法更加便于学习,因为它能够让人们更简单地设计并维护程序,使得程序更加便于分析、设计、理解。反对者在某些领域对此予以否认。 当我们提到面向对象的时候,它不仅指一种程序设计方法。它更多意义上是一种程序开发方式。在这一方面,我们必须了解更多关于面向对象系统分析和面向对象设计(Object...
27 KB (3,763 words) - 00:39, 21 February 2025
只在編譯期間檢查的斷言稱為靜態斷言,靜態斷言必需配合清楚的註解說明。 在編譯期的模板超編程時,靜態斷言特別有用。靜態斷言也可以用在C語言的程式中,當斷言不成立時,產生有錯誤的程式碼。例如以下就是一個定義靜態斷言的方法: #define COMPILE_TIME_ASSERT(pred)...
12 KB (1,766 words) - 02:53, 13 February 2025
多态又分成靜態多态(Static Polymorphism)與動態多态(Dynamic Polymorphism)。C++语言支持的動態多态必須結合繼承和动态绑定(Dynamic Binding)方式實現。靜態多态是指编译时决定的多态,包括重载和以模板(tem...
48 KB (5,739 words) - 22:50, 7 April 2025
在软件工程中,性能分析(performance analysis,也称为profiling),是以收集程序运行时信息为手段研究程序行为的分析方法,是一種動態程式分析(英语:Dynamic program analysis)的方法。 性能分析量測像是程式的空間或時間複雜度、特定指令的使用情形(英语:instruction...
17 KB (2,383 words) - 11:55, 4 February 2025