MetaJC++:使用元框架的灵活和自动的程序转换技术

Nadera S. Beevi, M. Reghu, D. Chitraprasad, S. S. Vinodchandra
{"title":"MetaJC++:使用元框架的灵活和自动的程序转换技术","authors":"Nadera S. Beevi, M. Reghu, D. Chitraprasad, S. S. Vinodchandra","doi":"10.2478/s13531-013-0161-2","DOIUrl":null,"url":null,"abstract":"Compiler is a tool to translate abstract code containing natural language terms to machine code. Meta compilers are available to compile more than one languages. We have developed a meta framework intends to combine two dissimilar programming languages, namely C++ and Java to provide a flexible object oriented programming platform for the user. Suitable constructs from both the languages have been combined, thereby forming a new and stronger Meta-Language. The framework is developed using the compiler writing tools, Flex and Yacc to design the front end of the compiler. The lexer and parser have been developed to accommodate the complete keyword set and syntax set of both the languages. Two intermediate representations have been used in between the translation of the source program to machine code. Abstract Syntax Tree has been used as a high level intermediate representation that preserves the hierarchical properties of the source program. A new machine-independent stack-based byte-code has also been devised to act as a low level intermediate representation. The byte-code is essentially organised into an output class file that can be used to produce an interpreted output. The results especially in the spheres of providing C++ concepts in Java have given an insight regarding the potential strong features of the resultant meta-language.","PeriodicalId":407983,"journal":{"name":"Central European Journal of Engineering","volume":"1 3","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-04-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"MetaJC++: A flexible and automatic program transformation technique using meta framework\",\"authors\":\"Nadera S. Beevi, M. Reghu, D. Chitraprasad, S. S. Vinodchandra\",\"doi\":\"10.2478/s13531-013-0161-2\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Compiler is a tool to translate abstract code containing natural language terms to machine code. Meta compilers are available to compile more than one languages. We have developed a meta framework intends to combine two dissimilar programming languages, namely C++ and Java to provide a flexible object oriented programming platform for the user. Suitable constructs from both the languages have been combined, thereby forming a new and stronger Meta-Language. The framework is developed using the compiler writing tools, Flex and Yacc to design the front end of the compiler. The lexer and parser have been developed to accommodate the complete keyword set and syntax set of both the languages. Two intermediate representations have been used in between the translation of the source program to machine code. Abstract Syntax Tree has been used as a high level intermediate representation that preserves the hierarchical properties of the source program. A new machine-independent stack-based byte-code has also been devised to act as a low level intermediate representation. The byte-code is essentially organised into an output class file that can be used to produce an interpreted output. The results especially in the spheres of providing C++ concepts in Java have given an insight regarding the potential strong features of the resultant meta-language.\",\"PeriodicalId\":407983,\"journal\":{\"name\":\"Central European Journal of Engineering\",\"volume\":\"1 3\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2014-04-03\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Central European Journal of Engineering\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.2478/s13531-013-0161-2\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Central European Journal of Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.2478/s13531-013-0161-2","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

摘要

编译器是一种将包含自然语言术语的抽象代码转换为机器代码的工具。元编译器可用于编译多种语言。我们开发了一个元框架,打算结合两种不同的编程语言,即c++和Java,为用户提供一个灵活的面向对象的编程平台。两种语言的合适结构被结合在一起,从而形成了一种新的、更强大的元语言。该框架的开发使用了编译器编写工具Flex和Yacc来设计编译器的前端。词法分析器和解析器的开发是为了适应这两种语言的完整关键字集和语法集。在源程序到机器码的转换之间使用了两种中间表示。语法树被用作高级的中间表示,它保留了源程序的层次属性。还设计了一种新的与机器无关的基于堆栈的字节码,作为低级的中间表示。字节码本质上被组织到一个输出类文件中,该文件可用于产生解释输出。特别是在Java中提供c++概念方面的结果,使人们对由此产生的元语言的潜在强大特性有了深入的了解。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
MetaJC++: A flexible and automatic program transformation technique using meta framework
Compiler is a tool to translate abstract code containing natural language terms to machine code. Meta compilers are available to compile more than one languages. We have developed a meta framework intends to combine two dissimilar programming languages, namely C++ and Java to provide a flexible object oriented programming platform for the user. Suitable constructs from both the languages have been combined, thereby forming a new and stronger Meta-Language. The framework is developed using the compiler writing tools, Flex and Yacc to design the front end of the compiler. The lexer and parser have been developed to accommodate the complete keyword set and syntax set of both the languages. Two intermediate representations have been used in between the translation of the source program to machine code. Abstract Syntax Tree has been used as a high level intermediate representation that preserves the hierarchical properties of the source program. A new machine-independent stack-based byte-code has also been devised to act as a low level intermediate representation. The byte-code is essentially organised into an output class file that can be used to produce an interpreted output. The results especially in the spheres of providing C++ concepts in Java have given an insight regarding the potential strong features of the resultant meta-language.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信