För att skapa en effektiv samlingskod i en kompilator är det viktigt att registrera allokering (variabler för processorregister eller minne) och schemaläggning av instruktioner (beställningsinstruktioner för att öka parallellismen på undervisningsnivå). Under de senaste tre decennierna har kombinatorisk optimering utvecklats som ett alternativ till traditionella, heuristiska algoritmer för dessa två uppgifter. Kombinatoriska optimeringsmetoder kan leverera optimala lösningar enligt en modell, kan exakt fånga kompromisser mellan motstridiga beslut och är mer flexibla på bekostnad av ökad sammanställningstid. Denna artikel ger en uttömmande litteratur översyn och en klassificering av kombinatoriska optimeringsmetoder för att registrera tilldelning och undervisning schemaläggning, med fokus på de tekniker som är mest tillämpade i detta sammanhang: heltal programmering, begränsning programmering, partitionerad Booleska quadratic programmering, och uppräkning. Forskare inom kompilatorer och kombinatorisk optimering kan dra nytta av att identifiera utvecklingar, trender och utmaningar i området; kompilatorutövare kan urskilja möjligheter och förstå den potentiella nyttan av att tillämpa kombinatorisk optimering.
I REF ges en enkät om fördelning av kombinatoriska register och schemaläggning av instruktioner.
Survey on Combinatorial Register Allocation and Instruction Scheduling
{'venue': 'CSUR', 'journal': None, 'mag_field_of_study': ['Computer Science']}