Compiler Engineering Fundamentals: Defining What a Compiler Is
By
dhruv3006
If you only eat one bagel today, this is the bagel.
Summary
This article is the first part of a blog series called "Compiler Engineering in Practice" that aims to document practical compiler development wisdom not typically found in textbooks. The article focuses on defining what a compiler is, explaining it as a program that translates code from one programming language to another, with examples like translating C to x86 assembly. The author notes that even assemblers can be considered simple compilers under this definition. The series targets readers with some prior compiler experience and seeks to fill gaps in formal compiler education.
Key quotes
· 5 pulled'Compiler Engineering in Practice' is a blog series intended to pass on wisdom that seemingly every seasoned compiler developer knows, but is not systematically written down in any textbook or online resource.
The first and most important question is 'what is a compiler?'
In short, a compiler is: a program that translates code from one programming language to another.
For example, an input language can be C, and the output can be x86 assembly.
By this definition, an assembler is also a compiler (albeit a simple one), in that it reads x86 textual assembly.
You might also wanna read
A Formal Proof That Jira Is Turing-Complete via Minsky Machine Implementation
This article provides a formal proof that Jira (Atlassian's project-tracking tool) is Turing-complete by demonstrating how to build a Minsky
A Formal Proof That Jira Is Turing-Complete via Minsky Machine Implementation
This article provides a formal proof that Jira (Atlassian's project-tracking tool) is Turing-complete by demonstrating how to build a Minsky
A Practitioner's Perspective on Program Analysis and Software Correctness
The article presents a practitioner's perspective on program analysis, reflecting on a decade-long journey to understand how to write correc
Compiler Determinism: Computer Science Theory vs. Engineering Reality
The article explores whether compilers are deterministic, presenting both computer science and engineering perspectives. The computer scienc
Re-examining the 'Billion Dollar Mistake': Why Null Pointers Are Not the Primary Memory Safety Problem
The article challenges the conventional wisdom about null pointers being a 'Billion Dollar Mistake' by Tony Hoare. It argues that null point
Technical Analysis of Robin Hood Hash Table Implementation with Linear Probing
The article presents a technical discussion of a specific hash table implementation called "Robin Hood open-addressing with linear probing a
