Abstrakt. CLOUDMAKE är en programvara verktyg som automatiskt bygger körbara program och bibliotek från källkod-ett modernt MAKE verktyg. Dess design ger upphov till ett antal möjliga optimeringar, som cachade byggen, och de körbara som ska byggas beskrivs med hjälp av ett funktionellt programmeringsspråk. Detta papper formellt och mekaniskt verifierar riktigheten av centrala CLOUSMAKE algoritmer. Papperet definierar CLOUDMAKE språk med hjälp av en operativ semantik, men med en twist: den centrala operation exec definieras axiomatiskt, vilket gör det pluggbart så att det kan ersättas av samtal till kompilatorer, länkar och andra verktyg. Formaliseringen och bevisen för de centrala CLOUDMAKE algoritmerna görs helt i DAFNY, vars bevismotor är en SMT-baserad programkontrollant. Att bygga binära versioner av programvara från källkod är en central del av programvaruteknik. För större projekt är detta mycket mer involverat än att bara åberopa en kompilator på en uppsättning källfiler. Man bryr sig om att göra processen repeterbar och effektiv (t.ex., genom att återuppbygga endast de artefakter vars källor har förändrats sedan den senaste bygget). För att underlätta en bra byggprocess, är det viktigt att hålla reda på vilka artefakter beror på vilka andra artefakter. Ett välkänt verktyg för att bygga programvara är MAKE, där beroendena ges av användare [2]. Med tanke på att den önskade utdata artefakten är en funktion av källan artefakter, erbjuder VESTA-2 systemet ett funktionellt programmeringsspråk med vilken man kan beskriva byggreceptet [3]. Korrektheten i byggsystemet och eventuella optimeringar det utför är avgörande för hela programvaruutvecklingsorganisationen, så det är vettigt att spendera den ansträngning som krävs för att säkerställa att systemet är korrekt. CLOUSMAKE är en MAKE-liknande verktyg för att bygga mål artefakter från källan artefakter. I detta papper beskriver och formellt verifierar vi den grundläggande algoritm som används av CLOUDMAKE och en nyckeloptimering den använder. Bygg recept i CLOUDMAKE är, som i VESTA-2, fångas av program skrivna i ett eponymous funktionellt programmeringsspråk. Den extensible naturen av CLOUDMAKE beror på en primitiv operation som kallas exec, som, med tanke på en uppsättning beroenden, åberopar en extern byggverktyg för att härleda en uppsättning artefakter.
Ett annat exempel är formaliseringen av Cloudmake algoritm REF.
Formalizing and Verifying a Modern Build Language
{'venue': 'FM', 'journal': None, 'mag_field_of_study': ['Computer Science']}