Academia.eduAcademia.edu

Compiler Construction

description860 papers
group1,770 followers
lightbulbAbout this topic
Compiler Construction is the field of computer science focused on the design, implementation, and optimization of compilers, which are programs that translate source code written in high-level programming languages into machine code or intermediate representations, enabling execution on computer hardware.
lightbulbAbout this topic
Compiler Construction is the field of computer science focused on the design, implementation, and optimization of compilers, which are programs that translate source code written in high-level programming languages into machine code or intermediate representations, enabling execution on computer hardware.

Key research themes

1. How can compiler design be modular and didactic to enhance learning and practical implementation?

This research theme investigates methodologies and tools to structure compiler construction education in a modular way, allowing clear visibility into compiler phases through intermediate representations. It prioritizes pedagogical clarity and reusability by employing human-readable artifacts like XML and leveraging high-level languages such as Python. The goal is to improve both the understanding of compilation processes for students and the practical maintainability of compiler components.

Key finding: This paper presents a modular compiler for a Pascal-like minilanguage where each compilation phase outputs data as an XML document. This approach provides semiotic representations at different abstraction levels, enabling... Read more
Key finding: Offers a comprehensive overview emphasizing the integration of formal methods with practical construction. Highlights the importance of forming connections between theoretical grammars and their application in compiler... Read more
Key finding: Introduces VisualLISA, a graphical front-end for the LISA compiler generator enabling visual construction of attribute grammar productions. By translating visual specifications (expressed as compositions of predefined icons)... Read more
Key finding: Explores automatic generation of compilers/interpreters from sample programs using semantic inference, addressing the high computational cost due to code bloat in generated specifications. The implementation of... Read more

2. How can compiler construction leverage parallel and ML-enabled techniques for optimization and auto-parallelization?

This research theme focuses on integrating multi-core architecture exploitation and machine learning methods into compiler design to enhance automatic parallelization and optimization. It addresses the analysis of dependencies, workload partitioning, and compilation phase parallelization to improve compilation speed and resulting program performance. Additionally, it investigates seamless integration frameworks to enable ML model development and deployment within compiler infrastructures, emphasizing scalability, modularity, and interaction efficiency.

Key finding: Proposes a front-end design for an auto-parallelizing compiler that parallelizes lexical, syntax, semantic analysis, and IR generation phases using data dependency graphs to utilize multi-core architectures efficiently.... Read more
Key finding: Presents the ML-Compiler-Bridge library enabling ML model development within Python frameworks with efficient, tightly coupled integration into optimizing compilers. It supports multiple model runners and serialization... Read more
Key finding: Develops a methodology for scalable data-parallel Datalog solvers by compiling Datalog programs to parallel relational algebra executable on clusters using MPI. Implements a parallel relational algebra machine (PRAM) enabling... Read more
Key finding: Introduces VALU, a loop unrolling heuristic tightly coupled with superword-level parallelism (SLP) vectorization. VALU predicts vectorization benefits on unrolled loops prior to unrolling, selecting unroll factors maximizing... Read more

3. What challenges and solutions arise for preserving and operating on preprocessor directives during compiler parsing and refactoring?

This research theme explores how compiler tools and refactoring frameworks can parse, represent, and transform code with embedded preprocessor directives, especially conditional compilations, without losing their semantics or producing unmaintainable code. It addresses the integration of preprocessing constructs into abstract syntax trees and intermediate representations to enable behavior-preserving code transformations, crucial for legacy languages such as C that heavily use preprocessor features.

Key finding: Develops CRefactory, a refactoring tool with full support for C preprocessor directives by integrating directives into the parsing and program representations rather than preprocessing them away. The approach preserves macros... Read more
Key finding: Proposes enhanced program representations including conditional compilation directives in ASTs, enabling simultaneous analysis of multiple code branches. The tool defines new preconditions and rules for behavior-preserving... Read more
Key finding: Details challenges of effective ML model integration in compilers including specialized data collection and communication with compiler internals. The study develops generalizable communication patterns and serialization... Read more

All papers in Compiler Construction

