【发布时间】:2020-07-23 10:03:14
【问题描述】:
我们希望为 Elixir 开发一个static code analyser 以检测并发问题(主要是死锁和竞争条件)。我们对分析器的结构有一些基本的想法,但我们的问题是哪种 AST 更适合这项任务。正如我们所了解的,Elixir 编译过程创建了 Expanded Elixir AST、Abstract Erlang Format 和 Core Erlang。
我的问题是扩展 Elixir AST 或 Core Erlang 是否更适合创建调用图和控制流图。如果我们使用 Core Erlang,是否有可能从 Core Erlang 向后工作,以在 Elixir 代码中找到分析器识别的问题的来源?
如果有人对此有所了解,我们将非常感谢您的帮助。 :)
【问题讨论】:
-
这是一个题外话。请将其发布到elixirforum.com 以获得更好的反馈。
-
@AlekseiMatiushkin 非常感谢。我会发布它。
-
出于好奇,透析器有什么问题?
-
@user1720740 毫无疑问,Dialyzer 是一个了不起的工具。但在这里,我们正在开发另一种工具,仅用于教育目的。实际上要了解静态代码分析器的内部结构。
-
@hackerbuddy 我明白了。真是个好主意。我将尝试发布答案。广泛的问题,模糊的答案,对不起。但我知道你来自哪里。
标签: erlang elixir abstract-syntax-tree static-code-analysis coreerlang