GP-3988 Bibliography

This commit is contained in:
caheckman 2023-10-30 21:03:30 +00:00
parent 902c5f72b8
commit 119758c98a
3 changed files with 152 additions and 17 deletions

View File

@ -1,10 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article [
<!ENTITY acute "&#x301;"> <!-- Accent -->
]>
<article id="sleigh_title">
<info>
<title>SLEIGH</title>
<subtitle>A Language for Rapid Processor Specification</subtitle>
<pubdate>Originally published December 16, 2005</pubdate>
<releaseinfo>Last updated March 2, 2023</releaseinfo>
<releaseinfo>Last updated October 31, 2023</releaseinfo>
</info>
<simplesect id="sleigh_history">
<info>
@ -17,7 +20,8 @@
several redesign iterations, but it can still trace its heritage
from the language SLED, from whom its name is derived. SLED, the
“Specification Language for Encoding and Decoding”, was defined by
Norman Ramsey and Mary F. Fernandez as a concise way to define the
Norman Ramsey and Mary F. Ferna&acute;ndez in <xref linkend="Ramsey97"/>
as a concise way to define the
translation, in both directions, between machine instructions and
their corresponding assembly statements. This facilitated the
development of architecture independent disassemblers and
@ -27,13 +31,97 @@
The direct predecessor of SLEIGH was an implementation of SLED for
GHIDRA, which concentrated on its reverse-engineering
capabilities. The main addition of SLEIGH is the ability to provide
semantic descriptions of instructions for data-flow and
decompilation analysis. This piece of SLEIGH was originally a
separate language, the Semantic Syntax Language (SSL), very loosely
based on concepts and a language of the same name developed by
Cristina Cifuentes, Mike Van Emmerik and Norman Ramsey, for the
University of Queensland Binary Translator (UQBT) project.
semantic descriptions of instructions for data-flow and decompilation
analysis. This piece of SLEIGH borrowed ideas from the Semantic Syntax Language (SSL),
a specification language developed in <xref linkend="Cifuentes00"/> for the
University of Queensland Binary Translator (UQBT) project by
Cristina Cifuentes, Mike Van Emmerik and Norman Ramsey.
</para>
<para>
Dr. Cristina Cifuentes' work, in general, was an important starting point for the GHIDRA decompiler.
Its design follows the basic structure layed out in her 1994 thesis "Reverse Compilation Techniques":
<informalexample>
<itemizedlist mark='bullet' spacing='compact'>
<listitem>
Disassembly of machine instructions and translation to an intermediate representation (IR).
</listitem>
<listitem>
Transformation toward a high-level representation via
<itemizedlist mark='circle' spacing='compact'>
<listitem>
Data-flow analysis, including dead code analysis and copy propagation.
</listitem>
<listitem>
Control-flow analysis using graph reducibility to achieve a structured representation.
</listitem>
</itemizedlist>
</listitem>
<listitem>
Back-end code generation from the transformed representation.
</listitem>
</itemizedlist>
</informalexample>
In keeping with her philosophy of decompilation, SLEIGH is GHIDRA's implementation of the first step.
It efficiently couples disassembly of machine instructions with the initial translation into an IR.
</para>
<bibliolist>
<title>References</title>
<biblioentry id="Cifuentes94">
<authorgroup>
<author><personname>
<firstname>Cristina</firstname><surname>Cifuentes</surname>
</personname></author>
</authorgroup>
<title>
Reverse Compilation Techniques
</title>
<pubdate>1994</pubdate>
<publisher>
<publishername>Ph.D. Dissertation. Queensland University of Technology</publishername>
<address>
<city>Brisbane City</city>,
<state>QLD</state>,
<country>Australia</country>
</address>
</publisher>
</biblioentry>
<biblioentry id="Cifuentes00">
<biblioset relation='article'>
<authorgroup>
<author><personname>
<firstname>Cristina</firstname><surname>Cifuentes</surname>
</personname></author>
<author><personname>
<firstname>Mike</firstname><surname>Van Emmerik</surname>
</personname></author>
</authorgroup>
<title>UQBT: Adaptable Binary Translation at Low Cost</title>
</biblioset>
<biblioset relation='journal'>
<title>Computer</title>
<date>(Mar. 2000)</date>
<pagenums>pp. 60-66</pagenums>
</biblioset>
</biblioentry>
<biblioentry id="Ramsey97">
<biblioset relation='article'>
<authorgroup>
<author><personname>
<firstname>Norman</firstname><surname>Ramsey</surname>
</personname></author>
<author><personname>
<firstname>Mary F.</firstname><surname>Ferna&acute;ndez</surname>
</personname></author>
</authorgroup>
<title>Specifying Representations of Machine Instructions</title>
</biblioset>
<biblioset relation='journal'>
<title>ACM Trans. Programming Languages and Systems</title>
<date>(May 1997)</date>
<pagenums>pp. 492-524</pagenums>
</biblioset>
</biblioentry>
</bibliolist>
</simplesect>
<simplesect id="sleigh_overview">

View File

@ -32,4 +32,6 @@ task before
<xsl:param name="section.autolabel" select="1"/> <!-- Automatically number sections -->
<xsl:param name="bibliography.numbered" select="1"/> <!-- Number bibliography entries -->
</xsl:stylesheet>

