2026.03.19.
Statikus kódelemzés és refaktorálás kutatócsoport
STATIC ANALYSIS AND REFACTORING RESEARCH GROUP - thumbnail

Bemutatkozás

A szoftvertermékek összetettsége ma már olyan nagy, hogy pusztán a forráskód átnézésével nagyon nehéz, időigényes, sokszor pedig szinte lehetetlen megérteni őket. Emiatt a szoftveriparban egyre nagyobb szerepet kapnak azok az eszközök, amelyek támogatják a kód megértését, karbantartását, ellenőrzését, hibakeresését vagy átalakítását. Ezek az eszközök működhetnek dinamikusan, tehát futás közben, vagy statikusan, vagyis a vizsgált vagy átalakított program futtatása nélkül.

Kutatócsoportunk statikus kódelemzési és programátalakítási módszereket dolgoz ki, valamint keretrendszereket fejleszt számos széles körben használt programozási nyelvhez, például C/C++, C#, Erlang, Elixir, Haskell, Java, Python és P4 nyelvekhez. Emellett olyan eszközök integrációján is dolgozunk, amelyek nyílt forráskódú elemzők eredményeit teszik könnyen felhasználhatóvá. Kutatásaink kiterjednek a programátalakítások formális verifikációjára, továbbá az eleve helyes refaktorálási módszerek vizsgálatára is. Foglalkozunk programozási nyelvek formális szemantikájával, a programegyenértékűség elméleteivel, valamint olyan átírási elméletekkel, amelyek alkalmasak a refaktoráló átalakítások leírására.

Jelenleg kutatócsoportunk öt különböző kutatás-fejlesztési és innovációs projektben vesz részt: CodeChecker, CodeCompass, RefactorErl, HARP és T4P4S.

Kutatási területek

  • Statikus programelemzési és programátalakítási technikák
  • Kódmegértés és szoftverkarbantartás támogatása
  • Szoftvervizualizáció
  • Biztonságos kódolás elmélete és gyakorlata
  • Kódellenőrzés (szabványok és egyedi követelmények alapján)
  • Minőség-, komplexitás- és futási idő elemzés, szoftvermetrikák
  • Zöld informatika
  • Formális szemantika, logikák és verifikáció
  • Átírási rendszerek
  • Interaktív tételbizonyítás
  • Szoftvertesztelés

Módszertan

A szoftverek algoritmikus elemzése megköveteli a programozási nyelvek szabályainak formalizálását, valamint a kód szintaktikai és szemantikai információinak reprezentálását. Bevezettük a Szemantikus Programgráf fogalmát, amely az absztrakt szintaxisfán alapuló reprezentációk kiterjesztése. Ez a megközelítés lehetővé teszi, hogy szimbolikus, szemantikai és vezérlési folyamatelemzéseket hatékonyan, lehetőség szerint inkrementálisan végezzünk. Ezekre az elemzésekre építve fejlesztünk ellenőrző eszközöket, vizualizációs megoldásokat, valamint szemantikamegőrző programátalakításokat. A formalizáció során jól bevált eszközökre támaszkodunk, mint például a Coq, a K-keretrendszer és a QuickCheck. Tevékenységeink nagy részét az ELTE–Ericsson Szoftvertechnológiai Laboratóriumban végezzük, és ipari partnereinkkel együttműködve a tudományos elmélet és a gyakorlati alkalmazás hatékony kombinációit kutatjuk.

Kutatócsoport tagjai

  • Horváth Zoltán
  • Bozó István
  • Cserép Máté
  • Horpácsi Dániel
  • Kozsik Tamás
  • Lukács Dániel
  • Pataki Norbert
  • Porkoláb Zoltán
  • Tejfel Máté
  • Simon Thompson
  • Tóth Melinda
  • továbbá 12 postdoc és PhD diák

Projektek

Nemzetközi projektek: ParaPhrase: Parallel Pakerns for Adap9ve Heterogeneous Mul9core Systems, 288570 (FP7, 2013-2015)

Hazai projektek:

  • TECH_08_A2-SZOMIN08
  • KMOP-1.1.2-08/1-2008-0002 (2010-2012)
  • EITKIC_12-1-2012-0001 (2013-2014)
  • EFOP-3.6.2-16-2017-00013 (2017-2020)
  • EFOP-3.6.3-VEKOP-16-2017-00002
  • ED18-1-2019-0030, 2020-4.1.1.-TKP2020
  • TKP2021-NVA-29

+ 8 ipari partner

Kiemelt publikációk

  • R. Szalay, Á. Sinkovics, Z. Porkoláb (2021): Practical heuristics to improve precision for erroneous function argument swapping detection in C and C++, Journal of Systems and Software [DOI]
  • Z. Porkoláb, T. Brunner, D. Krupp, M. Csordás (2018): CodeCompass: An open software comprehension framework for industrial usage, IEEE/ACM 26th International Conference on Program Comprehension [DOI]
  • T. Kozsik, M. Tóth, I. Bozó (2017): Free the Conqueror! Refactoring divide-and-conquer functions, Future Generation Computer Systems [DOI]
  • D. Horpácsi, P. Bereczky, S. Thompson (2023): Program equivalence in an untyped, call-by-value functional language with uncurried functions, Journal of Logical and Algebraic Methods in Programming [DOI]
  • D. Lukács, G. Pongrácz, M. Tejfel (2020): Control flow based cost analysis for P4, Open Computer Science [DOI]

Kapcsolat

Tóth Melinda – toth_m@inf.elte.hu