Мы надеемся разработать static code analyser
для Elixir, чтобы выявлять проблемы параллелизма (в основном тупиковые и гоночные условия). У нас есть некоторое базовое представление о структуре анализатора, но наша проблема в том, какой AST лучше подходит для этой задачи. Как мы поняли, процесс компиляции Elixir создает расширенный Elixir AST, абстрактный формат Erlang и базовый Erlang.
У меня такой вопрос: лучше ли будет использовать расширенный эликсир AST или Core Erlang для создания графа вызовов и графика управления. И если мы используем Core Erlang, можно ли вернуться назад из Core Erlang, чтобы найти источник в коде Elixir для проблем, выявленных анализатором?
Если у кого-то есть идеи по этому поводу, ваша помощь будет очень признательна. :)