Allteftersom maskiner och program har blivit mer komplexa har den process av programmeringsprogram som kan utnyttja kraften i högpresterande system blivit svårare och i motsvarande grad mer arbetsintensiv. Detta har avsevärt vidgat programvarugapet – skillnaden mellan behovet av ny programvara och arbetskraftens sammanlagda kapacitet att producera den. Detta problem har förvärrats av den långsamma tillväxten av programmeringsproduktivitet, särskilt för högpresterande program, under de senaste två decennierna. Ett sätt att överbrygga denna klyfta är att göra det möjligt för slutanvändare att utveckla program i domänspecifika programmeringssystem på hög nivå. Tidigare har ett stort hinder för acceptansen av sådana system varit den dåliga prestandan hos de resulterande tillämpningarna. För att ta itu med detta problem utvecklar vi en ny kompilatorbaserad infrastruktur, kallad MetaScript, som kommer att göra det praktiskt att konstruera effektiva skriptbaserade högnivåspråk från kommenterade komponentbibliotek. Dessa språk kallas teleskopspråk, eftersom de kan bo inom varandra. För program skrivna i teleskopspråk, hög prestanda och rimliga sammanställningstider kan uppnås genom att uttömmande analysera komponentbiblioteken i förväg för att producera en språkprocessor som erkänner och optimerar biblioteksverksamheten som primitiva i språket. Nyckeln till att göra denna strategi praktisk är att hålla kompileringstiderna låga genom att generera en anpassad kompilator med omfattande inbyggd kunskap om de underliggande biblioteken. Målet är att uppnå kompileringstider som är linjärt proportionella mot storleken på det program som presenteras av användaren, snarare än till den sammanlagda storleken på det programmet plus basbiblioteken.
Andra kompilatorprojekt kan optimera biblioteksanvändningen, särskilt inom ramen för Telescoping Languages REF.
Telescoping Languages: A strategy for automatic generation of scientific problem-solving systems from annotated libraries
{'venue': 'Journal of Parallel and Distributed Computing', 'journal': None, 'mag_field_of_study': ['Computer Science']}