Dedicerad till Dieter Spreen med anledning av hans 60-årsdag, med tack för hans vänskap och intressanta diskussioner genom åren! Randomness conservation Algoritms Genomsnittlig-case analys Modularitet Kompositionalitet Statisk timing analys Statisk effektanalys Kompositionalitet är den "gyllene nyckeln" till statisk analys och spelar en central roll i statisk värsta-fall-tidsanalys. Vi visar att kompositionalitet, kombinerat med kapaciteten att spåra datadistributioner, låser upp en användbar ny teknik för genomsnittlig analys. Teknikens tillämplighet har visats med hjälp av det statiska medelvärdet för analysverktyget Distri-Track. Verktyget extraherar automatiskt genomsnittlig tid från källkoden för program som genomförs i det nya programmeringsspråket MOQA (Modulär kvantitativ analys). MOQA gör det möjligt att förutsäga det genomsnittliga antalet grundläggande steg som utförs i en beräkning, vilket banar väg för statisk analys av komplexa åtgärder såsom genomsnittlig tid eller genomsnittlig effektförbrukning. MOQA har som en unik funktion en garanterad genomsnittlig case timing kompositionalitet. Kompositionsegendomen medför en stor fördel för programmeraren. Förmågan att kombinera delar av koden, där medeltiden helt enkelt är summan av tiden för delarna, är en mycket användbar fördel i statisk analys, något som inte finns på nuvarande språk. Vidare är återanvändning en nyckelfaktor i MOQA-metoden: när den genomsnittliga tiden bestäms för en kodbit kommer den här gången att hålla i vilket sammanhang som helst. Därför kan den återanvändas och timingens inverkan är alltid densamma. Kompositionalitet förbättrar också precisionen i statisk genomsnittsanalys, vilket stöder fastställandet av korrekta uppskattningar av det genomsnittliga antalet grundläggande operationer i MOQA-program. MOQA "språk" består i huvudsak av en uppsättning datastrukturerande åtgärder tillsammans med villkor, for-loops och recursion. Som sådan MOQA kan införlivas i alla traditionella programmeringsspråk, importera alla sina fördelar i ett bekant sammanhang (MOQA genomförs på VDL i Java 5.0 som MOQA-Java). Kompositionaliteten för genomsnittsfallet är subtil och man kan lätt frestas att dra slutsatsen att kompositionsgraden "kommer gratis". För genuint kompositionstänkande behöver man dock kunna spåra data och deras fördelning under hela beräkningen; ett icke-trivialt problem. Bristen på en effektiv metod för att spåra distributioner har plågat alla tidigare statiska genomsnittsanalysmetoder. Vi visar hur MOQA möjliggör finansiell representation och spårning av fördelningen av datatillstånd under hela beräkningen. Detta gör det möjligt för en att frigöra den sanna potentialen i kompositionstänkande. Kopplingar till reversibel databehandling diskuteras. Den mycket visuella aspekten av detta nya och enhetliga förhållningssätt till analysen av algoritmer har också en pedagogisk fördel, vilket ger studenterna användbara insikter i algoritmernas natur och deras analys.
Ett av de senaste arbetena mot genomsnittliga fall av SRA REF visar att kompositionalitet i kombination med kapacitet för att spåra datadistributioner låser upp den genomsnittliga fallanalysen, men nya språkfunktioner och maskinvarudesigner krävs för att stödja dessa egenskaper.
MOQA; unlocking the potential of compositional static average-case analysis
{'venue': 'J. Log. Algebr. Program.', 'journal': 'J. Log. Algebr. Program.', 'mag_field_of_study': ['Computer Science']}