Personally, I believe that every self-imposed challenge is good. I agree with other opinions that if what you want is a real solution to the problem of real life, it's probably best to stick to proven solutions. However, if, as you said yourself, you have an academic interest in solving this problem, then I urge you to continue. If so, I can provide a couple of tips to help you find the track.
Disassembly is actually not an easy task, so we take at least a semester. However, this can be found out. I would recommend starting with Terrence Parr's book on language implementation patterns . There are many great books on compilation and parsing, probably the Dragon Book was the most beloved and hated.
It's pretty hard stuff, but if you really do it and you have the time, you should definitely take a look. It will be Robisson Crusoe, "I will do everything on my own." I recently wrote an LR parser generator, and it took me no more than a long weekend, but this after reading a lot and a full course of two semesters on compilers.
If you don’t have time or just don’t want to learn how to make a parser “like men”, you can always try a commercial or academic parser generator. ANTLR is excellent, but you should learn its metalanguage. Personally, I think Irony is a great tool, especially because it stays inside C # and you can take a look at the source code and find out for yourself. Since we are here, and I am not trying to advertise at all, I have placed a tiny tool in CodePlex that can be useful for this task. Take a look for yourself, open source and free.
As a final tip, don't be afraid if someone tells you that this is not possible. Analysis is a complex theoretical problem, but it’s nothing that is impossible to learn, and it’s really a great tool for your portfolio. I think that he speaks very well about the developer, that he can manually write a recursive parser, even if he does not need it. If you want to pursue this goal to the end, take a college-level compiler course, you will thank me in a year.
Alejandro Piad
source share