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 @@ + +]>
SLEIGH A Language for Rapid Processor Specification Originally 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] Cristina Cifuentes. + Reverse Compilation Techniques + . 1994. Ph.D. Dissertation. Queensland University of Technology. + Brisbane City, + QLD, + Australia + .

+
+
+

[2] Cristina Cifuentes and Mike Van Emmerik. “UQBT: Adaptable Binary Translation at Low Cost”. Computer. (Mar. 2000). pp. 60-66.

+
+
+

[3] Norman Ramsey and Mary F. Fernández. “Specifying Representations of Machine Instructions”. ACM Trans. Programming Languages and Systems. (May 1997). pp. 492-524.

+
+