Compiler is a concept that does the parsing of a defined semantic structure with it’s syntactic structure.
Prerequisites for Compilers -
Programming Language[C/C++ - Pointers, Argparse]{Concepts of Memory Management and Garbage Collection}.
https://medium.com/@tharunappu2004/writing-a-lexer-in-c-a-step-by-step-guide-a1d5c55ac04d#:~:text=In the world of programming,meaning in a programming language.
Data Structure[Graphs, Linked Lists].
Discrete Mathematics.
Book For Compilers -
https://suif.stanford.edu/dragonbook/ - Official Dragonbook site.
learn Lexical Analyzer. https://en.wikipedia.org/wiki/Lexical_analysis - Go to it’s references, you will find every thing you want from lexical analysis.
Here’s a link down to write a software engineering research paper -
https://www.cs.cmu.edu/~Compose/shaw-icse03.pdf
https://web.stanford.edu/class/cs143/lectures/lecture03.pdf - Lexical Analysis - Theory.
https://web.stanford.edu/class/cs143/lectures/lecture04.pdf - Lexical Analysis - Implementation Ways and Techniques.
Then Parser Then Semantic Analyzer Then Syntactic Analyzer Then Intermediate code Generation Then Optimizer Then Code Generation.
These whole above content, gives us the areas of research on creating a compiler from scratch.
HAVE SOME RESEARCH AREAS HERE:
That Will help you in creating a project and put a research paper on it. You will have a format here for that thing.
— Whenever you say research, look for every reference graphs and maps.