Compiler Construction
1,628 Followers
Recent papers in Compiler Construction
This article presents XML-based tools for parser generation and data binding generation. The underlying concept is that of transformation between formal languages, which is a form of meta-programming. We discuss the benefits of such a... more
In Compiler Design courses, students learn how a program written in high level programming language and designed for humans understanding is systematically converted into low level assembly language understood by machines, through... more
Although optimization technology has been successful over the past 40 years, recent trends are emerging that demand we reconsider the paradigm that we are using for code optimization. In particular, the trends toward dynamic optimization,... more
CPS transformation is an important tool in the compilation of functional programming languages. For strict languages, such as our web programming language "Rinso" or Microsoft's F#, monadic expressions can help with structuring and... more
Compiler compilers are in widespread use, but decompiler compilers are a more novel concept. This paper presents an approach for the decompilation of object code back to source code using a decompiler generator. An example decompilation... more
Compiler writing is challenging. There are different kinds of parsers available for compiler designers and programmers to choose from during compiler development but very few are effective, efficient and convenient to be implemented. On... more
Pseudocode is an artificial and informal language that helps developers to create algorithms. In this paper a software tool is described, for translating the pseudocode into a particular source programming language. This tool compiles the... more
Defining algorithms in a way which allows parallel execution is becoming increasingly important as multicore computers become ubiquitous. We present IFDS-A, a parallel algorithm for solving context-sensitive interprocedural finite... more
Graphics Processing Units (GPUs) offer tremendous computational power. CUDA (Compute Unified Device Architecture) provides a multi-threaded parallel programming model, facilitating high performance implementations of general-purpose... more
Domain Specific Language (DSL) has been in the use from a long time. However, DSLs came to the limelight only in the recent past, around the time Java gained importance. The reason for this sudden upsurge in DSLs, the advantages it has... more
Compiler construction is a widely used software engineering exercise, but because most students will not be compiler writers, care must be taken to make it relevant in a core curriculum. Auxiliary tools, such as generators and... more
Improving architectural energy efficiency is important to address diminishing energy efficiency gains from technology scaling. At the same time, limiting hardware complexity is also important. This paper presents a new processor... more
A course in compiler construction seeks to develop an understanding of well-defined fundamental theory and typically involves the production of a language processor. In a graduate degree in software engineering, the development of a... more
Over the years we have seen and experienced an unprecedented evolution in the way programmers interact and pass instruction to the machine. Before now what was obtainable was an often tedious and painstaking process in which the... more
With the growing demand of electronic devices, efficient conservation of energy has become the major concern. Investments are on the datacentres that consume huge amount of energy at both hardware and software levels as well as... more
Compiler construction is a well developed discipline since there is a long tradition of producing compilers supported by practical underlying theory and a large selection of textbooks.
In traditional compiler construction courses, each compiler phase is studied in detail before moving on to the next one. This not only places a great distance between theory and practice but also makes the students lose the big picture of... more
Top-down (LL) context-sensitive parsers with integrated synthesis and use of attributes are easy to expressin functional programming languages, but the elegant functional programming model can also serve as an exact prototype for a more... more
We present a Generalized LR parsing algorithm for unrestricted context-free grammars working in complexity O(n 3 ). It differs from previous approaches in the use of dynamic programming techniques to cope with the non determinism, instead... more
In recent years, functional programming languages have been cross-pollinating the object-oriented world. C# is now including constructs and concepts that are typical of functional languages, such as first-order functions and lazy... more
ce cours se vocalise sur :
- la structure d'un commpilateur.
- Analyse Lexicale
-Analyse Syntaxique
-Analyse Sémantique
- la structure d'un commpilateur.
- Analyse Lexicale
-Analyse Syntaxique
-Analyse Sémantique
ProCoS aims to improve dependability, reduce timescales and cut development costs of construction for embedded systems, particularly in real-time and safety-critical applications. It uses and develops the results of basic research into... more
To obtain a position where I can effectively utilize my expertise in Information Technology, enable me to use my strong organizational skills, educational background, and ability to work well with people.
Compiler compilers are in widespread use, but decompiler compilers are a more novel concept. This paper presents an approach for the decompilation of object code back to source code using a decompiler generator. An example decompilation... more
Presentamos un compilador capaz de generar analizadores sintácticos a partir de esquemas de análisis sintáctico. Dichos esquemas son representaciones de los analizadores en forma de sistemas deductivos, que abstraen los detalles de... more
Most points-to analysis research has been done on different systems by different groups, making it difficult to compare results, and to understand interactions between individual factors each group studied. Furthermore, points-to analysis... more
Presentamos un compilador capaz de generar analizadores sintácticos a partir de esquemas de análisis sintáctico. Dichos esquemas son representaciones de los analizadores en forma de sistemas deductivos, que abstraen los detalles de... more
Despite a long tradition of user centred human computer interaction design, movement interaction, as it is still in its early phase, could be described as technology driven. This paper suggests taking the starting point in personal... more
In this paper we de ne a new compilative version of constructive negation (intensional negation) in CLP and we prove its (nonground) correctness and completeness wrt the 3-valued completion. We show that intensional negation is... more
Intel Extended Memory 64 Technology (EM64T) and AMD 64-bit architecture (AMD64) are emerging 64-bit x86 architectures that are fully x86 compatible. Compared with the 32-bit x86 architecture, the 64-bit x86 architectures cater some new... 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 XANTLR/TDOM project is an implementation of a "typed" XML[1] Document Object Model initially used to represent abstract syntax trees in a compiler project. Tree classes, SAX event receivers, visitor classes and DTD are automatically... more
Attribute grammars have been used extensively in every phase of traditional compiler construction. Since some of these phases have also been used in automated hardware synthesis (hardware compilation), attribute grammars can be... more
Lecture notes for my compiler construction course
ProCoS aims to improve dependability, reduce timescales and cut development costs of construction for embedded systems, particularly in real-time and safety-critical applications. It uses and develops the results of basic research into... more
The productivity of a compiler development team depends on its ability not only to the design effective solutions to known code generation problems, but also to uncover potential code improvement opportunities. This paper describes a data... more
We here present new insights of properties of real-life interference graphs emerging in register allocation. These new insights imply good hopes for a possibility of improving the coloring approach towards optimal solutions. The... more