gpt4 book ai didi

erlang - 选择 AST 来为 Elixir 开发静态代码分析器?核心 Erlang 还是扩展的 Elixir AST?

转载 作者:行者123 更新时间:2023-12-04 04:13:47 35 4
gpt4 key购买 nike

我们希望为 Elixir 开发一个静态代码分析器,以检测并发问题(主要是死锁和竞争条件)。我们对分析器的结构有了一些基本的了解,但我们的问题是哪种 AST 更适合这项任务。正如我们所了解的,Elixir 编译过程创建了一个 Expanded Elixir AST、Abstract Erlang Format 和 Core Erlang。

我的问题是扩展的 Elixir AST 或 Core Erlang 是否更适合创建调用图和控制流图。如果我们使用 Core Erlang,是否有可能从 Core Erlang 向后工作,在 Elixir 代码中找到分析器识别的问题的来源?

如果有人对此有所了解,将不胜感激。 :)

最佳答案

如果目的是教育,我可能会选择 erlang。将 erlang 编译为 beam 可能会更直接一些(如果不是更多的话),并且在您开发工具时,您可能会发现更多关于 erlang AST 的资源/文档。它的级别低于大多数人所做的,您会在 erlang 社区中找到更多答案(可能在几年内不会是真的)。总的来说,您的工具在 erlang 中会更简单,移动部件更少。

我还找到了那个项目:https://github.com/rrrene/credo

更具体地说,我认为让您回到 Elixir 代码实际上会很困难。从您的角度来看,在实现您的工具之后,它就会变得有意义。但对于普通的 Elixir 开发人员来说,情况可能并非如此。 elixir 越成熟,就越倾向于偏离核心 erlang 概念。它在 erlang 之上构建了许多功能,以至于您可以在不了解一点 erlang 的情况下构建整个 Web 应用程序。可能不是最好的方法,但它可能告诉您两种语言之间的差距有多大。

关于erlang - 选择 AST 来为 Elixir 开发静态代码分析器?核心 Erlang 还是扩展的 Elixir AST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61143958/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com