Универзитет у Београду
Катедра за рачунарство и информатику

ПЛАТО

Програмски језици и алати

Језички-инваријантна апстрактна синтаксичка стабла (LINVAST)

Мотивација

Вишејезични софтверски системи и модернизација застарелог кода захтевају алате за статичку анализу, трансформацију и миграцију између програмских језика. Репрезентације у облику апстрактних синтаксичких стабала (AST) садрже конструкције специфичне за поједине језике, што отежава поновну употребу логике за анализу и трансформацију програма.

Језички-инваријантни AST

LINVAST је скуп библиотека који пресликава ANTLR стабла парсера у заједнички модел AST-а за конструкције императивних језика. Програмабилни интерфејс подржава обилазак стабала, структурно поређење, трансформацију и серијализацију заједничких AST-ова. LINVAST тренутно подржава језике C, Lua, Java, Go, Kotlin и Python, а укључује и алате командне линије и интерактивни веб-приказивач AST-ова.

Преузимање

LINVAST је отвореног кода на GitHub-у и доступан је као NuGet пакет, који је укупно преузет више од 15.000 пута. Иницијални LINVAST прототип је објављен 2025. године (Ristović, 2025).

Литература

  • Ivan Ristović: LINVAST Infrastructure for Language-Invariant Abstract Syntax Trees. Journal of Information Technology and Multimedia Systems — Info M, 25(81/82), 47–54, 2025.