Print Email Facebook Twitter Extending the Java Programming Language with Generators Title Extending the Java Programming Language with Generators Author Guzman Carmona, J. Faculty Electrical Engineering, Mathematics and Computer Science Department Software Technology Date 2009-05-29 Abstract The Java programming language allows to create portable applications in a variety of domains. With the continuous development and demanding environment in industrial and research fields many proposals exist to extend the language in order to facilitate a more easier development and implementation of applications. Many extensions have been implemented by applying several program transformation techniques such as Domain Specific Languages (DSLs), extensions to existing compilers, language extension assimilation, intermediate code transformation and strategy rewriting frameworks. A particular extension that has not yet been integrated in the Java programming language and merits further research is generators. This extension allows an easier implementation of iterators and is suitable for many other patterns due to its semantics. In this thesis report we introduce generators and discuss the design and implementation of a non-intrusive solution that extends the Java programming language with this construct by means of intermediate code manipulation (bytecode weaving). We also evaluate the implemented solution and demonstrate a sample application where we assess the performance of generators. Finally, we discuss our experiences of implementing this extension in relation to a solution for language extensions in general by means of this non-intrusive approach. Subject Program trasformationbytecode manipulationbytecode weavingJavaGeneratorsLanguage extensions To reference this document use: http://resolver.tudelft.nl/uuid:37f13821-17cc-4aa1-a75a-497c36d2c384 Part of collection Student theses Document type master thesis Rights (c) 2009 Guzman Carmona, J. Files PDF thesis_Jonathangc.pdf 1.19 MB Close viewer /islandora/object/uuid:37f13821-17cc-4aa1-a75a-497c36d2c384/datastream/OBJ/view