diff --git a/Ghidra/Features/Decompiler/src/main/doc/sleigh.xml b/Ghidra/Features/Decompiler/src/main/doc/sleigh.xml
index 780af2d446..2475a9d174 100644
--- a/Ghidra/Features/Decompiler/src/main/doc/sleigh.xml
+++ b/Ghidra/Features/Decompiler/src/main/doc/sleigh.xml
@@ -1,10 +1,13 @@
+
+]>
SLEIGHA Language for Rapid Processor SpecificationOriginally published December 16, 2005
- Last updated March 2, 2023
+ Last updated October 31, 2023
@@ -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´ndez in
+ 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 for the
+ University of Queensland Binary Translator (UQBT) project by
+ Cristina Cifuentes, Mike Van Emmerik and Norman Ramsey.
+
+ 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":
+
+
+
+ Disassembly of machine instructions and translation to an intermediate representation (IR).
+
+
+ Transformation toward a high-level representation via
+
+
+ Data-flow analysis, including dead code analysis and copy propagation.
+
+
+ Control-flow analysis using graph reducibility to achieve a structured representation.
+
+
+
+
+ Back-end code generation from the transformed representation.
+
+
+
+ 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.
+
+
+ References
+
+
+
+ CristinaCifuentes
+
+
+
+ Reverse Compilation Techniques
+
+ 1994
+
+ Ph.D. Dissertation. Queensland University of Technology
+
+ Brisbane City,
+ QLD,
+ Australia
+
+
+
+
+
+
+
+ CristinaCifuentes
+
+
+ MikeVan Emmerik
+
+
+ UQBT: Adaptable Binary Translation at Low Cost
+
+
+ Computer
+ (Mar. 2000)
+ pp. 60-66
+
+
+
+
+
+
+ NormanRamsey
+
+
+ Mary F.Ferna´ndez
+
+
+ Specifying Representations of Machine Instructions
+
+
+ ACM Trans. Programming Languages and Systems
+ (May 1997)
+ pp. 492-524
+
+
+
diff --git a/Ghidra/Features/Decompiler/src/main/doc/sleigh_common.xsl b/Ghidra/Features/Decompiler/src/main/doc/sleigh_common.xsl
index 85c76eb6ec..6f99641da1 100644
--- a/Ghidra/Features/Decompiler/src/main/doc/sleigh_common.xsl
+++ b/Ghidra/Features/Decompiler/src/main/doc/sleigh_common.xsl
@@ -32,4 +32,6 @@ task before
+
+
diff --git a/GhidraDocs/languages/html/sleigh.html b/GhidraDocs/languages/html/sleigh.html
index 953a597d27..e54307a955 100644
--- a/GhidraDocs/languages/html/sleigh.html
+++ b/GhidraDocs/languages/html/sleigh.html
@@ -4,7 +4,7 @@
SLEIGH
-
+
@@ -27,7 +27,7 @@
SLEIGH
A Language for Rapid Processor Specification
-
Last updated March 2, 2023
+
Last updated October 31, 2023
Originally published December 16, 2005
@@ -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 [3]
+ 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 [2] for the
+ University of Queensland Binary Translator (UQBT) project by
+ Cristina Cifuentes, Mike Van Emmerik and Norman Ramsey.
+
+ 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":
+
+
+
+ Disassembly of machine instructions and translation to an intermediate representation (IR).
+
+
+ Transformation toward a high-level representation via
+
+
+ Data-flow analysis, including dead code analysis and copy propagation.
+
+
+ Control-flow analysis using graph reducibility to achieve a structured representation.
+
+
+
+
+ Back-end code generation from the transformed representation.
+
+
+
+ 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.
+
+
+
References
+
+
[1] CristinaCifuentes.
+ Reverse Compilation Techniques
+ . 1994. Ph.D. Dissertation. Queensland University of Technology.
+ Brisbane City,
+ QLD,
+ Australia
+ .
+
+
+
[2] CristinaCifuentes and MikeVan Emmerik. “UQBT: Adaptable Binary Translation at Low Cost”. Computer. (Mar. 2000). pp. 60-66.
+
+
+
[3] NormanRamsey and Mary F.Fernández. “Specifying Representations of Machine Instructions”. ACM Trans. Programming Languages and Systems. (May 1997). pp. 492-524.