Academia.eduAcademia.edu

Compilers and Programming Languages

description333 papers
group4,370 followers
lightbulbAbout this topic
Compilers and Programming Languages is the study of the design, implementation, and optimization of programming languages and their compilers, which translate high-level code into machine code. This field encompasses syntax, semantics, and the development of tools that facilitate software development and execution.
lightbulbAbout this topic
Compilers and Programming Languages is the study of the design, implementation, and optimization of programming languages and their compilers, which translate high-level code into machine code. This field encompasses syntax, semantics, and the development of tools that facilitate software development and execution.

Key research themes

1. How can formal methods and attribute grammars enhance compiler construction and language processing?

This research area focuses on leveraging formal grammars, attribute grammars, and formal verification methods to improve the reliability, structure, and educational aspects of compiler design. It emphasizes methodologies for specifying programming language syntax and semantics in a way that allows automated generation of compilers and related language processing tools. The use of formal methods facilitates clear theoretical underpinnings, reproducibility, and easier debugging, which are crucial for both educational settings and advanced language development.

Key finding: This work underscores the central role of formal grammars and parsing techniques in compiler education and development. It presents the sustained importance of combining formal methods with practical compiler construction,... Read more
Key finding: The paper introduces VisualLISA, a system that allows visual construction of attribute grammar productions, enhancing readability and learnability in compiler construction. By transforming graphical visual specifications into... Read more
Key finding: This research addresses automatic compiler generation for domain-specific languages (DSLs) using semantic inference, tackling the problem of code bloat by introducing multithreading and input reduction. It demonstrates a 9.5x... Read more
Key finding: This work presents an integrated IDE centered on formal methods for security protocol verification using the Alice & Bob notation and model checkers like OFMC and ProVerif. It targets usability barriers by combining multiple... Read more

2. What are the methods and challenges in designing compilers, programming languages, and language processors to improve education, usability, and performance?

This theme encompasses compiler construction methodologies, programming language design, and software evaluation metrics, with a particular focus on didactic tools, architecting modular compilers, and performance considerations. It includes exploring intermediate representations, usability in educational contexts, compiler phases, and software quality assessments. This line of research supports the effective teaching of compiler technology, improves user experience, and refines the efficiency of language processing systems.

Key finding: This paper presents a modular compiler for a Pascal-like minilanguage implemented in Python, with its compile phases exposed as XML documents, serving as semiotic representations. The approach supports the educational... Read more
Key finding: The study evaluates a compiler for a Yoruba-based programming language, using ISO quality characteristics and software metrics like cyclomatic complexity (14) and time complexity O(n³). It integrates structural and usability... Read more
Key finding: This work analyzes the traditional compiler phases including lexical analysis, syntax analysis, semantic analysis, intermediate code generation, and synthesis, advocating the importance of grammar-based language processing.... Read more
Key finding: This research experimentally compares C++ and Java as intermediate languages in a large-scale industrial testing compiler toolset. Results indicate significant build time improvement using Java without sacrificing functional... Read more
Key finding: This study introduces a web-based, platform-independent virtual compiler aimed at removing the need for local compiler installations among students. The design leverages cloud computing to mitigate storage and portability... Read more

3. How can auto-parallelization and modern compiler architectures leverage multi-core processors to improve compilation performance?

This domain investigates methodologies for enabling automatic parallelization within compiler front-ends and back-ends, focusing on the utilization of multi-core architectures to speed up compilation and code generation. It involves dependency analysis, scheduling, modular IR generation, and architectural design to balance overhead with speedup and resource utilization. These advancements address performance bottlenecks encountered in compiling complex or multiple source files concurrently.

Key finding: The paper proposes an auto-parallelizing compiler front-end (TAM) that parallelizes lexical, syntax, semantic, and IR generation concurrently using data dependency graphs. Introducing a modular loop IR code generation... Read more

All papers in Compilers and Programming Languages

The paper presents a practical verification tool that helps in the development of provably correct compilers. The tool is based on the approach of proving termination of PROLOG-like programs using term-rewriting techniques and a technique... more
A compiler may be specified as a set of theorems, each describing how a construct in the programming language is translated into a sequence of machine instructions. The machine may be specified as an interpreter written in the programming... more
An executable specification language, known as PSP, for fast prototyping parallel responsive systems is introduced. The language is equipped with directly executable mathematical data objects, first order predicates, temporal operators,... more
For the past three years, John Hennessy has assisted my study of programming languages. He suggested that I investigate semantics, and later noted that the compiler generator might be feasible. As the research progressed, John helped me... more
Both XML and Lisp have demonstrated the utility of generic syntax for expressing tree-structured data. But generic languages do not provide the syntactic richness of custom languages. Generic Extensible Language (Gel) is a rich generic... more