flat assembler
Message board for the users of flat assembler.
Index
> Main > How difficult was it to create FASM? |
Author |
|
Tomasz Grysztar 17 Jul 2018, 17:31
There were many incremental steps on the way to where it is today, some of them easier, some of them harder.
fasm was actually my second assembler, my first one (made around 1997) was called ASM32 and had a very straightforward (one could say naive) architecture. Some portions of it survived in the MDAT tool, the others were lost. The lessons I learned helped me a lot when designing the architecture for fasm in 1999. Even then, the first version of fasm that was already capable of assembling itself (my private version 0.90) was also very simple compared to its later incarnations. The self-assembly required a lot of passes and it was very slow, so later I rewrote the assembly module to have a separate parsing stage and then perform all the passes by interpreting an internal byte-code created by the parser. This already increased the complexity noticeably, while this still was only a beginning. After I released this improved version publicly in 2000 I started getting feedback, and the assembler kept growing. During the next few years it has increased in complexity tremendously, as I kept adding new output formats, instructions and directives. And all this experience has then led me to start designing my third assembler, what has later become fasmg. This project was very complex from the very beginning, as it had to consider all the things that fasm accumulated over the years. Perhaps that is why it took me so many years before I managed to take it out of design phase. And all this complexity is not even related to assembling instructions into the machine code, as fasmg does not even do that! You can look at my design notes for fasmg to see what kind of problems I needed to tackle. These notes had been written before I even started working on implementation, I needed to first make sure that the language can be defined in a way that would at least be self-consistent, while fulfilling all the expectations imposed by the legacy of fasm. And even then, some things from the initial design had to change after I started using fasmg in actual projects and noticed some not foreseen problems. |
|||
17 Jul 2018, 17:31 |
|
Mino 18 Jul 2018, 20:50
Thank you very much for your answer This is all remarkable.
|
|||
18 Jul 2018, 20:50 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.