{"title":"一个面向对象的元编程系统","authors":"O. Madsen, C. Nogaard","doi":"10.7146/DPB.V16I236.7592","DOIUrl":null,"url":null,"abstract":"The Mjolner programming environment is discussed. A number of tools in this environment are metaprograms, i.e., programs that manipulate other programs. The metaprogramming system is grammar-based in the sense that a metaprogramming tool may be generated from the grammar of any language. For each syntactic category of the language, a corresponding class is generated. The syntactic hierarchy of the grammar is mapped into a corresponding class hierarchy. This object-oriented representation of programs is further exploited by including a set of more general classes that view a program as an abstract syntax tree and by allowing the user to add semantic attributes in subclasses.<<ETX>>","PeriodicalId":148246,"journal":{"name":"[1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track","volume":"70 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"31","resultStr":"{\"title\":\"An object-oriented metaprogramming system\",\"authors\":\"O. Madsen, C. Nogaard\",\"doi\":\"10.7146/DPB.V16I236.7592\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The Mjolner programming environment is discussed. A number of tools in this environment are metaprograms, i.e., programs that manipulate other programs. The metaprogramming system is grammar-based in the sense that a metaprogramming tool may be generated from the grammar of any language. For each syntactic category of the language, a corresponding class is generated. The syntactic hierarchy of the grammar is mapped into a corresponding class hierarchy. This object-oriented representation of programs is further exploited by including a set of more general classes that view a program as an abstract syntax tree and by allowing the user to add semantic attributes in subclasses.<<ETX>>\",\"PeriodicalId\":148246,\"journal\":{\"name\":\"[1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track\",\"volume\":\"70 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1900-01-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"31\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"[1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.7146/DPB.V16I236.7592\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"[1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.7146/DPB.V16I236.7592","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
The Mjolner programming environment is discussed. A number of tools in this environment are metaprograms, i.e., programs that manipulate other programs. The metaprogramming system is grammar-based in the sense that a metaprogramming tool may be generated from the grammar of any language. For each syntactic category of the language, a corresponding class is generated. The syntactic hierarchy of the grammar is mapped into a corresponding class hierarchy. This object-oriented representation of programs is further exploited by including a set of more general classes that view a program as an abstract syntax tree and by allowing the user to add semantic attributes in subclasses.<>