scispace - formally typeset
Search or ask a question
Journal ArticleDOI

Retargetable Compiler Code Generation

TL;DR: A classlficaUon of automated retargetable code generation techniques and a survey of the work on these techmques is presented.
Abstract: A classlficaUon of automated retargetable code generation techniques and a survey of the work on these techmques is presented Retargetable code generation research.is classified into three categories: interpretive code generation, pattern-matched code generation, and table-driven code generatlon. Interpretive code generation approaches generate code for a virtual machine and then expand into real target code Pattern-matched code generation approaches separate the machine description from the code generation algorithm. Tabledriven code generation approaches employ a formal machine description and use a code-' generator generator to produce code generators automatically. An analysis Qf these techniques and a critique of automatic code generation algorithms are presented,
Citations
More filters
01 Jan 1978
TL;DR: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.), and is a "must-have" reference for every serious programmer's digital library.
Abstract: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.). One of the best-selling programming books published in the last fifty years, "K&R" has been called everything from the "bible" to "a landmark in computer science" and it has influenced generations of programmers. Available now for all leading ebook platforms, this concise and beautifully written text is a "must-have" reference for every serious programmers digital library. As modestly described by the authors in the Preface to the First Edition, this "is not an introductory programming manual; it assumes some familiarity with basic programming concepts like variables, assignment statements, loops, and functions. Nonetheless, a novice programmer should be able to read along and pick up the language, although access to a more knowledgeable colleague will help."

2,120 citations

Journal ArticleDOI
Susan L. Graham1
TL;DR: A tree-manipulation language called twig has been developed to help construct efficient code generators that combines a fast top-down tree-pattern matching algorithm with dynamic programming.
Abstract: Compiler-component generators, such as lexical analyzer generators and parser generators, have long been used to facilitate the construction of compilers. A tree-manipulation language called twig has been developed to help construct efficient code generators. Twig transforms a tree-translation scheme into a code generator that combines a fast top-down tree-pattern matching algorithm with dynamic programming. Twig has been used to specify and construct code generators for several experimental compilers targeted for different machines.

338 citations

Proceedings ArticleDOI
06 Mar 1995
TL;DR: The formalism nML is introduced which is especially suited to describemable processors in terms of their instruction set, an nML description is directly related to the standard description as found in the usual programmer's manuals.
Abstract: Programmable processors offer a high degree of flexibility and are therefore increasingly being used in embedded systems. We introduce the formalism nML which is especially suited to describe such processors in terms of their instruction set, an nML description is directly related to the standard description as found in the usual programmer's manuals. The nML formalism is based on a mixed structural and behavioural model facilitating exact yet concise descriptions. The philosophy of nML is already applied in two approaches to retargetable code generation and instruction set simulation. >

310 citations


Cites background from "Retargetable Compiler Code Generati..."

  • ...In traditional software compilers (for CISC architectures), string and tree grammars have found to be an adequate notation for formalising the mapping of machine instructions to application programs [13, 12, 1]....

    [...]

Book ChapterDOI
01 Jan 2002
TL;DR: This chapter introduces Chess, a retargetable code generation environment for fixedpoint DSP processors that addresses a range of commercial as well as applicationspecific processors, which are increasingly being used for embedded applications in telecommunications, speech and audio processing.
Abstract: This chapter introduces Chess, a retargetable code generation environment for fixedpoint DSP processors. Chess addresses a range of commercial as well as applicationspecific processors, which are increasingly being used for embedded applications in telecommunications, speech and audio processing. Chess is based on a mixed behavioural/structural processor representation model, which can account for many architectural peculiarities that are typical for fixed-point DSP processors. In addition, the code generator is employing a number of efficient optimisation techniques. These features result in highly optimal machine code.

148 citations

