控制流分析

✍ dations ◷ 2025-07-21 02:47:18 #程序分析

控制流分析(Control flow analysis)简称CFA,是一种确认程式控制流程的静态代码分析技术。控制流程会以控制流图(英语:control flow graph)来表示。对于函数编程语言及面向对象程式设计,CFA都是指计算控制流程的算法。

控制流分析一词最早是由Neil D. Jones及Olin Shivers开始使用。

对于像是Scheme之类有高阶函数的编程语言,不一定可以会程式中直接看出函数呼叫的目标,例如以下的程式片段

(lambda (f) (f x))

根据上述程式无法确认程序f是指什么,此情形下的控制流分析需考虑何时会执行此程式码,及当时的传入值。

抽象释义、约束补偿及型别系统都可以用来进行控制流分析。

相关

  • 克里克弗朗西斯·哈利·康普顿·克里克,OM,FRS(英语:Francis Harry Compton Crick,1916年6月8日-2004年7月28日),英国生物学家、物理学家及神经科学家。他最重要的成就是1953年在剑桥大学
  • 土星5号name = 'Aero', description = '航空太空科技(航空航天科技)', content = {{ type = 'text', text = [=[本页面没有类似于NoteTA的数量限制。 请自行修改分类名。在NoteTA样板
  • 工业机器人工业机器人按照ISO 8373定义,它是面向工业领域的多关节机械手或多自由度的机器人。工业机器人是自动执行工作的机器装置,是靠自身动力和控制能力来实现各种功能的一种机器。它
  • 炮舰战争炮舰战争(Gunboat War)是拿破仑战争期间,一场发生于丹麦-挪威与英国之间的战争。这场战争发生于1807年至1814年间。战争是得名于丹麦在战争中的策略,丹麦雇佣小型炮舰来对抗正规
  • 水处理水处理(包括给水处理、污废水及雨水处理等)是指水经人为或自然现象,而改变其内容物成分变化的过程。人工的水处理可分为将自然界的水处理之后为人类使用,和将人使用过后的废水加
  • 市町村合并市町村合并(日语:日本の市町村の廃置分合/にほんのしちょうそんのはいちぶんごう Nihon no shichōson no haichi bunkō)包括了日本市町村的分割、分立、合并、编入等。地方自
  • 江西农业大学江西农业大学(英语:Jiangxi Agricultural University)位于江西省省会南昌市,是一所以农为优势、以生物技术为特色、多学科协调发展的全国重点大学。学校是中国首批具有学士学位
  • 伊西曼格利索湿地公园伊西曼格利索湿地公园(iSimangaliso Wetland Park),又译作艾赛门加利索湿地公园,旧称大圣卢西亚湿地公园(Greater St. Lucia Wetland Park),位于南非夸祖鲁纳塔尔东部海岸,距德班约2
  • 太谷饼太谷饼,最早叫甘饼,是山西省传统名吃,因产于太谷县得名。始于清朝,以香、酥、绵、软闻名。最早生产出售太谷饼的店铺是太谷县南街的“文成堂”,后来又有东关的“义源生”和南街的
  • 马鞍列岛马鞍列岛是浙江省舟山群岛最北部的一组列岛,包括花鸟山、西绿华岛、壁下山、枸杞岛、嵊山等约130个岛礁,总面积约20平方公里。马鞍列岛得名于清同治年间英国人在花鸟山上建造