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

This laboratory project report details the design and implementation of a simplified desktop-based retail management application named "Minimarket Cihuy". Developed strictly in the C programming language using the Code::Blocks IDE, the... more
Over the last few years, the question of reasoning about aspectoriented programs has been addressed by a number of authors. In this paper, we present a rely-guarantee approach to such reasoning. The rely-guarantee approach has proven... more
This paper presents a programming language interface, a complete scripting language, to describe composable compiler transformations. These transformation programs can be written, shared and reused by non-expert application and library... more
The need of faster life has caused the exponential growth in No. of vehicles on streets. The adverse effects include frequent traffic congestion, less time efficiency, unnecessary fuel consumption, pollution, accidents, etc. One of most... more
This dissertation is structured into seven chapters, whose summary is presented below: I Introduction: introduces the topic of this dissertation by briefly presenting the inherent challenges of developing applications that efficiently... more
I've been paged at 2 a.m. because "the app feels slow." No stack trace. No crash. Just vibes. That's usually when we discover nobody ever defined what fast actually means. That's the hole benchmark software testing is supposed to fill.... more
In this paper we present an interpretive approach for accurate and cost-e ective performance prediction in a high performance computing environment, and describe the design of a compile-time HPF/Fortran 90D performance prediction... more
The NPAC kernel runtime, developed in the PCRC (Parallel Compiler Runtime Consortium) project, is a runtime library with special support for the High Performance Fortran data model. It provides array descriptors for a generalized class of... more
The augmented version of C programming language is presented. The language was completed with a series of low-level and highlevel facilities to enlarge the language usage spectrum to various computing systems, operations, users. The... more
Calculamos la acción muestral de cada actón del giro doble y las combinamos.
Bugs can be found in all code and the consequences are usually managed through up grade releases, patches, and restarting operating systems and applications. However, in mission critical systems complete fall over systems are built to... more
The augmented JavaScript programming language completed as general computing instrument concept, referred as @JavaScript, is presented. The augmentation consists in the minimalist dialectal completion of the language, keeping... more
The Fortran 2018 standard defines syntax and semantics to allow a parallel application to recover from failed images (processes) during execution. This poster presents work to extend the GFortran compiler front end and OpenCoarrays... more
The increasing complexity of modern software systems has intensified interest in the performance trade-offs between Ahead-of-Time (AOT) and Just-in-Time (JIT) compilation. This paper presents a comprehensive empirical study quantifying... more
Building reliable software at scale has always been a balancing act. You want performance, but you also need safety. You need concurrency, but without the headaches of data races and memory corruption. For years, we've been told to pick... more
We have created CABERNET, a Controlled Nature Language (CNL) based approach to program creation. CABERNET allows programmers to use a simple outline-based syntax. This allows increased programmer efficiency and syntax flexibility. CNLs... more
Recently, there has been a lot of interest in using Java for parallel programming. Efforts have been hindered by lack of standard Java parallel programming APIs. To alleviate this problem, various groups started projects to develop Java... more
This paper presents an e-Design framework for knowledge management through its application in an engineering design case study. The e-Design framework enables the implementation of integrated design information throughout the entire... more
The design of more sustainable products can be best accomplished in a tradeoff-based design process that methodically handles conflicting objectives. Such conflicts are often seen between, environmental impact, cost, and product... more
Every new design, project, or procedure within a company generates a considerable amount of new information and important knowledge. Furthermore, a tremendous amount of legacy knowledge already exists in companies in electronic and... more
Semantic technologies are playing an increasingly popular role as a means for advancing the capabilities of knowledge management systems. Among these advancements, researchers have successfully leveraged semantic technologies, and their... more
This paper presents a novel meta-experimental approach to analyzing the debugging capabilities of large language models (LLMs), specifically Claude 3 Opus. Through a carefully designed experiment where the AI system first generates... more
Codira is a next-generation programming language designed for speed, clarity, and interoperability. This 608-page book introduces the core concepts, syntax, and ecosystem of Codira — written by Tunjay Akbarli, with editorial contribution... more
In this paper we present a work in progress on the formal verification of a process super-visor using the McErlang model checker. The process supervisor is an alternative implemen-tation of the standard supervisor behaviour of Erlang/OTP.... more
Introduction: Lists are used in various software applications including web applications, desktop applications, and Internet of Things (IoT) applications to store different types of items (e.g. country name, product model, and device... more
Using a sample of 935000 88 pairs collected with the CLEO-lf detector at the Cornell Storage Ring, we have obtained upper limits on the branching ratios for the b ul v processes 8 col 8 p I v, and 8 @+I v. The combined result Using the... more
Implementing artificial neural networks is commonly achieved via high-level programming languages like Python and easy-to-use deep learning libraries like Keras. These software libraries come pre-loaded with a variety of network... more
With the help of some standard results in Geometry, Differential geometry, Spherical Trigonometry and the latitude and longitude of two places on the surface of the earth one can measure the Geodesics of the path joining those places and... more
The execution of complex distributed applications in exascale systems faces many challenges, as it involves empirical evaluation of countless code variations and application runtime parameters over a heterogeneous set of resources. To... more
This paper explores hybrid data structures designed to overcome bottlenecks in classical data handling. By fusing tree-based hierarchies, hash-based indexing, skiplevel traversal, and stack-ordered access patterns, we introduce five... more
This paper discusses a methodology used on an industrial hardware development project to validate various cache-coherence protocol components. The idea is to use a high level model (HLM) written in Murphi for model checking purposes, and... more
En los últimos años se ha incrementado la demanda de productos fruto hortícolas que aporten calidad, inocuidad y facilidad de consumo, lo que ha permitido diversificar. Estos alimentos pueden ser mínimamente procesados, tales como las... more
Resumen En éste trabajo se presenta el desarrollo de un generador de evaluadores de gramáticas de atributos no circulares −NC(1)−. Este generador computa estáticamente toda la información necesaria para que el evaluador generado... more
Las Gramática de Atributos (GA) son un formalismo que poseen el poder descriptivo de las Gramáticas Libres de Contexto (CFG) y la expresividad de los lenguajes funcionales, para definir la semántica de un lenguaje. Las ecuaciones de una... more
Agent Based Modeling (ABM) is a computational paradigm for simulating the actions and interactions of autonomous agents (both individual or collective entities such as organizations or groups) to understand the behavior of a system and... more
The area of software verification has grown its importance in software engineering. This is a bibliography of verification of a specialized class of softwares called compiler. The citations are sorted year wise in chronological order with... more
Multimodal interfaces are becoming increasingly ubiquitous with the advent of mobile devices, accessibility considerations, and novel software technologies that combine diverse interaction media. In addition to improving access and... more
This paper describes a human-in-the-loop motion-based simulator interfaced to hybrid-electric power system hardware, both of which were used to measure the duty cycle of a combat vehicle in a virtual simulation environment. The project... more
Implementing artificial neural networks is commonly achieved via high-level programming languages such as Python and easy-touse deep learning libraries such as Keras. ese software libraries come preloaded with a variety of network... more
Proyecto académico sin fines de lucro, desarrollado bajo la iniciativa de acceso abierto Actividad antioxidante de antocianinas… Ricardo Figueroa y Cols. (2011)
This paper presents the use of first-order logic to improve upon currently employed engineering design knowledge management techniques. Specifically, this work uses description logic in unison with Horn logic, to not only guide the... more
Download research papers for free!