Code Compressie Frank F.A. van der Pijl
Indeling LiteratuurLiteratuur Introductie van het probleemIntroductie van het probleem ProbleemProbleem Overzicht van oplossingsstructuurOverzicht van oplossingsstructuur DetailsDetails ResultatenResultaten Relatie met ander werkRelatie met ander werk ConclusieConclusie
Literatuur Custom Instruction Sets for Code CompressionCustom Instruction Sets for Code Compression Christopher W. Fraser, AT & T Bell LaboratoriesChristopher W. Fraser, AT & T Bell Laboratories Todd A. Proebsting, University of ArizonaTodd A. Proebsting, University of Arizona Computer Architecture, a Quantitative ApproachComputer Architecture, a Quantitative Approach David A. Patterson, University of California at BerkeleyDavid A. Patterson, University of California at Berkeley John L. Hennessy, Stanford UniversityJohn L. Hennessy, Stanford University
Introductie van het Probleem CompressieCompressie Tijd besparenTijd besparen Ruimte besparenRuimte besparen
Probleem Het doel is om een willekeurig C programma automatisch te compilen naar een compacte ruimte efficiënte interpreter en interpretive codeHet doel is om een willekeurig C programma automatisch te compilen naar een compacte ruimte efficiënte interpreter en interpretive code C programma Switch(bla) Case (... Bla bla B3 = b5 break compilen Interpreter Interpretive code
Overzicht van Oplossingsstructuur Program to compress Trees as ASCII Tree patterns Code generator Instruction set generator Interpreter en interpretive code Trees as C initializer
Boomstructuur Program to compress Trees as ASCII Tree patterns Code generator Instruction set generator Interpreter and interpretive code Trees as C initializer ASCII beelden van code C initializers
Boomsubstructuur Program to compress Trees as ASCII Tree patterns Code generator Instruction set generator Interpreter and interpretive code Trees as C initializer Subbomen Gunstige instructieset
Algoritme Program to compress Trees as ASCII Tree patterns Code generator Instruction set generator Interpreter and interpretive code Trees as C initializer iburg Minste-kosten-overdekking
Optimale instructieset Program to compress Trees as ASCII Tree patterns Code generator Instruction set generator Interpreter and interpretive code Trees as C initializer Automatisch
Interpretive code en interpreter Program to compress Trees as ASCII Tree patterns Code generator Instruction set generator Interpreter and interpretive code Trees as C initializer Implementatie
Details C programma’sC programma’s Program to compress Trees as ASCII Tree patterns Code generator Instruction set generator Interpreter and interpretive code Trees as C initializer
Generatie van een boomstructuur LCC compilerLCC compiler Tekstuele representatieTekstuele representatieVoorbeeld AssignInteger(AddressOfGlobal[x], ConstantInteger[0])
Generatie boomsubstructuren AssignInteger(AddressOfGlobal[x], ConstantInteger[0])AssignInteger(AddressOfGlobal[x], ConstantInteger[0]) AssignInteger(AddressOfGlobal[x], *)AssignInteger(AddressOfGlobal[x], *) AssignInteger(*, ConstantInteger[0])AssignInteger(*, ConstantInteger[0]) AssignInteger(*, *)AssignInteger(*, *) *: AddressOfGlobal[x]*: AddressOfGlobal[x] *: ConstantInteger[0]*: ConstantInteger[0]
Generatie code generator Generator accepteert boomstructurenGenerator accepteert boomstructuren Minste kosten boombedekkingMinste kosten boombedekkingVoorbeeld AssignInteger(*, ConstantInteger[*]) AssignInteger(*, ConstantInteger[0])
Algoritme Waarom werkt het?Waarom werkt het? instructies
Resultaten Compressiefactor 2Compressiefactor Compressie factor Max knopen per instructie lcc lccburg
Relatie met ander werk Compressie via boomstructurenCompressie via boomstructuren StatistiekStatistiek
Conclusie Trade-off saving time-saving space Software implementatie Veel onderzoek