资源描述:
《A New C Compiler, By Ken Thompson》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、ANewCCompilerKenThompsonAT&TBellLaboratoriesMurrayHill,NewJersey07974ABSTRACTThispaperdescribesyetanotherseriesofCcompilers.ThesecompilersweredevelopedoverthelastseveralyearsandarenowinuseonPlan9.Thesecompilersareexperimentalinnatureandweredevelopedt
2、otryoutnewideas.Someoftheideasweregoodandsomenotsogood.1.IntroductionMostCcompilersconsistofamultitudeofpasseswithnumerousinterfaces.AtypicalCcompilerhasthefollowingpasses±pre-processing,lexicalanalysisandparsing,codegeneration,optionalassemblyoptimi
3、-sation,assembly(whichitselfisusuallymultiplepasses),andloading.[Joh79a]Ifoneprofileswhatisgoingoninthiswholeprocess,itbecomesclearthatI/Odominates.Ofthecpucyclesexpended,mostgointoconversiontoandfromintermediatefileformats.Evenwiththesemanypasses,th
4、ecodegeneratedismostlyline-at-a-timeandnotveryefficient.Withtheseconventionalcompil-ersasbenchmarks,itseemedeasytomakeanewcompilerthatcouldexecutemuchfasterandstillproducebettercode.ThefirstthreecompilersbuiltwerefortheNational32000,Western32100,anda
5、ninternalcomputercalledaCrisp.Thesecompilershavedriftedintodisuse.CurrentlythereareactivecompilersfortheMotorola68020andMIPS2000/3000computers.[Mot85,Kan88]2.StructureThecompilerisasingleprogramthatproducesanobjectfile.Combinedinthecompilerarethetrad
6、itionalrolesofpre-processor,compiler,codegenerator,localoptimiser,andfirsthalfoftheassembler.Theobjectfilesarebinaryformsofassemblylanguage,similartowhatmightbepassedbetweenthefirstandsecondpassesofanassembler.Objectfilesandlibrariesarecombinedandloa
7、dedbyasecondprogramtoproducetheexecutablebinary.Theloadercombinestherolesofsecondhalfoftheassembler,globaloptimiser,andloader.Thereisathirdsmallprogramthatservesasanassembler.Ittakesanassembler-likeinputandperformsasimpletranslationintotheobjectforma
8、t.3.TheLanguageThecompilerimplementsANSICwithsomerestrictionsandextensions.[Ker88]Ifthishadbeenaproduct-orientedprojectratherthanaresearchvehicle,thecompilerwouldhaveimplementedexactANSIC.Severalofthepoorerfeatureswereleftout.Also,severalextensionswe