{'fraction_non_alphanumeric': 0.013991769547325103, 'fraction_numerical': 0.0, 'mean_word_length': 5.608695652173913, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A compiler infrastructure for research on high-performance Java

This thesis describes the zJava High Level Intermediate Representation (HLIR), which provides a framework for the analysis and restructuring of Java programs at the source code level. The system is designed to minimize the time taken to prototype new compiler analyses, guaranteeing under transformations both the consistency of its internal structure and the syntactic correctness of the represented code. We address several challenges unique to Java, which have not been addressed by earlier frameworks. These include automatic maintenance of complex symbol scope information under transformations, insertion of implicit code to accurately model the source program, incorporation of compiled code into the representation, and representation of the complex control flow of exception handling constructs. We include support for the sharing of information between compiler passes, and mechanisms to support interprocedural analysis. We believe that the features we introduce in the zJava HLIR will result in a means of rapidly prototyping new Java compiler analyses. We give a number of examples illustrating the use and utility of the infrastructure.