En kompilatorkompilator är ett program som tar en syntaktisk eller semantisk beskrivning av ett programmeringsspråk och genererar en kompilator för det språket [1] .
Syntaxen uttrycks som en BNF eller dess derivata och måste uppfylla reglerna för analysmetoden som kommer att användas i den genererade kompilatorn.
Ett språks semantik beskrivs vanligtvis genom att associera en kodgenereringsprocedur med varje syntaktisk konstruktion, med den nödvändiga proceduren som anropas när den motsvarande konstruktionen känns igen av parsern. Således behöver användaren av kompilatorkompilatorerna i vilket fall som helst utveckla exekveringsstrukturer och välja ett sätt att konvertera varje syntaktisk ingångskonstruktion till utdataspråkoperationer eller till maskinoperationer , varefter det är nödvändigt att skriva de faktiska kodgenereringsprocedurerna. Därför är kompilatorn av kompilatorer ett användbart verktyg för att hjälpa dig att skriva kompilatorer, men inget mer.
Strängt taget är parsergeneratorn en del av kompilatorn av kompilatorer, men de två termerna används ofta omväxlande.