Abstrakt. I denna artikel introducerar vi en ny modell för kompilering och kompilering konstruktion, CoSy (COmpiler SYstam) modell. CoSy tillhandahåller en ram för exibel kombination och inbäddning av kompilatorfaser som kallas motorer i uppföljaren  på ett sådant sätt att konstruktionen av parallella och (inter-procedural) optimerande kompilatorer underlättas. I CoSy en kompilator författare kan programmera någon fas i ett målspråk och bädda in det transparent utan källkod förändringar  på olika kompilator sammanhang, såsom med alternativ fas ordning, spekulativ utvärdering 4, parallell utvärdering och generera-och-test utvärdering. Kompilatorer konstruerade med CoSy kan ställas in för olika värdsystem (systemet som kompilatorn kör på, inte systemet som den producerar kod för) och är transparent skalbara för (delat minne) multiprocessorvärden. För att uppnå detta tillhandahåller CoSy ett motorbeskrivningsspråk (EDL) som gör det möjligt att beskriva kontroll ow och interaktion av kompilatormotorer. Ett nytt strukturbeskrivningsspråk (fSDL) införs för specificering av data, tillträdessidans eekter och kontroll av synligheten. En konturbeskrivning (CCL) används för att anpassa inbäddningen av motorerna till värdsystemets egenskaper och begränsningar. För att garantera transparent inbäddning inför CoSy för varje motor en logisk syn på den gemensamma mellanrepresentationen. CoSy genererar kod som kartlägger dessa vyer på den fysiska representationen, kod som hjälper programmeraren att manipulera den, samt kod som schemalägger samspelet mellan motorerna. Den föreslagna modellen för sammanställning beror inte på källspråk, programmeringsspråk eller värdarkitektur. Det är inte begränsat till kompilatorkonstruktion och kan ha tillämpningar inom ett brett område inom programvaruteknik.
I REF, Alt et al. föreslå CoSy-modellen, som ger en ram för flexibel kombination och inbäddning av kompilatorfaser för att underlätta konstruktionen av parallella och optimerande kompilatorer.
Cosy Compiler Phase Embedding with the CoSy Compiler Model
{'venue': 'CC', 'journal': None, 'mag_field_of_study': ['Computer Science']}