sectorforth VS movfuscator

Compare sectorforth vs movfuscator and see what are their differences.

sectorforth

sectorforth is a 16-bit x86 Forth that fits in a 512-byte boot sector. (by cesarblum)

movfuscator

The single instruction C compiler (by xoreaxeaxeax)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
sectorforth movfuscator
10 82
374 9,013
- -
0.0 0.0
almost 2 years ago about 1 year ago
Assembly C
MIT License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

sectorforth

Posts with mentions or reviews of sectorforth. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-05-01.
  • Cognition: The Revolutionary Antisyntax Language Redefining Metaprogramming
    2 projects | news.ycombinator.com | 1 May 2024
    I think it's fine to show that you can do it, I think the main thing is to flip the order a bit.

    E.g. "here's a cool thing thing we can do outcome of significantly changing a readable syntax>" to hook people, "here's how ", "and if you really want to know how to bootstrap this from basics ".

    Maybe compare how e.g. Forth is often introduced, with how people describe bootstrapping of a simplistic Forth like Jonesforth or Sectorforth [2]. Showing people how they can define their own words and it fundamentally changes how they work with the language afterwards is cool to a lot of people who have no interest in details like how you an implement even numbers with a minimal set of primitives (e.g. Sectorforth relies on that).

    Both are interesting to me, but I'm weird, and I think for most people it'd be easier to maintain their interest if those two aspects are either separate articles or at least if the bootstrapping is relegated to a standalone section they're clearly told they can skip.

    [1] https://news.ycombinator.com/item?id=31368212

    [2] https://github.com/cesarblum/sectorforth

  • Konilo: A personal computing system in Forth
    5 projects | news.ycombinator.com | 2 Mar 2024
  • Fourteen Years of Go
    13 projects | news.ycombinator.com | 11 Nov 2023
    > I'm not sure here how you differentiate minimalist from restrictive.

    The flexibility of the language and its syntax. The more constructs are syntactic, the less minimalistic it is, and Go is a very syntactic language.

    > I've always considered Go to be minimalist in terms of available tokens to the programmer: https://github.com/e3b0c442/keywords/blob/main/chart.png

    No language on this chart has even a passing resemblance to minimalistic. I don't think anything does when it reaches double digit keywords.

    For reference, I believe Smalltalk has 6.

    And forth is more complicated because it doesn't really have keywords at all, and barely any syntax, instead it has assembly-coded / runtime-provided words (~functions) and variables. SectorForth (https://github.com/cesarblum/sectorforth/) is down to 8 builtin words, 2 IO words, and 5 variables (milliforth packs those behind a word instead). And so far 2 of the words have been found unnecessary / redundant.

  • MilliForth
    4 projects | news.ycombinator.com | 5 Nov 2023
    https://github.com/cesarblum/sectorforth/issues
  • Interesting Article About a C compiler in 512 bytes That Uses Forth Inspired Tricks to Fit an Extremely Tight Space Constraint
    1 project | /r/Forth | 2 Jun 2023
    Probably well known, but I'll let it here anyway: SectorForth
  • Ask HN: What are some impressive software projects that fit in 512 bytes?
    5 projects | news.ycombinator.com | 20 Jul 2022
  • That's pretty much it!
    7 projects | /r/ProgrammerHumor | 26 Feb 2022
    sectorforth
  • A Forth bootable by old 386 PCs?
    4 projects | /r/Forth | 17 Oct 2021
    If you want to go allll the way down to the metal, you could put https://github.com/cesarblum/sectorforth in a floppy boot sector and then work your way up from there, enabling line A20 and switching into 32-bit protected mode yourself. Certainly on the "DIY" end of the spectrum, but it sure would be satisfying.
  • suckless programming languages?
    5 projects | /r/suckless | 10 Oct 2021
    Forth - More powerful and minimal than C, can fit in 512 bytes
  • BootOS operating system in 512 bytes
    3 projects | news.ycombinator.com | 27 Aug 2021

movfuscator

