PPPJ/IREPub Date : 2002-06-13DOI: 10.1145/638476.638482
Eric E. Allen, Robert Cartwright
{"title":"The case for run-time types in generic Java","authors":"Eric E. Allen, Robert Cartwright","doi":"10.1145/638476.638482","DOIUrl":"https://doi.org/10.1145/638476.638482","url":null,"abstract":"Since the advent of the Java Programming Language in 1995, many thoughtful proposals have been made for adding generic types to the Java programming language. Generic types are a glaring omission from the existing language, forcing programmers to use permissive, non-parametric type signatures for fields and methods of \"naturally generic\" classes (such as java.util.Vector) and repeatedly cast the results of operations on these classes to the more specific types. The JSR14 extension of Java proposed by Sun Microsystems (based on GJ) addresses this problem by adding generic types to the language, but prohibits operations that depend on run-time generic type information. This prohibition relegates generic types to \"second-class\" status where they are invisible at run-time, which is inconsistent with the status of types including parametric arrray types in the existing language. We have implemented a generalization of JSR14 called NextGen that supports the same syntactic extensions of Java of JSR14 yet eliminates the prohibition on operations that depend on run-time generic type information. In NextGen. generic types are \"first-class\": they can be used in excactly the same contexts as conventional types. The implementation of NextGen compiler is derived from the same prototype GJ compiler as the JSR14 compiler and shares most of its desirable properties including a high degree of compatibility with legacy code. In this paper, we show through of a series of programming examples that first-class generic types play an important role in writing clean generic code.","PeriodicalId":120999,"journal":{"name":"PPPJ/IRE","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124937596","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PPPJ/IREPub Date : 2002-06-13DOI: 10.1145/638476.638494
Z. He, D. Bustard, X. Liu
{"title":"Software internationalisation and localisation: practice and evolution","authors":"Z. He, D. Bustard, X. Liu","doi":"10.1145/638476.638494","DOIUrl":"https://doi.org/10.1145/638476.638494","url":null,"abstract":"Programming continues to be an increasingly complex task. Developing new software and re-engineering existing software for the international market adds further complexity to the process. A better understanding of software internationalisation and localisation approaches helps managers to supervise development teams more efficiently and effectively. Such an understanding will also help programmers to be more productive by developing software in standard ways that provide the necessary flexibility. This paper proposes a classification of approaches to software internationalisation and localisation. It summarises them as an evolutionary sequence, ranging from the early localisation-only approach up to the current internationalisation-before-localisation approaches. It is suggested that managers and programmers should be aware of these approaches to define and regulate their development processes in a way that facilitates current and fttture internationalisation and localisation requirements.","PeriodicalId":120999,"journal":{"name":"PPPJ/IRE","volume":"60 4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125424028","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PPPJ/IREPub Date : 2002-06-13DOI: 10.1145/638476.638484
Markus Mohnen
{"title":"Interfaces with default implementations in Java","authors":"Markus Mohnen","doi":"10.1145/638476.638484","DOIUrl":"https://doi.org/10.1145/638476.638484","url":null,"abstract":"With the interface construct, Java features a concept with high potential for producing reusable code: Java's interfaces allow the definition of class properties independently of class inheritance. We propose an extension of Java for providing default implementations in interfaces. Default implementations are useful since they reduce the effort required to implement an interface. They are especially interesting if there is a canonical way to implement methods of the interface in terms of some other methods. In these cases, an implementation can be obtained by implementing the base methods and use the default implementations of the other methods.","PeriodicalId":120999,"journal":{"name":"PPPJ/IRE","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115497715","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PPPJ/IREPub Date : 2002-06-13DOI: 10.1145/638476.638498
Aoileann nic Gearailt
{"title":"Using Java to increase active learning in programming courses","authors":"Aoileann nic Gearailt","doi":"10.1145/638476.638498","DOIUrl":"https://doi.org/10.1145/638476.638498","url":null,"abstract":"Introductory courses in Programming often have many objectives, some explicit and some implicit. Increased pressure to cater for a wide range of abilities and backgrounds within the same class-group leads to a conflict between the need to lay solid foundations for the student who will eventually make a career as a software developer, and the need to provide a useful and rewarding learning experience which imparts some understanding of the principles of programming to the others. This paper proposes that giving students early access to a minimal graphical interface for input and output and tailoring examples towards colour and animation instead of account balances and inventories can improve the motivation of the masses without sacrificing the rigour needed by the few. Java is ideal for this purpose but care needs to be taken to keep complexity of both graphics and environment to a minimum.","PeriodicalId":120999,"journal":{"name":"PPPJ/IRE","volume":"120 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132554689","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PPPJ/IREPub Date : 2002-06-13DOI: 10.1145/638476.638508
Markus Mohnen
{"title":"An open framework for data-flow analysis in Java: extended abstract","authors":"Markus Mohnen","doi":"10.1145/638476.638508","DOIUrl":"https://doi.org/10.1145/638476.638508","url":null,"abstract":"We describe work in progress on a framework for data-flow based program analysis. By using this framework, researchers and developers can easily implement analyses, test their correctness, and evaluate their performance. In addition, the framework allows the definition of intraprocedural analyses for Java Virtual Machine (JVM) code on a high level of abstraction.The framework is provided as a set of APIs for Java. Through the extensive use of Java interface concept, we established an open framework: For instance, specific implementations of abstract domains can easily be used in our framework.","PeriodicalId":120999,"journal":{"name":"PPPJ/IRE","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122032733","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PPPJ/IREPub Date : 2002-06-13DOI: 10.1145/638476.638485
C. Krintz
{"title":"Using adaptive optimization techniques to teach mobile Java computing","authors":"C. Krintz","doi":"10.1145/638476.638485","DOIUrl":"https://doi.org/10.1145/638476.638485","url":null,"abstract":"Dynamic, adaptive optimization is quickly becoming vital to the future of high-performance, mobile computing using Java. These compilation environments have the potential to enable ubiquitous computing on resources that together represent greater computing power than that which can be extracted from existing supercomputers. As a result, we believe that mobile computing requires new curricular directions for compilers and the Java Programming Language that focuses on adaptive techniques, has a performance orientation, and is empirical. We describe such a course that we recently implemented at the University of California, Santa Barbara.","PeriodicalId":120999,"journal":{"name":"PPPJ/IRE","volume":"85 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127131794","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PPPJ/IREPub Date : 2002-06-13DOI: 10.1145/638476.638510
Michael Thies
{"title":"Annotating Java libraries in support of whole-program optimization","authors":"Michael Thies","doi":"10.1145/638476.638510","DOIUrl":"https://doi.org/10.1145/638476.638510","url":null,"abstract":"Optimizing just-in-time compilation of Java programs depends on information gained from state-of-the-art program analysis techniques. To avoid extensive analysis at program execution time, analysis results for the available parts of a program can be precomputed at compile time and then combined at runtime. Program analyses operate on isolated program modules like libraries and annotate them with information that can be post-processed efficiently. We have applied this approach to several concrete analysis problems and have analyzed real world Java libraries and application programs. The precomputed information shows low complexity and benign dependency structures that allow for fast composition and effective optimization at runtime.","PeriodicalId":120999,"journal":{"name":"PPPJ/IRE","volume":"74 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127377607","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PPPJ/IREPub Date : 2002-06-13DOI: 10.1145/638476.638490
Thomas M. Keane, R. Allen, T. Naughton, J. McInerney, J. Waldron
{"title":"Distributed computing for DNA analysis","authors":"Thomas M. Keane, R. Allen, T. Naughton, J. McInerney, J. Waldron","doi":"10.1145/638476.638490","DOIUrl":"https://doi.org/10.1145/638476.638490","url":null,"abstract":"We report on extensions to a Java distributed computation library (JDCL) by Fritsche, Power, and Waldron, with application to a problem in the field of bioinformatics. Within our framework the system has been extended to support applications requiring a MIMD (multiple instruction, multiple data) architecture. The system has been evaluated through a DNA pattern matching application over a network of 90 PCs. The user is required to extend only two Java classes to completely configure a distributed computation.","PeriodicalId":120999,"journal":{"name":"PPPJ/IRE","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126701081","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}