• @olsonexi@lemmy.wtf
    link
    fedilink
    629 months ago

    first they had machine code
    then they wrote the assembler in machine code
    then they rewrote the assembler in assembly
    and assembled it with the machine code assembler
    then they wrote the C compiler in assembly
    and assembled it with the assembly assembler
    then they rewrote the C compiler in C
    and compiled it with the assembly C compiler
    then they had the C compiler
    and everything else was written in C

    (note: this is a massive oversimplification and ignores much of the history of programming languages, but it at least gets across the idea of how bootstrapping is done)

    • Malgas
      link
      fedilink
      English
      39 months ago

      Also the first version of a new compiler (the one written in another language) is often skeletal, implementing only the features necessary to compile the full version (written in its own language), which is then immediately used to recompile itself.