Abstrakt. CompCert är en formellt verifierad kompilator som genererar kompakt och effektiv PowerPC-, ARM- och x86-kod för en stor och realistisk delmängd av C-språket. CompCert avstår dock från att använda Static Single Inmission (SSA), en mellanrepresentation som gör det möjligt att skriva enklare och snabbare optimerare, och som används av många kompilatorer. I själva verket har det förblivit ett öppet problem att kontrollera formellt en SSA-baserad kompilator mitten-end. Vi rapporterar om en formellt verifierad, SSA-baserad, mellan-end för CompCert. Vår medelpunkt utför konvertering från CompCert mellanform till SSA-form, optimering av SSA-program, inklusive Global Value Numbering, och transformerar ut från SSA till mellanform. Förutom att tillhandahålla den första formellt verifierade SSA-baserade mitten-end, tar vi itu med två problem som togs upp av Leroy [13]: att ge en enkel och intuitiv formell semantik till SSA, och utnyttja de globala egenskaperna hos SSA för att resonera lokalt om programoptimeringar.
CompCertSSA-projektet REF förbättrar CompCert-kompilatorn genom att skapa en verifierad SSA-baserad mittend.
A formally verified SSA-Based middle-end: Static single assignment meets compcert
{'venue': 'ESOP', 'journal': None, 'mag_field_of_study': ['Computer Science']}