I detta dokument undersöks förhållandet mellan C++-mallar och partiell utvärdering. Mallar utformades för att stödja allmän programmering, men gav oavsiktligt förmågan att utföra kompilering-tid beräkningar och kodgenerering. Dessa funktioner är helt oavsiktliga, och som ett resultat deras syntax är obekväm. Genom att omarbeta dessa aspekter i form av en partiell utvärdering kan man uppnå en mycket enklare syntax. C++ kan betraktas som ett tvånivåspråk där typer är första klassens värden. Mallinstansion liknar en delutvärderare offline. Detta dokument beskriver förarbete mot en enda mekanism baserad på Partiell utvärdering som förenar generisk programmering, kompilering-tid beräkning och kodgenerering. Språket Catat introduceras för att illustrera dessa idéer.
Optimering inom denna ram uppnås genom att C++ används effektivt som ett tvånivåspråk, med mallen mekanism som används för partiell utvärdering och kodgenerering REF.
C++ Templates as Partial Evaluation
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science']}