Инфраструктура ЛИНВАСТ за језички-инваријантна апстрактна синтаксичка стабла програма

  • Иван Ристовић Математички факултет, Универзитет у Београду
Кључне речи: Апстрактна синтаксичка стабла (АСТ), Језички-инваријантни АСТ, Статичка анализа, Парсер АНТЛР

Сажетак

Алати за статичку анализу програма, другим речима анализу програма без његовог извршавања, користе разне апстрактне репрезентације програма. Такве репрезентације настају парсирањем изворног кода програма, апстраховањем и трансформацијом резултата парсера. Због тога, такве међурепрезентације су уско везане за конкретан програмски језик и стога су некомпатибилне између различитих програмских језика. Уска повезаност алата и програмског језика отежава израду алата за анализу изворног кода независно од програмског језика, и отежава надоградњу постојећих алата подршком за нове програмске језике.

Овај рад представља инфраструктуру ЛИНВАСТ — општу језички-инваријантну апстракцију изворног кода засновану на апстрактним синтаксичким стаблима. ЛИНВАСТ моделује синтаксичке конструкте различитих програмских језика на униформан начин, што омогућава израду алата који оперишу над изворним кодом програма без обзира на програмски језик у којем је програм написан. Инфраструктура ЛИНВАСТ у програмском језику Ц# је јавно доступна и има скоро десет хиљада преузимања. Тренутно имплементира подршку апстраховања програмских језика Ц, Јава, Луа и Го.

Објављено
2025-12-30
Секција
Софтверско инжењерство