Posts with mentions or reviews of movfuscator. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-11.
  • M/o/Vfuscator: The single instruction C compiler (2020)
    1 project | news.ycombinator.com | 29 Dec 2023
  • controversialOpinion
    2 projects | /r/ProgrammerHumor | 11 Dec 2023
    Everything can be reduced to assignments. https://github.com/xoreaxeaxeax/movfuscator
  • M/o/Vfuscator: The single instruction C compiler
    3 projects | news.ycombinator.com | 5 Nov 2023
  • Subtraction Is Functionally Complete
    3 projects | news.ycombinator.com | 7 Oct 2023
    However, the movfuscator as implemented does still require a sigaction(2) syscall to set up a signal handler, under the justifications that "it is not actually part of the program" and that "if we were in ring 0, we wouldn't need help from the kernel" [0]. However, the latter part seems a little dubious to me: without the help of the kernel running non-MOV instructions, you'd never be able to escape from 16-bit real mode into 32-bit protected mode, since you wouldn't be able to load a valid GDT with the LGDT instruction (as far as I am aware).

    [0] https://github.com/xoreaxeaxeax/movfuscator/blob/90a49f31219...

  • The bigger the interface, the weaker the abstraction
    2 projects | news.ycombinator.com | 29 Jul 2023
    I _think_ the idea is thinking of an "interface" as "something that you use as a way to interact with something from outside an abstraction". I'd summarize their argument as reasoning that if the goal of an abstraction is to avoid having to care about the internal details of something, an interface is a way to expose a subset of ways to interact with it, and the more you expand it, the more it exposes the internals of the thing being abstracted. I don't think they necessarily mean this only in terms of programming, but you could apply this argument to a programming language interface; if you use an interface for interacting with something instead of its direct functionality, each additional method you add to the interface exposes more details of the inner value, which makes it less of an abstraction.

    Assuming my interpretation is correct, I'm not sure I totally buy this argument because there doesn't seem to be an obvious way to define the "size" of an interface where it holds true. The naive way to define the size would be number of methods, but I'd argue that methods can vary so much in terms of the amount of cognitive overhead they "expose" to the user that it's not very meaningful. Consider the Movfuscator compiler[0], which compiles code into binaries only using MOV x86 instructions because it happens to be Turing complete; as complex as it might be to learn x86 assembly as a whole and start writing programs directly in it, I'm dubious that trying to do so only with MOV would somehow be easier. Put another way, an x86 instruction set that only contains the MOV instruction is not a "stronger" abstraction than the actual one because it _introduces_ complexity that doesn't exist in the original. Does adding an ADD instruction alongside MOV increase the strength of the abstraction, or weaken it? I don't think there's an answer that we'd immediately all agree on for this sort of thing.

    Ultimately, I think trying to measure interfaces through the number of methods they expose is similar to trying to measure code by the number of lines in it; while there are some extreme cases where we'd likely all agree (e.g. for a fizzbuzz implementation, having 10 lines of code is probably better than thousands of lines of code[1]), we can't really come up with a good objective metric because the "target" number is based on the complexity of what you're trying to define, and we don't have a way of quantifying that complexity. I think the ideas here are still super interesting though, not because they have definitive right or wrong answers, but because thinking about stuff like this overall improves one's ability to write good software for usage by other programmers.

    [0]: https://github.com/xoreaxeaxeax/movfuscator

  • The M/o/Vfuscator contains a complete mov-only floating point emulator. Since it is approximately 500,000 instructions, you must explicitly link to it if you need it
    2 projects | /r/programmingcirclejerk | 15 May 2023
  • Can the RISC instruction set be simplified even further?
    1 project | /r/hardware | 30 Apr 2023
    The mov instruction in x86-64 is Turing complete. Someone even made a C compiler using only mov.
  • This is definitely not the best way to initialize an array
    1 project | /r/programminghorror | 29 Apr 2023
    Are you sure they didn't use the MOVFUSCATOR?
  • Can every function defined in popular libraries/frameworks be traced back to primitive data types, conditional statements and loops?
    1 project | /r/learnprogramming | 16 Apr 2023
    Yep. In fact you can reduce everything to just one simple assembly instruction.
  • I am going to learn goto
    2 projects | /r/ProgrammerHumor | 16 Apr 2023

What are some alternatives?

When comparing sectorforth and movfuscator you can also consider the following projects:

sectorlisp - Bootstrapping LISP in a Boot Sector

demovfuscator - A work-in-progress deobfuscator for movfuscated binaries [Moved to: https://github.com/leetonidas/demovfuscator]

porth - It's like Forth but in Python

obfuscator

book8088 - Examples from my book Programming Boot Sector Games

Molebox - MoleBox lets you convert your application into an all-sufficient stand-alone executable, containing everything needed: components, media assets, registry entries.

colorForth - colorForth running in Bochs for Windows

onelinerizer - Shamelessly convert any Python 2 script into a terrible single line of code

jonesforth - Mirror of JONESFORTH

harm-less - Inspired by suckless and cat-v, this is a simple single document wiki of suckless practices and minimal software.

Unity-game-hacking - A guide for hacking unity games