In traditional university compiler syllabus, all phases of compiler is studied in detail in each unit before moving on to the next one. This makes the students lose the big picture of the subject. The course format should be updated in... more
In traditional university compiler syllabus, all phases of compiler is studied in detail in each unit before moving on to the next one. This makes the students lose the big picture of the subject. The course format should be updated in... more
During language evolution, compiler construction is usually performed along two dimensions: defining new abstract syntax tree (AST) classes, or adding new operations. In order to facilitate such changes, two software design patterns... more
The use of object-oriented techniques and concepts, like encapsulation and inheritance, greatly improves language specifications towards better modularity, reusability and extensibility. Additional improvements can be achieved with... more
We are developing an optimizing compiler for a dialect of the LISP language. The current target architecture is the S-I, a multiprocessing supercomputer designed at Lawrence Livermore National Laboratory. While LISP is usually thought of... more
Design of general/special purpose supercomputing VLSI systems for numeric algorithm execution involves tackling two important aspects, namely their computational and communication complexities. Development of software tools for designing... more
The following work uses the writing of one of the most outstanding personalities of the Byzantine Empire, Michael Psellos (1018-1078?), as a conduit into the world of Byzantine astrology. The focus of the article is his celebrated... more
The following work uses the writing of one of the most outstanding personalities of the Byzantine Empire, Michael Psellos (1018-1078?), as a conduit into the world of Byzantine astrology. The focus of the article is his celebrated... more
İstanbul, as one of the most significant coastal cities of Turkey, has very unique cultural, historical, ecological and social dynamics. As the economic centre of the country, the city has been exposed to human attraction throughout... more
İstanbul, as one of the most significant coastal cities of Turkey, has very unique cultural, historical, ecological and social dynamics. As the economic centre of the country, the city has been exposed to human attraction throughout... more
Niklaus Wirth is not only a master of language design but also a pioneer of compiler construction. For four decades he has refined his techniques for building simple, efficient and reliable compilers. This paper tries to collect some... more
Leo, .I., A general context-free parsing algorithm running in linear time on every LR(k) grammar without using lookahead, Theoretical Computer Scic 2s; 82 :'13?1) ;tLiiti A new general context-free parsing algorithm is pre<.ented which... more
Dynamic languages, such as JavaScript, employ string-to-code primitives to turn dynamically generated text into executable code at run-time. These features make standard static analysis extremely hard if not impossible because its... more
TABLE OF CONTENTS I. INTRODUCTION 1 II. REVIEW OF THE LITERATURE % III. THE METAX METALANGUAGES I'* A. Developmental Rationale B. Bootstrapping C. The HETAX9 Metalanguage 1. Compiler definition commands 2. Elmentary syntactical commands... more
We present a parsing technique which is a hybrid of Earley's method and the LR(k) methods. The new method retains the ability of Earley's method to parse using arbitrary context-free grammars. However, by using precomputed LR(k) sets of... more
In this paper, we argue firstly that researchers in critical computing should address the specific information and communication technology (ICT) needs and activities of those agencies concerned with emancipatory issues. Secondly, we... more
For predicated code a number of predicate analysis systems have been developed like PHG, PQA or PAS. In optimizing compilers for (fully) predicated architectures like the Itanium® 2 processor, the primary application for such systems is... more
For predicated code a number of predicate analysis systems have been developed like PHG, PQA or PAS. In optimizing compilers for (fully) predicated architectures like the Itanium® 2 processor, the primary application for such systems is... more
The implementation of a parallel functional language is discussed. 2DTprograms are composed of local SPMD-computations and global transformations of 2-dimensional data structures leading to a coarse grain computecommunicate scheme. The... more
The Reformation coincided with a boom in the publication of astrological almanacs and astrology became a potent means of propagandising for differing political positions. One of the most notable Reformation astrologers was Philipp... more
The Reformation coincided with a boom in the publication of astrological almanacs and astrology became a potent means of propagandising for differing political positions. One of the most notable Reformation astrologers was Philipp... more
Within late medieval alchemical texts, Latin authors adopted both classical and Arabic concepts of physical matter. They assumed that metals were composed of two polarized substances -hot, dry and masculine Philosophic Sulphur, and cool,... more
CompCert is a formally verified compiler for C that is specified, programmed and proved correct with the Coq proof assistant. CompCert was used in industry to compile critical embedded software. Its correctness proof states that the... more
Petra, the ancient Nabataean capital, has been one of our main research objectives since the first field campaign on site in 1996. 1 In December 2015 a new visit to the city was made to coincide with the winter solstice. Historical,... more
This paper describes VTIstate, VLSI Technology&#x27;s state machine compiler. The compiler derives combinational logic and registers to make a state machine, and synthesizes the combinational logic with three optimization steps. The 1986... more
The general translator formalism and computing specific implementations are proposed. The implementation of specific elements necessary to process the source and destination information within the translators are presented. Some common... more