Eduard Kamburjan

Forskningsleder

 

Projekttitel

Graph-based Verification of Reflective Programs

Hvad handler dit projekt om?

Refleksion er en teknik, der gør det muligt for software at ræsonnere over sin egen struktur og adfærd. At skrive sådanne programmer er lidt som at give instruktioner, mens man kigger i et spejl, og det er som bekendt svært at gøre rigtigt. Der er gode teoretiske grunde til, at programmører kæmper med refleksion og til at der ikke findes værktøjer, der hjælper udviklerne. Samtidig bruges refleksion i rigtig mange softwareapplikationer, så det er vigtigt at få det til at fungere ordentligt. Dette projekt vil overvinde de teoretiske udfordringer ved at identificere refleksionsmønstre, der forekommer i praksis og ved at anvende idéer fra såkaldte vidensgrafer. Målet er at give udviklere logikbaserede værktøjer, og dermed hjælpe dem med at bruge refleksion og at skrive mere pålidelig software.

Hvordan opstod din interesse for dit forskningsfelt?

Sprogforskning ligger mig meget på sinde, og programmeringssprog er den måde, udviklere kommunikerer på – ikke kun med computere, men også med hinanden. Under mit ph.d.-studium blev jeg interesseret i, hvordan mennesker udtrykker deres tanker og intentioner i programmer, og hvordan det former de sprog, vi bruger til programmering og dokumentation. Det er et fascinerende område, hvor vi med vores forskning aktivt kan påvirke, hvordan sprog bliver brugt. Verifikation spiller en interessant rolle her: Det giver en måde at sammenligne forskellige måder at udtrykke vores intentioner på i forskellige sprog, og hjælper med at sikre, at et program rent faktisk gør det, vi havde tænkt os.

Hvad er de forskningsmæssige udfordringer og perspektiver ved dit projekt?

Afvejningen mellem at dække alle teoretiske muligheder og samtidig yde effektiv støtte til praktiske anvendelser er altid en fin og vanskelig balance.

For at finde denne balance vil projektet empirisk undersøge kode fra rigtige projekter – en tilgang, der sjældent bruges til logikbaserede værktøjer, men som har vist sig meget effektiv i andre områder. På længere sigt bør en mere nuanceret balance mellem teori og praksis gøre det muligt for os at tilbyde endnu mere støtte og automatisering til udviklere – og gøre deres arbejde mærkbart lettere.

Hvilke perspektiver vurderer du selv, at din forskning på sigt kan have for det omgivende samfund?

Digitalisering breder sig til alle aspekter af vores liv, og vi har brug for pålidelig software for at undgå dyre fejl. Det gælder ikke kun software i offentlige tjenester, men også software udviklet af forskere på universiteter og i industrien til at behandle store datamængder eller til at drive AI-applikationer. De softwareværktøjer, der bruges i sådanne applikationer, er ofte stærkt afhængige af refleksion, og dette projekt vil gøre dem mere pålidelige. Pålidelighed handler ikke kun om at undgå fejl – IT-projekter mislykkes ofte eller overskrider deres budgetter. Den støtte, vi udvikler, vil hjælpe med at håndtere de risici, der er forbundet med IT-projekter.

Hvad vil det betyde for din forskerkarriere, at du indgår i Sapere Aude-programmet?

Jeg er beæret over at modtage en så prestigefyldt pris. Sapere Aude-bevillingen giver mig mulighed for at opbygge et forskerteam omkring mine faglige interesser, og jeg håber også at kunne bruge denne mulighed til at støtte den næste generation af unge forskere ved at bidrage til det samarbejdsmiljø, som jeg har været så heldig at være en del af i mit faglige fællesskab.