Machine description in compilers

This page contains a collection of overviews and links to further information about different methods for describing machines mostly relating to writing compilers and simulating machines. It is not sorted in any particular order.

K framework

Automatically Generating the Back End of a Compiler Using Declarative Machine Descriptions

Published January 2008, authors João Dias

Although I have proven that the general problem is undecidable, I show how, for machines of practical interest, to generate the back end of a compiler. Unlike previous work on generating back ends, I generate the machinedependent components of the back end using only information that is independent of the compiler’s internal data structures and intermediate form. My techniques substantially reduce the burden of retargeting the compiler: although it is still necessary to master the target machine’s instruction set, it is not necessary to master the data structures and algorithms in the compiler’s back end. Instead, the machine-dependent knowledge is isolated in the declarative machine descriptions. The largest machine-dependent component in a back end is the instruction selector. Previous work has shown that it is difficult to generate a highquality instruction selector. But by adopting the compiler architecture developed by Davidson and Fraser (1984), I can generate a naïve instruction ...

Automatically generating instruction selectors using declarative machine descriptions

Jan 2010

Authors: João Dias, Norman Ramsey

Automatically generating back ends using declarative machine descriptions

Authors: João DiasNorman Ramsey

Automatically Generating Instruction Selectors Using Declarative Machine Descriptions

Date: Jan 2010

Authors: João Dias, Norman Ramsey

Description-Driven Code Generation using Attribute Grammars

Date: January 1982

Authors: Mahadevan Ganapathi

Survey on Instruction Selection: An Extensive and Modern Literature Review

Date: Jun 2013

Author: Gabriel Hjort Blindell

BURS ?

Generalized Instruction Selector Generation: The Automatic Construction of Instruction Selectors from Descriptions of Compiler Internal Forms and Target Machines

Date: January 2010

Authors: Timothy Richards

Comment: Maybe read.

Filename: Generalized_Instruction_Selector_Generation_The_Au.pdf

Towards universal code generator generation

Date: May 2008

Authors: Timothy Richards, Edward K. Walters, Eliot B. Moss, Trek S. Palmer

Reference: DOI:10.1109/IPDPS.2008.4536404

Automatic Retargetable Code Generation: A New Technique.

Date: December 1986

Reference: DOI:10.1007/3-540-17179-7_4

Authors: Vishv Mohan Malhotra, Sanjeev Kumar

An Implementation of Retargetable Code Generators in Prolog.

Date: May 1988

Reference: DOI:10.1007/3-540-50820-1_42

Authors: Annie Despland, Monique Mazaud, Raymond Rakotozafy

Compiler Prototyping Using Formal Semantics

Date: June 1984 Publication: ACM SIGPLAN Notices 19(6):94-105

Reference: DOI:10.1145/502949.502883

Authors: Uwe F. Pleban

New Jersey Machine-Code Toolkit

NJ The New Jersey Machine-Code Toolkit Page
The New Jersey Machine-Code Toolkit helps programmers write applications that process machine code. Applications that use the toolkit are written at an assembly-language level of abstraction, but they recognize and emit binary. Guided by a short instruction-set specification, the toolkit generates all the bit-manipulating code. ...

Comment: This seems to focus on deriving encoders and decoders by describing instruction representations but no information suitable for simulation is included.

Lambda-RTL

The \-RTL Translator Source Distribution

Comment: Can not find a description of what this is due to broken links.

Specifying Instructions' Semantics Using lambda-RTL (Interim Report). July 1999 (with Jack W. Davidson).

The Zephyr Compiler Infrastructure

Authors: Andrew Appel, Jack Davidson, Normal Ramsey, Bill Wulf

Keywords: SUIF ZIF ASDL CSDL

GCC

LLVM