Project
Gevorderd meertraps programmeren met computationele effecten
De productiviteit van software-ontwikkelaars en de performantie van hun code primeren beide, maar moeilijk samen na te streven. Het eerste vereist rijke abstractielagen en zeer herbruikbare, context-onafhankelijke code. Het tweede vereist code zonder generische overhead of indirecties, volledig toegespits op zijn context. Algemene geoptimaliseerde compilatie kan de performantie van hoog-niveau code automatisch verbeteren, maar is verre van optimaal. Technieken voor codegeneratie zijn veel beloftevoller omdat ze in de vorm van "actieve bibliotheken" hoog-niveau APIs aanbieden die kennis van het probleemdomein en de codestructuur uitbuiten om sterk getunede code te produceren. Standaard codegeneratietechnieken (bv., C++ templates) zijn echter erg foutgevoelig en moeilijk te debuggen. Meertraps programmeren belooft deze drempel gevoelig te verlagen door op het niveau van generatoren sterke statische garanties te geven betreffende de hygiene en typering. Dit project heeft tot doel om de state-of-the-art van meertraps programmeren te verleggen. In het bijzonder zullen we de interactie met computationele effecten ontwikkelen. Het bestaande werk richt zich immers voornamelijk op effect-vrije code terwijl effecten essentieel zijn bij de functionaliteit en/of performantie van de meeste applicaties. We volgen een fundamentele aanpak met de ontwikkeling van een formele calculus voor meertraps programmeren met effecten, en complementeren deze met praktische case studies.