I detta dokument presenteras ett förslag till arkitektur för korrekturbärare (PCC) som kallas Lissom. Lissom började som en utmaning för sista året Computing studenter, ansågs vara ett medel för att bevisa för en skeptic community, och i synnerhet för studenter, att formella verifieringsverktyg kan sättas i praktiken i en realistisk miljö, och användas för att lösa komplexa och konkreta problem. Attraktionskraften hos de problem som PCC adresserar har redan fått studenterna att visa intresse för detta projekt. Traditionella PCC-arkitekturer centrerar sina certifieringsgenereringsmekanismer på resultatet av sammanställningen. I linje med de senaste projekten anser vi att det finns stora fördelar med att flytta certifikatgenereringen till källkodsnivån. Eftersom det finns bra verktyg för verifiering av källkod och för formell verifiering i allmänhet, är det ett inslag i Lissom-plattformen att befintliga verktyg används så mycket som möjligt vid viktiga punkter i dess infrastruktur. Vår vision av PCC bygger på följande två underliggande principer: • Källnivå PCC är vägen. Vi anser att den realistiska formella kontrollen av mobilkoden bör utföras på källnivå. Programmerare kan vara omedvetna om detaljerna i målarkitekturen, och i allmänhet uttrycks algoritmiska konstruktioner på källnivå. • Återanvänd så mycket som möjligt. Det finns gott om kraftfulla verktyg för formell verifiering av källkod. Sådana verktyg har redan upplevt användargemenskaper och har nått en märkbar mognadsnivå och flexibilitet som gör dem naturliga val inom ramen för en PCC-arkitektur på källnivå. Vårt huvudmål med Lissom är att få erfarenhet av PCC och att omsätta det i praktiken. Vi beskriver nu den föreslagna arkitekturen för Lissom-plattformen (se figur nedan). Källspråket och kompilatorn. LISS (Språk för Integers Sets och Sequences) är ett icke-trivialt leksaksspråk som också har ett realistiskt typsystem (t.ex. set, vektorer a la Java, etc.) och högnivåkonstruktioner. LISS är avsett här som en lämplig testbädd innan man siktar på ett språk på industriell nivå. Detta språk måste utvidgas för att tillhandahålla ett notsystem för källkoden. I en källa nivå PCC arkitektur, kompilatorn måste sammanställa källkod men också bevis i sin maskin nivå motsvarighet. En mycket intressant utmaning är att omvandla en källa nivå strukturella bevis (säkrar starkt förlitar sig på strukturen i det analyserade programmet) till ett bevis som fortfarande är strukturellt nära maskinen nivåkod. Vi följer här bidragen från [1]).
Lissom är en källa nivå PCC-plattform REF som ger VCs i Varför verktygset [CM09] och Coq proof assistent [INR06].
Lissom, a Source Level Proof Carrying Code Platform
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science']}