View File

@ -4,7 +4,7 @@
<title>SLEIGH</title>
<link rel="stylesheet" type="text/css" href="DefaultStyle.css">
<link rel="stylesheet" type="text/css" href="languages.css">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="sleigh.html" title="SLEIGH">
<link rel="next" href="sleigh_layout.html" title="2. Basic Specification Layout">
</head>
@ -27,7 +27,7 @@
<div><h1 class="title">
<a name="sleigh_title"></a>SLEIGH</h1></div>
<div><h3 class="subtitle"><i>A Language for Rapid Processor Specification</i></h3></div>
<div><p class="releaseinfo">Last updated March 2, 2023</p></div>
<div><p class="releaseinfo">Last updated October 31, 2023</p></div>
<div><p class="pubdate">Originally published December 16, 2005</p></div>
</div>
<hr>
@ -109,7 +109,8 @@
several redesign iterations, but it can still trace its heritage
from the language SLED, from whom its name is derived. SLED, the
“Specification Language for Encoding and Decoding”, was defined by
Norman Ramsey and Mary F. Fernandez as a concise way to define the
Norman Ramsey and Mary F. Fernández in <a class="xref" href="sleigh.html#Ramsey97">[3]</a>
as a concise way to define the
translation, in both directions, between machine instructions and
their corresponding assembly statements. This facilitated the
development of architecture independent disassemblers and
@ -119,13 +120,57 @@
The direct predecessor of SLEIGH was an implementation of SLED for
GHIDRA, which concentrated on its reverse-engineering
capabilities. The main addition of SLEIGH is the ability to provide
semantic descriptions of instructions for data-flow and
decompilation analysis. This piece of SLEIGH was originally a
separate language, the Semantic Syntax Language (SSL), very loosely
based on concepts and a language of the same name developed by
Cristina Cifuentes, Mike Van Emmerik and Norman Ramsey, for the
University of Queensland Binary Translator (UQBT) project.
semantic descriptions of instructions for data-flow and decompilation
analysis. This piece of SLEIGH borrowed ideas from the Semantic Syntax Language (SSL),
a specification language developed in <a class="xref" href="sleigh.html#Cifuentes00">[2]</a> for the
University of Queensland Binary Translator (UQBT) project by
Cristina Cifuentes, Mike Van Emmerik and Norman Ramsey.
</p>
<p>
Dr. Cristina Cifuentes' work, in general, was an important starting point for the GHIDRA decompiler.
Its design follows the basic structure layed out in her 1994 thesis "Reverse Compilation Techniques":
</p>
<div class="informalexample"><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: bullet; ">
<li class="listitem" style="list-style-type: disc">
Disassembly of machine instructions and translation to an intermediate representation (IR).
</li>
<li class="listitem" style="list-style-type: disc">
Transformation toward a high-level representation via
<div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle; ">
<li class="listitem" style="list-style-type: circle">
Data-flow analysis, including dead code analysis and copy propagation.
</li>
<li class="listitem" style="list-style-type: circle">
Control-flow analysis using graph reducibility to achieve a structured representation.
</li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: disc">
Back-end code generation from the transformed representation.
</li>
</ul></div></div>
<p>
In keeping with her philosophy of decompilation, SLEIGH is GHIDRA's implementation of the first step.
It efficiently couples disassembly of machine instructions with the initial translation into an IR.
</p>
<div class="bibliolist">
<p class="title"><b>References</b></p>
<div class="biblioentry">
<a name="Cifuentes94"></a><p>[1] <span class="authorgroup"><span class="firstname">Cristina</span> <span class="surname">Cifuentes</span>. </span><span class="title"><i>
Reverse Compilation Techniques
</i>. </span><span class="pubdate">1994. </span><span class="publisher"><span class="publishername">Ph.D. Dissertation. Queensland University of Technology. </span><span class="address">
<span class="city">Brisbane City</span>,
<span class="state">QLD</span>,
<span class="country">Australia</span>
. </span></span></p>
</div>
<div class="biblioentry">
<a name="Cifuentes00"></a><p>[2] <span class="biblioset"><span class="authorgroup"><span class="firstname">Cristina</span> <span class="surname">Cifuentes</span> and <span class="firstname">Mike</span> <span class="surname">Van Emmerik</span>. </span>“UQBT: Adaptable Binary Translation at Low Cost”. </span><span class="biblioset"><i>Computer</i>. <span class="date">(Mar. 2000). </span><span class="pagenums">pp. 60-66. </span></span></p>
</div>
<div class="biblioentry">
<a name="Ramsey97"></a><p>[3] <span class="biblioset"><span class="authorgroup"><span class="firstname">Norman</span> <span class="surname">Ramsey</span> and <span class="firstname">Mary F.</span> <span class="surname">Fernández</span>. </span>“Specifying Representations of Machine Instructions”. </span><span class="biblioset"><i>ACM Trans. Programming Languages and Systems</i>. <span class="date">(May 1997). </span><span class="pagenums">pp. 492-524. </span></span></p>
</div>
</div>
</div>
<div class="simplesect">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">