Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

João Dias 0005

dblp:48/1389-5 · DBLP profile ↗
← Back
4ranked-venue papers
2as first author
0since 2021 · last 2011
0000-0002-1653-1821ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 4 · 2 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Compilers and program optimization · 83% Programming languages and type systems · 17%

Topics — the 5 heaviest of 5, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization › code generation
instruction selection
0.222011
Resourceable, retargetable, modular instruction selection using a machine-independent, type-based tiling of low-level intermediate code · POPL 2011
Automatically generating instruction selectors using declarative machine descriptions · POPL 2010
Compilers and program optimization › compiler construction
retargetable compilation
0.222011
Resourceable, retargetable, modular instruction selection using a machine-independent, type-based tiling of low-level intermediate code · POPL 2011
Automatically generating instruction selectors using declarative machine descriptions · POPL 2010
Compilers and program optimization
code generation
0.112011
Resourceable, retargetable, modular instruction selection using a machine-independent, type-based tiling of low-level intermediate code · POPL 2011
Programming languages and type systems
type systems
0.112011
Resourceable, retargetable, modular instruction selection using a machine-independent, type-based tiling of low-level intermediate code · POPL 2011
Compilers and program optimization
compiler back end
0.012010
Automatically generating instruction selectors using declarative machine descriptions · POPL 2010

Methods — techniques the papers use, named apart from their topics

machine-independent tiling · 0.1automatic generation from declarative semantics · 0.1declarative machine descriptions · 0.1
YearPublicationVenuePosition
2011 Resourceable, retargetable, modular instruction selection using a machine-independent, type-based tiling of low-level intermediate code
abstract
We present a novel variation on the standard technique of selecting instructions by tiling an intermediate-code tree. Typical compilers use a different set of tiles for every target machine. By analyzing a formal model of machine-level computation, we have developed a single set of tiles that is machine-independent while retaining the expressive power of machine code. Using this tileset, we reduce the number of tilers required from one per machine to one per architectural family (e.g., register architecture or stack architecture). Because the tiler is the part of the instruction selector that is most difficult to reason about, our technique makes it possible to retarget an instruction selector with significantly less effort than standard techniques. Retargeting effort is further reduced by applying an earlier result which generates the machine-dependent implementation of our tileset automatically from a declarative description of instructions' semantics. Our design has the additional benefit of enabling modular reasoning about three aspects of code generation that are not typically separated: the semantics of the compiler's intermediate representation, the semantics of the target instruction set, and the techniques needed to generate good target code.
Norman Ramsey, João Dias 0005
POPL2
2010 Hoopl: a modular, reusable library for dataflow analysis and transformation
abstract
Dataflow analysis and transformation of control-flow graphs is pervasive in optimizing compilers, but it is typically entangled with the details of a particular compiler. We describe Hoopl, a reusable library that makes it unusually easy to define new analyses and transformations for any compiler written in Haskell. Hoopl's interface is modular and polymorphic, and it offers unusually strong static guarantees. The implementation encapsulates state-of-the-art algorithms (interleaved analysis and rewriting, dynamic error isolation), and it cleanly separates their tricky elements so that they can be understood independently.
Norman Ramsey, João Dias 0005, Simon L. Peyton Jones
Haskell2
2010 Automatically generating instruction selectors using declarative machine descriptions
abstract
Despite years of work on retargetable compilers, creating a good, reliable back end for an optimizing compiler still entails a lot of hard work. Moreover, a critical component of the back end---the instruction selector---must be written by a person who is expert in both the compiler's intermediate code and the target machine's instruction set. By generating the instruction selector from declarative machine descriptions we have (a) made it unnecessary for one person to be both a compiler expert and a machine expert, and (b) made creating an optimizing back end easier than ever before.
João Dias 0005, Norman Ramsey
POPL1
2006 Converting Intermediate Code to Assembly Code Using Declarative Machine Descriptions
João Dias 0005, Norman Ramsey
CC1