Optimera kompilatorer för objektorienterade språk tillämpar statisk klassanalys och andra tekniker för att försöka härleda exakt information om de möjliga klasserna av mottagare av meddelanden; om framgångsrika, dynamiskt dispaterade meddelanden kan ersättas med direkta procedursamtal och potentiellt ytterligare optimeras genom inline-expansion. Genom att undersöka hela arvsgrafen för ett program, som vi kallar klasshierarkianalys, kan kompilatorn förbättra kvaliteten på statisk klassinformation och därmed förbättra körtidens prestanda. I detta dokument presenterar vi klasshierarkianalys och beskriver tekniker för att effektivt genomföra denna analys på både statiskt- och dynamiskt-typade språk och även i närvaro av multi-metoder. Vi diskuterar också hur klasshierarkianalyser kan stödjas i en interaktiv programmeringsmiljö och i viss mån i närvaro av separat sammanställning. Slutligen bedömer vi den nedifrån-line prestandaförbättringen på grund av klasshierarki analys ensam och i kombination med två andra "konkurrerande" optimeringar, profilstyrda mottagarklass förutsägelse och metod specialisering.
Klasshierarkianalys och optimering av objektorienterade program syftar till att eliminera dynamiskt-sända meddelanden skickar automatiskt REF.
Optimization of Object-Oriented Programs using Static Class Hierarchy Analysis
{'venue': 'ECOOP', 'journal': None, 'mag_field_of_study': ['Computer Science']}