I'm new to compiler concepts and want to create a language-checking program for my college portfolio. My initial idea is to give it source code, perhaps in Rust, and have it detect errors. I'm trying to understand where to begin, what the overall structure should look like, and which resources would help me learn the necessary concepts. Would this kind of project be considered a compiler, or would it be something else?
4 Answers
Start much smaller than trying to analyze all of Rust. A typical compiler front end is built in stages: lexing turns characters into tokens, parsing turns tokens into a syntax tree, and semantic analysis checks meaning. For a portfolio project, you could report syntax errors, undeclared variables, or simple type mismatches. That would be a valuable compiler-front-end project, even if it does not generate executable code. Crafting Interpreters is an excellent free resource for learning these ideas.
You would mainly be building the front end of a compiler: tokenization, parsing, an AST, and semantic checks. It becomes a complete compiler when it also translates the program into another form, such as bytecode, an intermediate representation, or machine code. Pick a small language or subset rather than Rust, and use a standard introductory compiler text alongside an implementation project.
Learn about grammars, parsing, abstract syntax trees, and Backus–Naur Form. It is also worth understanding the difference between a compiler, an interpreter, and a linter. A manageable first project would be checking whether a small fragment of a language, such as a C loop, follows the grammar. Focus on recognizing valid structure before worrying about translating it into machine code.
“Errors” can mean several different things. Checking formatting and syntax is a reasonable starting point, while checking types, return values, and variable usage requires semantic analysis and is more advanced. Checking whether a program does what the author intended is a much harder problem. Writing a recursive-descent interpreter for a tiny language is one approachable way to learn the basics from scratch.

Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically