diff --git a/decompilation.md b/decompilation.md index 15369a3..882b342 100644 --- a/decompilation.md +++ b/decompilation.md @@ -1,4 +1,7 @@ # Decompilation -- The process of rewriting an application into a target-independent programming - language +- The process of rewriting assembly into a target-independent programming + language. +- "Matching" decompilation aims to be able to produce the exact same assembly + output given the same compiler and libraries as a way of proving that the + decompilation is correct. diff --git a/fs2.md b/fs2.md new file mode 100644 index 0000000..ec83458 --- /dev/null +++ b/fs2.md @@ -0,0 +1,5 @@ +# fs2 + +- https://fs2.io +- A library that allows abstracting data transmission and control into a shared + concept called a `Stream`. diff --git a/ghidra.md b/ghidra.md index c6126aa..30d8148 100644 --- a/ghidra.md +++ b/ghidra.md @@ -1,8 +1,10 @@ # Ghidra -- SRE (Software Reverse Engineering) tool -- Has a [[Java]]-based plugin system +- SRE (Software Reverse Engineering) tool. +- Has a [[Java]]-based plugin system. +- Typically used to assist in [[decompilation]]. [//begin]: # "Autogenerated link references for markdown compatibility" [Java]: java "Java" +[decompilation]: decompilation "Decompilation" [//end]: # "Autogenerated link references" diff --git a/java.md b/java.md index b8768ce..f22d10f 100644 --- a/java.md +++ b/java.md @@ -1,3 +1,5 @@ # Java -- Programming language +- Programming language. +- Compiled to bytecode that is executed on a Virtual Machine. +- Effectively platform-independent. diff --git a/journal/2020-10-31.md b/journal/2020-10-31.md index 5f1f955..f028c60 100644 --- a/journal/2020-10-31.md +++ b/journal/2020-10-31.md @@ -3,10 +3,18 @@ - Set up this journal. See the [[readme]]. - Looked into writing a [[Ghidra]] plugin to generate [[MASM Assembly]] for a [[decompilation]] project. +- Explored whether or not it's possible to write recursive algorithms in + constant space using [[fs2]], and how it applies to [[sledge]]. + - It was discussed in the Scala Discord whether or not there exists an + algorithm to generate moves for the Dragon Fractal in constant space. The + current theory is that there can't be an algorithm that uses less than + linear space. [//begin]: # "Autogenerated link references for markdown compatibility" [readme]: ..\README "Aly's digital garden" [Ghidra]: ..\ghidra "Ghidra" [MASM Assembly]: ..\masm-assembly "MASM Assembly" [decompilation]: ..\decompilation "Decompilation" +[fs2]: ..\fs2 "fs2" +[sledge]: ..\sledge "sledge" [//end]: # "Autogenerated link references" diff --git a/masm-assembly.md b/masm-assembly.md index 724e8c7..e51d4b8 100644 --- a/masm-assembly.md +++ b/masm-assembly.md @@ -1,3 +1,3 @@ # MASM Assembly -- A dialect of assembly meant for Microsoft's compiler +- The dialect of assembly used by Microsoft's assembler. diff --git a/sledge.md b/sledge.md new file mode 100644 index 0000000..4a1a569 --- /dev/null +++ b/sledge.md @@ -0,0 +1,12 @@ +# sledge + +- Work-in-progress programming language. +- Meant to look like [[fs2]]-based programs, but with a [[Zig]]-like paradigm. +- Completely disallows mutability in the source code to allow for better + optimizations, and to allow for returning variably-sized objects like + buffers or closures on the stack instead of the heap. + +[//begin]: # "Autogenerated link references for markdown compatibility" +[fs2]: fs2 "fs2" +[Zig]: zig "Zig" +[//end]: # "Autogenerated link references" diff --git a/zig.md b/zig.md new file mode 100644 index 0000000..34a1c67 --- /dev/null +++ b/zig.md @@ -0,0 +1,3 @@ +# Zig + +- https://ziglang.org/