Graph-based Verification of Reflective Programs
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.
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.
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.
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.
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.
IT-Universitetet i København
Datalog
København
Johann-Philipp-Reis-Schule Friedberg
Jeg er nysgerrig af natur og elsker at udforske nye ting – især restauranter, caféer, teatre og musik. Der er heldigvis masser af det i smukke København, en by jeg virkelig nyder at bo i, selvom jeg ikke kan lide at cykle. Mine største passioner er litteratur, rejser og madlavning, og jeg har et blødt punkt for dyr.