静态分析是一种自动审核代码而不执行代码的方法。

阅读代码

<?php
$x = source();
if ($x > 10) {
$y = $x + 1;
$x = corrige($y);
} else {
$y = $x;}
?>

将PHP代码转换成数百万个语义术语

发现是exakat解构代码并准备进行分析的阶段。最初,代码是大量的文本文件。开发人员认为代码的实际上只是文本文件。还有很多。 Exakat需要首先从这些文件中提取内容。

Exakat 利用PHP的标记器:这是Zend Engine的一部分,负责将上述文本文件转换为标记。令牌就像PHP的原子一样:它将结合它们以按预期执行代码。它们也是有意义的文本的最小单位:令牌生成器知道字符串“ die”和函数名称die之间的区别。

创建语法树

然后,将令牌彼此关联地进行组织。一个令牌表示加法(T_PLUS),并且至少需要另外两个令牌才能正确执行。此外,T_PLUS还用于指定数字的符号(+1),因此此标记也可能单独出现。最重要的是,必须在代码中建立更多的远程连接,例如类及其实例化之间的链接:这取决于名称空间和使用表达式。

之后,将令牌加载到图形数据库中。它提供了广泛的工具来搜索特定令牌并导航它们之间的各种链接。这样的语法网络非常适合代码源表示形式。

评估密码

人工智能在工作

那时,这是Exakat的秘密调味料。该分析使用许多不同的模式来搜索特定情况。在分析过程中,我们的技术会自动检测所有外部库,供应商或框架,以保持分析的一致性和避免不必要的噪音

探索分析

问题

Exakat 为检测到的每个问题或缺陷提供了深入的文档,以解决该问题:代码本地化,强制说明,补救方法和代码示例。

指标

Exakat 提供了一些指标,以便在质量,编码标准,错误修复,安全性,代码气味,性能和文档需求方面更深入地了解PHP应用程序。我们提供了30多个现成的报告。