Journal ArticleDOI
TL;DR: This paper presents a domain-specific visual language developed expressly for the evolution of domain- specific visual languages, and uses concepts from graph rewriting to specify and carry out the transformation of the models built using the original DSVL.
Abstract: Domain-specific visual languages (DSVLs) are concise and useful tools that allow the rapid development of the behavior and/or structure of applications in well-defined domains. These languages are typically developed specifically for a domain, and have a strong cohesion to the domain concepts, which often appear as primitives in the language. The strong cohesion between DSVL language primitives and the domain is a benefit for development by domain experts, but can be a drawback when the domain evolves—even when that evolution appears to be insignificant. This paper presents a domain-specific visual language developed expressly for the evolution of domain-specific visual languages, and uses concepts from graph rewriting to specify and carry out the transformation of the models built using the original DSVL.

140 citations

References
More filters
01 Jan 1978
TL;DR: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.), and is a "must-have" reference for every serious programmer's digital library.
Abstract: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.). One of the best-selling programming books published in the last fifty years, "K&R" has been called everything from the "bible" to "a landmark in computer science" and it has influenced generations of programmers. Available now for all leading ebook platforms, this concise and beautifully written text is a "must-have" reference for every serious programmers digital library. As modestly described by the authors in the Preface to the First Edition, this "is not an introductory programming manual; it assumes some familiarity with basic programming concepts like variables, assignment statements, loops, and functions. Nonetheless, a novice programmer should be able to read along and pick up the language, although access to a more knowledgeable colleague will help."

2,120 citations

Journal ArticleDOI
TL;DR: The implications of this process when some of the attributes of a string are “synthesized”, i.e., defined solely in terms of attributes of thedescendants of the corresponding nonterminal symbol, while other attributes are ‘inherited’, are examined.
Abstract: “Meaning” may be assigned to a string in a context-free language by defining “attributes” of the symbols in a derivation tree for that string. The attributes can be defined by functions associated with each production in the grammar. This paper examines the implications of this process when some of the attributes are “synthesized”, i.e., defined solely in terms of attributes of thedescendants of the corresponding nonterminal symbol, while other attributes are “inherited”, i.e., defined in terms of attributes of theancestors of the nonterminal symbol. An algorithm is given which detects when such semantic rules could possibly lead to circular definition of some attributes. An example is given of a simple programming language defined with both inherited and synthesized attributes, and the method of definition is compared to other techniques for formal specification of semantics which have appeared in the literature.

1,982 citations

Book
01 Jan 1978
TL;DR: The C Programming Language (2nd Ed.) as discussed by the authors is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Languages (1st Ed.).
Abstract: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.). One of the best-selling programming books published in the last fifty years, "K&R" has been called everything from the "bible" to "a landmark in computer science" and it has influenced generations of programmers. Available now for all leading ebook platforms, this concise and beautifully written text is a "must-have" reference for every serious programmers digital library. As modestly described by the authors in the Preface to the First Edition, this "is not an introductory programming manual; it assumes some familiarity with basic programming concepts like variables, assignment statements, loops, and functions. Nonetheless, a novice programmer should be able to read along and pick up the language, although access to a more knowledgeable colleague will help."

1,861 citations

Proceedings ArticleDOI
Gregory J. Chaitin1
01 Jun 1982
TL;DR: This work has discovered how to extend the graph coloring approach so that it naturally solves the spilling problem, and produces better object code and takes much less compile time.
Abstract: In a previous paper we reported the successful use of graph coloring techniques for doing global register allocation in an experimental PL/I optimizing compiler. When the compiler cannot color the register conflict graph with a number of colors equal to the number of available machine registers, it must add code to spill and reload registers to and from storage. Previously the compiler produced spill code whose quality sometimes left much to be desired, and the ad hoe techniques used took considerable amounts of compile time. We have now discovered how to extend the graph coloring approach so that it naturally solves the spilling problem. Spill decisions are now made on the basis of the register conflict graph and cost estimates of the value of keeping the result of a computation in a register rather than in storage. This new approach produces better object code and takes much less compile time.

895 citations

Journal ArticleDOI
TL;DR: In a previous paper as mentioned in this paper, we reported the successful use of graph coloring techniques for doing global register allocation in an experimental PL/I optimizing compiler, when the compiler cannot color the...
Abstract: In a previous paper we reported the successful use of graph coloring techniques for doing global register allocation in an experimental PL/I optimizing compiler. When the compiler cannot color the ...

865 citations