#[1]Stack Overflow [2]Stack Overflow 1. [3]About 2. [4]Products 3. [5]For Teams 1. [6]Stack Overflow Public questions & answers 2. [7]Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers 3. [8]Talent Build your employer brand 4. [9]Advertising Reach developers & technologists worldwide 5. [10]Labs The future of collective knowledge sharing 6. [11]About the company ____________________ Loading... 1. [12]current community (BUTTON) + Stack Overflow [13]help [14]chat + Meta Stack Overflow your communities [15]Sign up or [16]log in to customize your list. [17]more stack exchange communities [18]company blog 2. (BUTTON) 3. [19]Log in 4. [20]Sign up 1. 1. [21]Home 2. [22]Questions 3. [23]Tags 4. 5. [24]Users 6. [25]Companies 7. Collectives 8. [26]Explore Collectives 9. Labs 10. [27]Discussions 2. Teams Stack Overflow for Teams - Start collaborating and sharing organizational knowledge. [28]Create a free Team [29]Why Teams? 3. Teams 4. Create free Team Collectives(TM) on Stack Overflow Find centralized, trusted content and collaborate around the technologies you use most. [30]Learn more about Collectives Teams Q&A for work Connect and share knowledge within a single location that is structured and easy to search. [31]Learn more about Teams Get early access and see previews of new features. [32]Learn more about Labs [33]Learning to write a compiler [closed] [34]Ask Question Asked 15 years, 5 months ago Modified [35]2 years, 5 months ago Viewed 360k times (BUTTON) 697 (BUTTON) (BUTTON) Closed. This question does not meet [36]Stack Overflow guidelines. It is not currently accepting answers. __________________________________________________________________ Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, [37]describe the problem and what has been done so far to solve it. Closed 9 years ago. This question's answers are a [38]community effort. Edit existing answers to improve this post. It is not currently accepting new answers or interactions. Preferred languages: C/C++, Java, and Ruby. I am looking for some helpful books/tutorials on how to write your own compiler simply for educational purposes. I am most familiar with C/C++, Java, and Ruby, so I prefer resources that involve one of those three, but any good resource is acceptable. * [39]compiler-construction * [40]language-agnostic [41]Share (BUTTON) Follow [42]edited Feb 28, 2014 at 23:45 community wiki [43]20 revs, 10 users 47% [44]Anton 4 * ANTLR all the way. All the resources proposed below looks like an overkill to me. ANTLR is always a compiler designer best friend. A - [45]A_Var Dec 19, 2010 at 4:25 * If your main focus is to learn how compiling ideas work in general - you can check and SICP short for Structured Interpretation of Computer program based in Scheme ( List) but teaches the general principles . [46]mitpress.mit.edu/sicp . I was recommended this book by a veteran who works for a company and does these works compilation and interpretation for a living ! - [47]Nishant Apr 27, 2011 at 15:32 * A shameless plug: [48]my answer on a similar question. - [49]9000 Mar 1, 2014 at 0:21 * I wrote an article on creating a compiler on my blog: [50]orangejuiceliberationfront.com/how-to-write-a-compiler It focuses on the very basics and getting started, really. There's a bunch more compiler/codegen/parser/language design-related articles on there. - [51]uliwitness Mar 8, 2014 at 12:33 Comments disabled on deleted / locked posts / reviews | 38 Answers 38 Sorted by: [52]Reset to default [Highest score (default)___________] 1 [53]2 [54]Next (BUTTON) 1193 (BUTTON) (BUTTON) Big List of Resources: * [55]A Nanopass Framework for Compiler Education ¶ * [56]Advanced Compiler Design and Implementation $ * [57]An Incremental Approach to Compiler Construction ¶ * [58]ANTLR 3.x Video Tutorial * [59]Basics of Compiler Design * [60]Building a Parrot Compiler * [61]Compiler Basics * [62]Compiler Construction $ * [63]Compiler Design and Construction $ * [64]Crafting a Compiler with C $ * [65]Crafting Interpreters * [Compiler Design in C] [66]12 ¶ * [67]Compilers: Principles, Techniques, and Tools $ -- aka [68]"The Dragon Book"; widely considered "the book" for compiler writing. * [69]Engineering a Compiler $ * [70]Essentials of Programming Languages * [71]Flipcode Article Archive (look for "Implementing A Scripting Engine by Jan Niestadt") * [72]Game Scripting Mastery $ * [73]How to build a virtual machine from scratch in C# ¶ * [74]Implementing Functional Languages * [75]Implementing Programming Languages (with BNFC) * [76]Implementing Programming Languages using C# 4.0 * [77]Interpreter pattern (described in [78]Design Patterns $) specifies a way to evaluate sentences in a language * [79]Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages $ * [80]Let's Build a Compiler by Jack Crenshaw -- The [81]PDF ¶ version (examples are in Pascal, but the information is generally applicable) * [82]Linkers and Loaders $ (Google Books) * [83]Lisp in Small Pieces (LiSP) $ * [84]LLVM Tutorial * [85]Modern Compiler Implementation in ML $ -- There is a [86]Java $ and [87]C $ version as well - widely considered a very good book * [88]Object-Oriented Compiler Construction $ * [89]Parsing Techniques - A Practical Guide * [90]Project Oberon ¶ - Look at chapter 13 * [91]Programming a Personal Computer $ * [92]Programing Languages: Application and Interpretation * [93]Rabbit: A Compiler for Scheme¶ * [94]Reflections on Trusting Trust -- A quick guide * [95]Roll Your Own Compiler for the .NET framework -- A quick tutorial from MSDN * [96]Structure and Interpretation of Computer Programs * [97]Types and Programming Languages * [98]Want to Write a Compiler? - a quick guide * [99]Writing a Compiler in Ruby Bottom Up * [100]Compiling a Lisp -- compile directly to x86-64 Legend: * ¶ Link to a PDF file * $ Link to a printed book [101]Share (BUTTON) Follow [102]edited Jul 30, 2021 at 22:04 community wiki [103]40 revs, 29 users 26% [104]Anton 4 * 28 I've read Let's Build a Compiler [[105]compilers.iecc.com/crenshaw/] series, it is really nice writeup and is a good starting point. - [106]TheVillageIdiot May 31, 2010 at 4:35 * 6 I think one worth mentioning is Coursera's compilers course. It has nice videos and walks through creating a java like language / simple compiler. [107]Coursera Compilers Link - [108]QuantumKarl Feb 24, 2016 at 15:25 * 2 I wanted to keep this answer posted to being as original as possible so I decided to post this reference here: [109]tutorialspoint.com/compiler_design/index.htm What I liked about this site is that it doesn't get involved with actually writing any code to create a compiler, but it does break down the compiler into its parts: phases and stages. It does describe the logic and algorithmic design approach without any specific language paradigm as it expresses the notations of an arbitrary language and alphabet. It is a quick read, but gives you the concepts of what is needed for each part. - [110]Francis Cugler Dec 8, 2016 at 11:55 * 3 The link by @TheVillageIdiot is broken (due to a formatting error in the comment), this works: [111]compilers.iecc.com/crenshaw - [112]dimitar.bogdanov Feb 20, 2021 at 14:33 [113]Add a comment | (BUTTON) 75 (BUTTON) (BUTTON) This is a pretty vague question, I think; just because of the depth of the topic involved. A compiler can be decomposed into two separate parts, however; a top-half and a bottom-one. The top-half generally takes the source language and converts it into an intermediate representation, and the bottom half takes care of the platform specific code generation. Nonetheless, one idea for an easy way to approach this topic (the one we used in my compilers class, at least) is to build the compiler in the two pieces described above. Specifically, you'll get a good idea of the entire process by just building the top-half. Just doing the top half lets you get the experience of writing the lexical analyzer and the parser and go to generating some "code" (that intermediate representation I mentioned). So it will take your source program and convert it to another representation and do some optimization (if you want), which is the heart of a compiler. The bottom half will then take that intermediate representation and generate the bytes needed to run the program on a specific architecture. For example, the the bottom half will take your intermediate representation and generate a PE executable. Some books on this topic that I found particularly helpful was [114]Compilers Principles and Techniques (or the Dragon Book, due to the cute dragon on the cover). It's got some great theory and definitely covers Context-Free Grammars in a really accessible manner. Also, for building the lexical analyzer and parser, you'll probably use the *nix tools lex and yacc. And uninterestingly enough, the book called "[115]lex and yacc" picked up where the Dragon Book left off for this part. [116]Share (BUTTON) Follow answered [117]Jul 20, 2009 at 23:01 community wiki [118]mrduclaw [119]Add a comment | (BUTTON) 61 (BUTTON) (BUTTON) I think [120]Modern Compiler Implementation in ML is the best introductory compiler writing text. There's a [121]Java version and a [122]C version too, either of which might be more accessible given your languages background. The book packs a lot of useful basic material (scanning and parsing, semantic analysis, activation records, instruction selection, RISC and x86 native code generation) and various "advanced" topics (compiling OO and functional languages, polymorphism, garbage collection, optimization and single static assignment form) into relatively little space (~500 pages). I prefer Modern Compiler Implementation to the Dragon book because Modern Compiler implementation surveys less of the field--instead it has really solid coverage of all the topics you would need to write a serious, decent compiler. After you work through this book you'll be ready to tackle research papers directly for more depth if you need it. I must confess I have a serious soft spot for Niklaus Wirth's [123]Compiler Construction. It is [124]available online as a PDF. I find Wirth's programming aesthetic simply beautiful, however some people find his style too minimal (for example Wirth favors recursive descent parsers, but most CS courses focus on parser generator tools; Wirth's language designs are fairly conservative.) Compiler Construction is a very succinct distillation of Wirth's basic ideas, so whether you like his style or not or not, I highly recommend reading this book. [125]Share (BUTTON) Follow [126]edited Dec 4, 2019 at 14:42 community wiki [127]2 revs, 2 users 96% [128]Dominic Cooney 2 * Compiler Construction PDF [129]ethoberon.ethz.ch/WirthPubl/CBEAll.pdf - [130]matepal297 Oct 21, 2015 at 22:00 * I strongly recommend against the C version of "Modern Compiler Implementation", it's crippled by low-level details due to C. It completely clutters the book. Java 1st is not too good as its OO design is poor, Java 2nd ed is no longer about the Tiger language. So I strongly recommend the ML one: it is not necessary to be fluent in ML to understand it. ML is definitely well suited for the job. - [131]akim Jul 26, 2016 at 17:52 [132]Add a comment | (BUTTON) 47 (BUTTON) (BUTTON) I concur with the Dragon Book reference; IMO, it is the definitive guide to compiler construction. Get ready for some hardcore theory, though. If you want a book that is lighter on theory, [133]Game Scripting Mastery might be a better book for you. If you are a total newbie at compiler theory, it provides a gentler introduction. It doesn't cover more practical parsing methods (opting for non-predictive recursive descent without discussing LL or LR parsing), and as I recall, it doesn't even discuss any sort of optimization theory. Plus, instead of compiling to machine code, it compiles to a bytecode that is supposed to run on a VM that you also write. It's still a decent read, particularly if you can pick it up for cheap on Amazon. If you only want an easy introduction into compilers, Game Scripting Mastery is not a bad way to go. If you want to go hardcore up front, then you should settle for nothing less than the Dragon Book. [134]Share (BUTTON) Follow answered [135]Aug 4, 2008 at 23:08 community wiki [136]user316 2 * 2 Game Scripting Mastery is a great learning resource because when you're done you will have a playable, scriptable 2D adventure game. This makes every exercise focused on a specific purpose, and keeps the reader motivated. - [137]Dour High Arch Dec 9, 2008 at 17:58 * 1 Dragon is a bit overly focussed on grammar based parsing. If you are not trying to parse something sheer impossible like C++ or so using parser generators, but can use e.g. a handcrafted LL grammar you might want to look out for something that treats a higher percentage compiler fields other than grammar transformation and proving - [138]Marco van de Voort Jun 26, 2009 at 21:36 [139]Add a comment | (BUTTON) 32 (BUTTON) (BUTTON) [140]"Let's Build a Compiler" is awesome, but it's a bit outdated. (I'm not saying it makes it even a little bit less valid.) Or check out [141]SLANG. This is similar to "Let's Build a Compiler" but is a much better resource especially for beginners. This comes with a pdf tutorial which takes a 7 step approach at teaching you a compiler. Adding the quora link as it have the links to all the various ports of SLANG, in C++, Java and JS, also interpreters in python and java, originally written using C# and the .NET platform. [142]Share (BUTTON) Follow [143]edited Aug 16, 2016 at 5:55 community wiki [144]4 revs, 4 users 40% [145]RBz 1 * 5 I agree that this series is a bit outdated, although it is still useful. However, my biggest gripe with it is the fact that it tries to output straight to assembly language rather than building any type of parse tree, which means (contrary to what is stated in the first article) that it isn't very useful for writing an interpreter. - [146]a_m0d Sep 16, 2010 at 6:58 [147]Add a comment | (BUTTON) 26 (BUTTON) (BUTTON) If you're looking to use powerful, higher level tools rather than building everything yourself, going through the projects and readings for [148]this course is a pretty good option. It's a languages course by the author of the Java parser engine ANTLR. You can get the book for the course as a PDF from [149]the Pragmatic Programmers. The course goes over the standard compiler compiler stuff that you'd see elsewhere: parsing, types and type checking, polymorphism, symbol tables, and code generation. Pretty much the only thing that isn't covered is optimizations. The final project is a program that [150]compiles a subset of C. Because you use tools like ANTLR and LLVM, it's feasible to write the entire compiler in a single day (I have an existence proof of this, though I do mean ~24 hours). It's heavy on practical engineering using modern tools, a bit lighter on theory. LLVM, by the way, is simply fantastic. Many situations where you might normally compile down to assembly, you'd be much better off compiling to [151]LLVM's Intermediate Representation instead. It's higher level, cross platform, and LLVM is quite good at generating optimized assembly from it. [152]Share (BUTTON) Follow [153]edited Aug 4, 2008 at 23:25 community wiki [154]2 revs [155]Peter Burns 1 * 8 The first link is dead. - [156]Lynn Mar 24, 2017 at 13:31 [157]Add a comment | (BUTTON) 23 (BUTTON) (BUTTON) If you have little time, I recommend [158]Niklaus Wirth's "Compiler Construction" (Addison-Wesley. 1996), a tiny little booklet that you can read in a day, but it explains the basics (including how to implement lexers, recursive descent parsers, and your own stack-based virtual machines). After that, if you want a deep dive, there's no way around the Dragon book as other commenters suggest. [159]Share (BUTTON) Follow [160]edited Oct 18, 2011 at 13:55 community wiki [161]2 revs, 2 users 67% [162]Matthieu 1 * If you have not much time, don' write a compiler. - [163]Ingo Jan 6, 2012 at 23:56 [164]Add a comment | (BUTTON) 19 (BUTTON) (BUTTON) You might want to look into Lex/Yacc (or Flex/Bison, whatever you want to call them). Flex is a lexical analyzer, which will parse and identify the semantic components ("tokens") of your language, and Bison will be used to define what happens when each token is parsed. This could be, but is definitely not limited to, printing out C code, for a compiler that would compile to C, or dynamically running the instructions. [165]This FAQ should help you, and [166]this tutorial looks quite useful. [167]Share (BUTTON) Follow answered [168]Jul 20, 2009 at 22:47 community wiki [169]Zachary Murray [170]Add a comment | (BUTTON) 17 (BUTTON) (BUTTON) Generally speaking, there's no five minutes tutorial for compilers, because it's a complicated topic and writing a compiler can take months. You will have to do your own search. Python and Ruby are usually interpreted. Perhaps you want to start with an interpreter as well. It's generally easier. The first step is to write a formal language description, the grammar of your programming language. Then you have to transform the source code that you want to compile or interpret according to the grammar into an abstract syntax tree, an internal form of the source code that the computer understands and can operate on. This step is usually called parsing and the software that parses the source code is called a parser. Often the parser is generated by a parser generator which transform a formal grammar into source oder machine code. For a good, non-mathematical explanation of parsing I recommend Parsing Techniques - A Practical Guide. Wikipedia has a comparison of parser generators from which you can choose that one that is suitable for you. Depending on the parser generator you chose, you will find tutorials on the Internet and for really popular parser generators (like GNU bison) there are also books. Writing a parser for your language can be really hard, but this depends on your grammar. So I suggest to keep your grammar simple (unlike C++); a good example for this is LISP. In the second step the abstract syntax tree is transformed from a tree structure into a linear intermediate representation. As a good example for this Lua's bytecode is often cited. But the intermediate representation really depends on your language. If you are building an interpreter, you will simply have to interpret the intermediate representation. You could also just-in-time-compile it. I recommend LLVM and libjit for just-in-time-compilation. To make the language usable you will also have to include some input and output functions and perhaps a small standard library. If you are going to compile the language, it will be more complicated. You will have to write backends for different computer architectures and generate machine code from the intermediate representation in those backends. I recommend LLVM for this task. There are a few books on this topic, but I can recommend none of them for general use. Most of them are too academic or too practical. There's no "Teach yourself compiler writing in 21 days" and thus, you will have to buy several books to get a good understanding of this entire topic. If you search the Internet, you will come across some some online books and lecture notes. Maybe there's a university library nearby you where you can borrow books on compilers. I also recommend a good background knowledge in theoretical computer science and graph theory, if you are going to make your project serious. A degree in computer science will also be helpful. [171]Share (BUTTON) Follow answered [172]Jul 21, 2009 at 10:37 community wiki [173]user141335 1 * ++ You're right that it's good to know all those things, and it can be a big job, but I also learned from some experts how not to make things a big deal. It's good to know things, and it's even better to know when not to use them, which is most of the time. - [174]Mike Dunlavey Jul 21, 2009 at 16:00 [175]Add a comment | (BUTTON) 14 (BUTTON) (BUTTON) Take a look at the book below. The author is the creator of [176]ANTLR. [177]Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages. alt text [178]Share (BUTTON) Follow [179]edited Dec 27, 2014 at 12:39 community wiki [180]2 revs, 2 users 95% [181]Taylor Leese [182]Add a comment | (BUTTON) 12 (BUTTON) (BUTTON) One book not yet suggested but very important is [183]"Linkers and Loaders" by John Levine. If you're not using an external assembler, you'll need a way to output a object file that can be linked into your final program. Even if you're using an external assembler, you'll probably need to understand relocations and how the whole program loading process works to make a working tool. This book collects a lot of the random lore around this process for various systems, including Win32 and Linux. [184]Share (BUTTON) Follow answered [185]Aug 18, 2008 at 20:18 community wiki [186]Ben Combee [187]Add a comment | (BUTTON) 11 (BUTTON) (BUTTON) [188]The Dragon Book is definitely the "building compilers" book, but if your language isn't quite as complicated as the current generation of languages, you may want to look at the Interpreter pattern from [189]Design Patterns. The example in the book designs a regular expression-like language and is well thought through, but as they say in the book, it's good for thinking through the process but is effective really only on small languages. However, it is much faster to write an Interpreter for a small language with this pattern than having to learn about all the different types of parsers, yacc and lex, et cetera... [190]Share (BUTTON) Follow answered [191]Aug 5, 2008 at 16:16 community wiki [192]Chris Bunch [193]Add a comment | (BUTTON) 11 (BUTTON) (BUTTON) If you're willing to use LLVM, check this out: [194]http://llvm.org/docs/tutorial/. It teaches you how to write a compiler from scratch using LLVM's framework, and doesn't assume you have any knowledge about the subject. The tutorial suggest you write your own parser and lexer etc, but I advise you to look into bison and flex once you get the idea. They make life so much easier. [195]Share (BUTTON) Follow answered [196]Aug 20, 2008 at 10:01 community wiki [197]wvdschel 1 * But the documentation for setting it up of Visual Studio is badly written, plus no examples - user868935 Oct 2, 2014 at 9:17 [198]Add a comment | (BUTTON) 11 (BUTTON) (BUTTON) I found the Dragon book much too hard to read with too much focus on language theory that is not really required to write a compiler in practice. I would add the [199]Oberon book which contains the full source of an amazingly fast and simple Oberon compiler [200]Project Oberon. Alt text [201]Share (BUTTON) Follow [202]edited Dec 27, 2014 at 12:39 community wiki [203]3 revs, 3 users 73% [204]Lothar [205]Add a comment | (BUTTON) 11 (BUTTON) (BUTTON) The LCC compiler ([206]wikipedia) ([207]project homepage) ([208]github.com/drh/lcc) of Fraser and Hanson is described in their book "A Retargetable C Compiler: Design and Implementation". It is quite readable and explains the whole compiler, down to code generation. [209]Share (BUTTON) Follow [210]edited Dec 4, 2019 at 14:40 community wiki [211]2 revs, 2 users 75% [212]mfx 1 * This seems like an extremely good resource thanks. - [213]gideon Aug 11, 2016 at 15:26 [214]Add a comment | (BUTTON) 10 (BUTTON) (BUTTON) I am looking into the same concept, and found this promising article by Joel Pobar, [215]Create a Language Compiler for the .NET Framework - not sure where this has gone [216]Create a Language Compiler for the .NET Framework - pdf copy of the original doc he discusses a high level concept of a compiler and proceeds to invent his own langauge for the .Net framework. Although its aimed at the .Net Framework, many of the concepts should be able to be reproduced. The Article covers: 1. Langauge definition 2. Scanner 3. Parser (the bit im mainly interested in) 4. Targeting the .Net Framework The 5. Code Generator there are other topics, but you get the just. Its aimed to people starting out, written in C# (not quite Java) HTH bones [217]Share (BUTTON) Follow [218]edited Dec 15, 2018 at 1:04 community wiki [219]2 revs [220]dbones 2 * What does "not quite Java" mean? - [221]Hejazzman Apr 25, 2009 at 21:53 * haha, sorry, i meant its written for .Net, which in principal is similar to java. Both are JIT in style. :) - [222]dbones Apr 28, 2009 at 10:48 [223]Add a comment | (BUTTON) 10 (BUTTON) (BUTTON) I remember asking this question about seven years ago when I was rather new to programming. I was very careful when I asked and surprisingly I didn't get as much criticism as you are getting here. They did however point me in the direction of the "[224]Dragon Book" which is in my opinion, a really great book that explains everything you need to know to write a compiler (you will of course have to master a language or two. The more languages you know, the merrier.). And yes, many people say reading that book is crazy and you won't learn anything from it, but I disagree completely with that. Many people also say that writing compilers is stupid and pointless. Well, there are a number of reasons why compiler development are useful: * Because it's fun. * It's educational, when learning how to write compilers you will learn a lot about computer science and other techniques that are useful when writing other applications. * If nobody wrote compilers the existing languages wouldn't get any better. I didn't write my own compiler right away, but after asking I knew where to start. And now, after learning many different languages and reading the Dragon Book, writing isn't that much of a problem. (I'm also studying computer engineering atm, but most of what I know about programming is self taught.) In conclusion, The Dragon Book is a great "tutorial". But spend some time mastering a language or two before attempting to write a compiler. Don't expect to be a compiler guru within the next decade or so though. The book is also good if you want to learn how to write parsers/interpreters. [225]Share (BUTTON) Follow [226]edited May 26, 2019 at 23:00 community wiki [227]6 revs, 5 users 68% [228]Pandafox 1 * We were taught Compilers subject in college with Dragon Book, and i can vouch for it, it was one of the best books I've came through - [229]cosmoloc Sep 12, 2021 at 14:41 [230]Add a comment | (BUTTON) 9 (BUTTON) (BUTTON) "... Let's Build a Compiler ..." I'd second [231]http://compilers.iecc.com/crenshaw/ by [232]@sasb. Forget buying more books for the moment. Why? Tools & language. The language required is Pascal and if I remember correctly is based on Turbo-Pascal. It just so happens if you go to [233]http://www.freepascal.org/ and download the Pascal compiler all the examples work straight from the page ~ [234]http://www.freepascal.org/download.var The beaut thing about Free Pascal is you can use it almost whatever processor or OS you can care for. Once you have mastered the lessons then try the more advanced "[235]Dragon Book" ~ [236]http://en.wikipedia.org/wiki/Dragon_book [237]Share (BUTTON) Follow [238]edited May 23, 2017 at 11:54 community wiki [239]3 revs [240]bootload [241]Add a comment | (BUTTON) 8 (BUTTON) (BUTTON) An easy way to create a compiler is to use bison and flex (or similar), build a tree (AST) and generate code in C. With generating C code being the most important step. By generating C code, your language will automatically work on all platforms that have a C compiler. Generating C code is as easy as generating HTML (just use print, or equivalent), which in turn is much easier than writing a C parser or HTML parser. [242]Share (BUTTON) Follow answered [243]Aug 20, 2008 at 9:56 community wiki [244]Peter Stuifzand [245]Add a comment | (BUTTON) 8 (BUTTON) (BUTTON) From the [246]comp.compilers FAQ: "Programming a Personal Computer" by Per Brinch Hansen Prentice-Hall 1982 ISBN 0-13-730283-5 This unfortunately-titled book explains the design and creation of a single-user programming environment for micros, using a Pascal-like language called Edison. The author presents all source code and explanations for the step-by-step implementation of an Edison compiler and simple supporting operating system, all written in Edison itself (except for a small supporting kernel written in a symbolic assembler for PDP 11/23; the complete source can also be ordered for the IBM PC). The most interesting things about this book are: 1) its ability to demonstrate how to create a complete, self-contained, self-maintaining, useful compiler and operating system, and 2) the interesting discussion of language design and specification problems and trade-offs in Chapter 2. "Brinch Hansen on Pascal Compilers" by Per Brinch Hansen Prentice-Hall 1985 ISBN 0-13-083098-4 Another light-on-theory heavy-on-pragmatics here's-how-to-code-it book. The author presents the design, implementation, and complete source code for a compiler and p-code interpreter for Pascal- (Pascal "minus"), a Pascal subset with boolean and integer types (but no characters, reals, subranged or enumerated types), constant and variable definitions and array and record types (but no packed, variant, set, pointer, nameless, renamed, or file types), expressions, assignment statements, nested procedure definitions with value and variable parameters, if statements, while statements, and begin-end blocks (but no function definitions, procedural parameters, goto statements and labels, case statements, repeat statements, for statements, and with statements). The compiler and interpreter are written in Pascal* (Pascal "star"), a Pascal subset extended with some Edison-style features for creating software development systems. A Pascal* compiler for the IBM PC is sold by the author, but it's easy to port the book's Pascal- compiler to any convenient Pascal platform. This book makes the design and implementation of a compiler look easy. I particularly like the way the author is concerned with quality, reliability, and testing. The compiler and interpreter can easily be used as the basis for a more involved language or compiler project, especially if you're pressed to quickly get something up and running. [247]Share (BUTTON) Follow [248]edited Jun 27, 2010 at 19:00 community wiki [249]2 revs [250]joe snyder [251]Add a comment | (BUTTON) 8 (BUTTON) (BUTTON) You should check out Darius Bacon's "[252]ichbins", which is a compiler for a small Lisp dialect, targeting C, in just over 6 pages of code. The advantage it has over most toy compilers is that the language is complete enough that the compiler is written in it. (The tarball also includes an interpreter to bootstrap the thing.) There's more stuff about what I found useful in learning to write a compiler on my [253]Ur-Scheme web page. [254]Share (BUTTON) Follow [255]edited Dec 1, 2010 at 12:50 community wiki [256]2 revs, 2 users 89% Kragen Javier Sitaker [257]Add a comment | (BUTTON) 7 (BUTTON) (BUTTON) Python comes bundled with a python compiler written in Python. You can see the source code, and it includes all phases, from parsing, abstract syntax tree, emitting code, etc. Hack it. [258]Share (BUTTON) Follow answered [259]Aug 12, 2008 at 11:25 community wiki [260]yeruham [261]Add a comment | (BUTTON) 7 (BUTTON) (BUTTON) Sorry, it is in Spanish, but this is the bibliography of a course called "Compiladores e Intérpretes" (Compilers and Interpreters) in Argentina. The course was from formal language theory to compiler construction, and these are the topics you need to build, at least, a simple compiler: * Compilers Design in C. Allen I. Holub Prentice-Hall. 1990. * Compiladores. Teoría y Construcción. Sanchís Llorca, F.J. , Galán Pascual, C. Editorial Paraninfo. 1988. * Compiler Construction. Niklaus Wirth Addison-Wesley. 1996. * Lenguajes, Gramáticas y Autómatas. Un enfoque práctico. Pedro Isasi Viñuela, Paloma Martínez Fernández, Daniel Borrajo Millán. Addison-Wesley Iberoamericana (España). 1997. * The art of compiler design. Theory and practice. Thomas Pittman, James Peters. Prentice-Hall. 1992. * Object-Oriented Compiler Construction. Jim Holmes. Prentice Hall, Englewood Cliffs, N.J. 1995 * Compiladores. Conceptos Fundamentales. B. Teufel, S. Schmidt, T. Teufel. Addison-Wesley Iberoamericana. 1995. * Introduction to Automata Theory, Languages, and Computation. John E. Hopcroft. Jeffref D. Ullman. Addison-Wesley. 1979. * Introduction to formal languages. György E. Révész. Mc Graw Hill. 1983. * Parsing Techniques. A Practical Guide. Dick Grune, Ceriel Jacobs. Impreso por los autores. 1995 [262]http://www.cs.vu.nl/~dick/PTAPG.html * Yacc: Yet Another Compiler-Compiler. Stephen C. Johnson Computing Science Technical Report Nº 32, 1975. Bell Laboratories. Murray Hill, New Jersey. * Lex: A Lexical Analyzer Generator. M. E. Lesk, E. Schmidt. Computing Science Technical Report Nº 39, 1975. Bell Laboratories. Murray Hill, New Jersey. * lex & yacc. John R. Levine, Tony Mason, Doug Brown. O'Reilly & Associates. 1995. * Elements of the theory of computation. Harry R. Lewis, Christos H. Papadimitriou. Segunda Edición. Prentice Hall. 1998. * Un Algoritmo Eficiente para la Construcción del Grafo de Dependencia de Control. Salvador V. Cavadini. Trabajo Final de Grado para obtener el Título de Ingeniero en Computación. Facultad de Matemática Aplicada. U.C.S.E. 2001. [263]Share (BUTTON) Follow [264]edited Feb 28, 2014 at 23:52 community wiki [265]2 revs, 2 users 98% [266]eKek0 [267]Add a comment | (BUTTON) 7 (BUTTON) (BUTTON) 1. This is a vast subject. Do not underestimate this point. And do not underestimate my point to not underestimate it. 2. I hear the [268]Dragon Book is a (the?) place to start, along with searching. :) Get better at searching, eventually it will be your life. 3. Building your own programming language is absolutely a good exercise! But know that it will never be used for any practical purpose in the end. Exceptions to this are few and very far between. [269]Share (BUTTON) Follow [270]edited Feb 28, 2014 at 23:54 community wiki [271]2 revs, 2 users 73% [272]280Z28 9 * 5 If you haven't read the Dragon book. Please don't recommend it. In fact, have you ever implemented a compiler? - anon Jul 20, 2009 at 22:46 * Yeah, as the name implies, the Dragon Book is a monster. Very in-depth, but a very good resource nonetheless. I wouldn't recommend it for beginners, though... - [273]Zachary Murray Jul 20, 2009 at 22:47 * 2 @Neil: You haven't google'd me, have you? lol. [274]blog.280z28.org But no, I haven't read that book. - [275]Sam Harwell Jul 20, 2009 at 22:49 * I'm reading it (the dragon book) presently, and also Lex/Yacc at the same time, I'm finding the book quite good. Personally. - [276]Simeon Pilgrim Jul 20, 2009 at 22:58 * 1 To be fair, I prefaced it with "I hear...". :) #1 and #3 are the points I feel are extremely important to know going in but aren't mentioned as often. - [277]Sam Harwell Jul 20, 2009 at 23:07 | [278]Show 4 more comments (BUTTON) 6 (BUTTON) (BUTTON) Not a book, but a technical paper and an enormously fun learning experience if you want to know more about compilers (and metacompilers)... This website walks you through building a completely self-contained compiler system that can compile itself and other languages: [279]Tutorial: Metacompilers Part 1 This is all based on an amazing little 10-page technical paper: Val Schorre META II: A Syntax-Oriented Compiler Writing Language from honest-to-god 1964. I learned how to build compilers from this back in 1970. There's a mind-blowing moment when you finally grok how the compiler can regenerate itself.... I know the website author from my college days, but I have nothing to do with the website. [280]Share (BUTTON) Follow [281]edited Mar 1, 2014 at 0:09 community wiki [282]4 revs, 2 users 77% [283]Ira Baxter 2 * As others say, is BIG argument, I think sushi a task is a final work for bachelor, it requires to know a LOT of concepts of math, computer science and so on. - [284]ingconti Jun 18, 2014 at 6:10 * If you don't know these topics, you shouldn't really be trying to build a serious compiler. However, if you have 2-3 years undergraduate computer science education (programming, data structures, assembly language), the MetaII paper will work for you. - [285]Ira Baxter Jun 18, 2014 at 12:23 [286]Add a comment | (BUTTON) 6 (BUTTON) (BUTTON) There's a lot of good answers here, so i thought I'd just add one more to the list: I got a book called Project Oberon more than a decade ago, which has some very well written text on the compiler. The book really stands out in the sense that the source and explanations is very hands on and readable. The complete text (the 2005 edition) has been made available in pdf, so you can download right now. The compiler is discussed in chapter 12: [287]http://www.ethoberon.ethz.ch/WirthPubl/ProjectOberon.pdf Niklaus Wirth, Jürg Gutknecht (The treatment is not as extensive as his book on compilers) I've read several books on compilers, and i can second the dragon book, time spent on this book is very worthwhile. [288]Share (BUTTON) Follow [289]edited Dec 4, 2019 at 14:38 community wiki [290]3 revs, 2 users 96% [291]tovare [292]Add a comment | (BUTTON) 5 (BUTTON) (BUTTON) I liked the [293]Crenshaw tutorial too, because it makes it absolutely clear that a compiler is just another program that reads some input and writes some out put. Read it. Work it if you want, but then look at another reference on how bigger and more complete compilers are really written. And read [294]On Trusting Trust, to get a clue about the unobvious things that can be done in this domain. [295]Share (BUTTON) Follow [296]edited Sep 2, 2008 at 4:52 community wiki [297]2 revs [298]dmckee [299]Add a comment | (BUTTON) 5 (BUTTON) (BUTTON) If you are interested in writing a compiler for a functional language (rather than a procedural one) Simon Peyton-Jones and David Lester's "[300]Implementing functional languages: a tutorial" is an excellent guide. The conceptual basics of how functional evaluation works is guided by examples in a simple but powerful functional language called "Core". Additionally, each part of the Core language compiler is explained with code examples in Miranda (a pure functional language very similar to Haskell). Several different types of compilers are described but even if you only follow the so-called template compiler for Core you will have an excellent understanding of what makes functional programming tick. [301]Share (BUTTON) Follow answered [302]Oct 1, 2008 at 9:30 community wiki [303]Mark Reid [304]Add a comment | (BUTTON) 5 (BUTTON) (BUTTON) You can use [305]BCEL by the Apache Software Foundation. With this tool you can generate assembler-like code, but it's Java with the BCEL API. You can learn how you can generate intermediate language code (in this case byte code). Simple example 1. Create a Java class with this function: public String maxAsString(int a, int b) { if (a > b) { return Integer.valueOf(a).toString(); } else if (a < b) { return Integer.valueOf(b).toString(); } else { return "equals"; } } Now run BCELifier with this class BCELifier bcelifier = new BCELifier("MyClass", System.out); bcelifier.start(); You can see the result on the console for the whole class (how to build byte code MyClass.java). The code for the function is this: private void createMethod_1() { InstructionList il = new InstructionList(); MethodGen method = new MethodGen(ACC_PUBLIC, Type.STRING, new Type[] { Type.IN T, Type.INT }, new String[] { "arg0", "arg1" }, "maxAsString", "MyClass", il, _c p); il.append(InstructionFactory.createLoad(Type.INT, 1)); // Load first parameter to address 1 il.append(InstructionFactory.createLoad(Type.INT, 2)); // Load second paramete r to adress 2 BranchInstruction if_icmple_2 = InstructionFactory.createBranchInstruction(C onstants.IF_ICMPLE, null); // Do if condition (compare a > b) il.append(if_icmple_2); il.append(InstructionFactory.createLoad(Type.INT, 1)); // Load value from addr ess 1 into the stack il.append(_factory.createInvoke("java.lang.Integer", "valueOf", new ObjectType ("java.lang.Integer"), new Type[] { Type.INT }, Constants.INVOKESTATIC)); il.append(_factory.createInvoke("java.lang.Integer", "toString", Type.STRING, Type.NO_ARGS, Constants.INVOKEVIRTUAL)); il.append(InstructionFactory.createReturn(Type.OBJECT)); InstructionHandle ih_13 = il.append(InstructionFactory.createLoad(Type.INT, 1) ); il.append(InstructionFactory.createLoad(Type.INT, 2)); BranchInstruction if_icmpge_15 = InstructionFactory.createBranchInstruction( Constants.IF_ICMPGE, null); // Do if condition (compare a < b) il.append(if_icmpge_15); il.append(InstructionFactory.createLoad(Type.INT, 2)); il.append(_factory.createInvoke("java.lang.Integer", "valueOf", new ObjectType ("java.lang.Integer"), new Type[] { Type.INT }, Constants.INVOKESTATIC)); il.append(_factory.createInvoke("java.lang.Integer", "toString", Type.STRING, Type.NO_ARGS, Constants.INVOKEVIRTUAL)); il.append(InstructionFactory.createReturn(Type.OBJECT)); InstructionHandle ih_26 = il.append(new PUSH(_cp, "equals")); // Return "equal s" string il.append(InstructionFactory.createReturn(Type.OBJECT)); if_icmple_2.setTarget(ih_13); if_icmpge_15.setTarget(ih_26); method.setMaxStack(); method.setMaxLocals(); _cg.addMethod(method.getMethod()); il.dispose(); } [306]Share (BUTTON) Follow [307]edited Mar 1, 2014 at 0:06 community wiki [308]2 revs, 2 users 82% [309]timaschew [310]Add a comment | (BUTTON) 4 (BUTTON) (BUTTON) I'm surprised it hasn't been mentioned, but Donald Knuth's The Art of Computer Programming was originally penned as a sort of tutorial on compiler writing. Of course, Dr. Knuth's propensity for going in-depth on topics has led to the compiler-writing tutorial being expanded to an estimated 9 volumes, only three of which have actually been published. It's a rather complete exposition on programming topics, and covers everything you would ever need to know about writing a compiler, in minute detail. [311]Share (BUTTON) Follow answered [312]Jul 21, 2009 at 0:20 community wiki [313]greyfade [314]Add a comment | 1 [315]2 [316]Next Not the answer you're looking for? Browse other questions tagged * [317]compiler-construction * [318]language-agnostic or [319]ask your own question. * The Overflow Blog * [320]Maximum Glitch: How to break Tetris * [321]How to build a role-playing video game in 24 hours * Featured on Meta * [322]Update to our Advertising Guidelines * [323]Sites can now request to enable a banner to warn about their policy on... * [324]Temporary policy: Generative AI (e.g., ChatGPT) is banned Linked 37 [325]create my own programming language 33 [326]How to go about making your own programming language? 15 [327]How to write a simple compiler in C/++? 13 [328]Parsers and Compilers for Dummies. Where to start? 5 [329]compiler design 6 [330]How would you go about writing a simple programming language? 7 [331]What is the process of creating an interpreted language? 7 [332]Where to start if I want to understand how compilers and programming languages are made 2 [333]How can I write a quick and dirty interpreter? 5 [334]Help with Compiler Design [335]See more linked questions Related 639 [336]What does a just-in-time (JIT) compiler do? 100 [337]How to approach creating a JVM programming language? 7 [338]Can Coco/R turn a parsed file into bytecode? 9 [339]How is a lattice used by a compiler 4 [340]Microsoft CCI - resources, references for writing compilers [341]Hot Network Questions * [342]Algorithm needed to find optimum area of 2-dimensional data set * [343]What happened to Jazz in 1980? * [344]What was the standard time in the Principality of Lippe? * [345]Conveying 'Get a life' * [346]On solving the minimally clued 8x8 Sudoku * [347]Is George a dishwasher? * [348]How is dividend good for stock/share investors? * [349]Do the senses themselves (not what they deceptively reveal) exist in some form? * [350]Why did my coworker see a "painting-ified" version of my background image on a Zoom call? * [351]"Perfect" an array * [352]Autocommutator subgroup is a characteristic subgroup * [353]How to notate free time in MuseScore * [354]How to scan pencil drawings to get good dynamic range? * [355]Virtualbox 6 stopped working After kernel upgrade in Ubuntu 22.04 * [356]Asking a professor for materials before the course * [357]Why would I put an ASI into Con instead of taking the Tough feat? * [358]Why do some journals want to send the manuscript to arXiv before submission? * [359]If everyone in the Senate is drunk, does that invalidate their actions? * [360]Professor gets funding and does not give to student * [361]Why does Musescore interpret Westergaard's A-flat as G? Seeking Clarification on Pitch Spelling * [362]Convention: Comma and period in an enumeration * [363]How to get coworkers to stop giving me ChatGPT-generated suggestions * [364]Creating a product integration symbol which behaves as the standard integration symbol * [365]At what velocity would an object have to fall in order to become weightless? [366]more hot questions [367]Stack Overflow * [368]Questions * [369]Help [370]Products * [371]Teams * [372]Advertising * [373]Collectives * [374]Talent [375]Company * [376]About * [377]Press * [378]Work Here * [379]Legal * [380]Privacy Policy * [381]Terms of Service * [382]Contact Us * [383]Cookie Settings * [384]Cookie Policy [385]Stack Exchange Network * [386]Technology * [387]Culture & recreation * [388]Life & arts * [389]Science * [390]Professional * [391]Business * [392]API * [393]Data * [394]Blog * [395]Facebook * [396]Twitter * [397]LinkedIn * [398]Instagram Site design / logo © 2024 Stack Exchange Inc; user contributions licensed under [399]CC BY-SA. rev 2024.1.10.3270 Your privacy By clicking "Accept all cookies", you agree Stack Exchange can store cookies on your device and disclose information in accordance with our [400]Cookie Policy. (BUTTON) Accept all cookies (BUTTON) Necessary cookies only (BUTTON) Customize settings References Visible links: 1. https://stackoverflow.com/opensearch.xml 2. https://stackoverflow.com/ 3. https://stackoverflow.co/ 4. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 5. https://stackoverflow.co/teams/ 6. https://stackoverflow.com/questions 7. https://stackoverflow.co/teams/ 8. https://stackoverflow.co/talent/ 9. https://stackoverflow.co/advertising/ 10. https://stackoverflow.co/labs/ 11. https://stackoverflow.co/ 12. https://stackoverflow.com/ 13. https://stackoverflow.com/help 14. https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com 15. https://stackoverflow.com/users/signup?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f1669%2flearning-to-write-a-compiler 16. https://stackoverflow.com/users/login?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f1669%2flearning-to-write-a-compiler 17. https://stackexchange.com/sites 18. https://stackoverflow.blog/ 19. https://stackoverflow.com/users/login?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f1669%2flearning-to-write-a-compiler 20. https://stackoverflow.com/users/signup?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f1669%2flearning-to-write-a-compiler 21. https://stackoverflow.com/ 22. https://stackoverflow.com/questions 23. https://stackoverflow.com/tags 24. https://stackoverflow.com/users 25. https://stackoverflow.com/jobs/companies?so_medium=stackoverflow&so_source=SiteNav 26. https://stackoverflow.com/collectives 27. https://stackoverflow.com/collectives/beta/discussions 28. https://try.stackoverflow.co/why-teams/?utm_source=so-owned&utm_medium=side-bar&utm_campaign=campaign-38&utm_content=cta 29. https://stackoverflow.co/teams/ 30. https://stackoverflow.com/collectives 31. https://stackoverflow.co/teams/ 32. https://stackoverflow.co/labs/ 33. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 34. https://stackoverflow.com/questions/ask 35. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler?lastactivity 36. https://stackoverflow.com/help/closed-questions 37. http://meta.stackoverflow.com/q/254394/ 38. https://stackoverflow.com/help/privileges/edit-community-wiki 39. https://stackoverflow.com/questions/tagged/compiler-construction 40. https://stackoverflow.com/questions/tagged/language-agnostic 41. https://stackoverflow.com/q/1669 42. https://stackoverflow.com/posts/1669/revisions 43. https://stackoverflow.com/posts/1669/revisions 44. https://stackoverflow.com/users/340 45. https://stackoverflow.com/users/293821/a-var 46. http://mitpress.mit.edu/sicp/ 47. https://stackoverflow.com/users/452102/nishant 48. http://programmers.stackexchange.com/a/165558/11732 49. https://stackoverflow.com/users/223424/9000 50. http://orangejuiceliberationfront.com/how-to-write-a-compiler/ 51. https://stackoverflow.com/users/242278/uliwitness 52. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler?answertab=scoredesc#tab-top 53. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler?page=2&tab=scoredesc#tab-top 54. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler?page=2&tab=scoredesc#tab-top 55. http://www.cs.indiana.edu/%7Edyb/pubs/nano-jfp.pdf 56. http://www.amazon.com/gp/offer-listing/1558603204?tag=thecompilerconne&camp=14573&creative=327641&linkCode=am1&creativeASIN=1558603204&adid=1ZQWN5FGBA1JM6MNQ2ZV& 57. http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf 58. http://javadude.com/articles/antlr3xtut 59. http://www.diku.dk/%7Etorbenm/Basics/ 60. http://web.archive.org/web/20160731061607/http://www.onlamp.com/pub/a/onlamp/2004/04/15/parrot_compiler_construction.html 61. http://www.cs.man.ac.uk/%7Epjj/farrell/compmain.html 62. https://rads.stackoverflow.com/amzn/click/com/0201403536 63. https://rads.stackoverflow.com/amzn/click/com/0442275366 64. https://rads.stackoverflow.com/amzn/click/com/0805321667 65. http://craftinginterpreters.com/ 66. http://www.holub.com/software/compiler.design.in.c.html 67. https://rads.stackoverflow.com/amzn/click/com/0321486811 68. http://en.wikipedia.org/wiki/Compilers:_Principles%2C_Techniques%2C_and_Tools 69. https://rads.stackoverflow.com/amzn/click/com/012088478X 70. http://www.cs.indiana.edu/eopl/ 71. http://flipcode.com/archives/articles.shtml 72. https://rads.stackoverflow.com/amzn/click/com/1931841578 73. http://www.codeproject.com/KB/recipes/B32Machine1/VMCS.pdf 74. http://research.microsoft.com/%7Esimonpj/papers/pj-lester-book/ 75. http://www1.digitalgrammars.com/ipl-book/ 76. http://www.codeproject.com/KB/recipes/programminglanguagetoools.aspx 77. http://en.wikipedia.org/wiki/Interpreter_pattern 78. https://rads.stackoverflow.com/amzn/click/com/0201633612 79. http://pragprog.com/titles/tpdsl/language-implementation-patterns 80. http://compilers.iecc.com/crenshaw/ 81. http://www.stack.nl/%7Emarcov/compiler.pdf 82. http://books.google.com/books?id=Id9cYsIdjIwC&lpg=PP1&ots=IxFkFWJ-8V&dq=%22linkers%20and%20loaders%22&pg=PA215#v=onepage&q=%22linkers%20and%20loaders%22&f=false 83. https://rads.stackoverflow.com/amzn/click/com/0521562473 84. http://llvm.org/docs/tutorial/ 85. https://rads.stackoverflow.com/amzn/click/com/0521607647 86. https://rads.stackoverflow.com/amzn/click/com/052182060X 87. https://rads.stackoverflow.com/amzn/click/com/0521607655 88. http://www.amazon.com/gp/offer-listing/013630740X?tag=thecompilerconne&camp=14573&creative=327641&linkCode=am1&creativeASIN=013630740X&adid=0JPMVBRNCAN6PDKGYSXX& 89. http://www.dickgrune.com/Books/PTAPG_1st_Edition/ 90. http://www-old.oberon.ethz.ch/WirthPubl/ProjectOberon.pdf 91. https://rads.stackoverflow.com/amzn/click/com/0137302673 92. http://www.cs.brown.edu/%7Esk/Publications/Books/ProgLangs/ 93. http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AITR-474.pdf 94. http://web.archive.org/web/20141221110345/http://cm.bell-labs.com/who/ken/trust.html 95. http://msdn.microsoft.com/en-us/magazine/cc136756.aspx 96. http://mitpress.mit.edu/sicp/ 97. http://www.cis.upenn.edu/%7Ebcpierce/tapl/ 98. http://prog21.dadgum.com/30.html 99. http://www.hokstad.com/writing-a-compiler-in-ruby-bottom-up-step-1.html 100. https://bernsteinbear.com/blog/compiling-a-lisp-0/ 101. https://stackoverflow.com/a/1672 102. https://stackoverflow.com/posts/1672/revisions 103. https://stackoverflow.com/posts/1672/revisions 104. https://stackoverflow.com/users/340 105. http://compilers.iecc.com/crenshaw/] 106. https://stackoverflow.com/users/13198/thevillageidiot 107. https://www.coursera.org/course/compilers 108. https://stackoverflow.com/users/505292/quantumkarl 109. https://www.tutorialspoint.com/compiler_design/index.htm 110. https://stackoverflow.com/users/1757805/francis-cugler 111. https://compilers.iecc.com/crenshaw/ 112. https://stackoverflow.com/users/13580938/dimitar-bogdanov 113. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 114. https://rads.stackoverflow.com/amzn/click/com/0321486811 115. https://rads.stackoverflow.com/amzn/click/com/1565920007 116. https://stackoverflow.com/a/1156434 117. https://stackoverflow.com/posts/1156434/revisions 118. https://stackoverflow.com/posts/1156434/revisions 119. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 120. https://rads.stackoverflow.com/amzn/click/com/0521607647 121. https://rads.stackoverflow.com/amzn/click/com/052182060X 122. https://rads.stackoverflow.com/amzn/click/com/0521607655 123. https://rads.stackoverflow.com/amzn/click/com/0201403536 124. http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf 125. https://stackoverflow.com/a/7085 126. https://stackoverflow.com/posts/7085/revisions 127. https://stackoverflow.com/posts/7085/revisions 128. https://stackoverflow.com/users/878 129. http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf 130. https://stackoverflow.com/users/2310961/matepal297 131. https://stackoverflow.com/users/1353549/akim 132. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 133. https://rads.stackoverflow.com/amzn/click/com/1931841578 134. https://stackoverflow.com/a/1686 135. https://stackoverflow.com/posts/1686/revisions 136. https://stackoverflow.com/posts/1686/revisions 137. https://stackoverflow.com/users/22437/dour-high-arch 138. https://stackoverflow.com/users/99354/marco-van-de-voort 139. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 140. http://compilers.iecc.com/crenshaw/ 141. https://www.quora.com/As-a-self-taught-programmer-how-can-I-learn-about-compilers/answer/Akhil-Kooliyatt?srid=TAGM 142. https://stackoverflow.com/a/1678 143. https://stackoverflow.com/posts/1678/revisions 144. https://stackoverflow.com/posts/1678/revisions 145. https://stackoverflow.com/users/3988992 146. https://stackoverflow.com/users/106762/a-m0d 147. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 148. http://www.antlr.org/wiki/display/CS652/CS652+Home 149. http://www.pragprog.com/titles/tpantlr/the-definitive-antlr-reference 150. http://www.antlr.org/wiki/display/CS652/C+subset+compiler 151. http://llvm.org/docs/LangRef.html 152. https://stackoverflow.com/a/1693 153. https://stackoverflow.com/posts/1693/revisions 154. https://stackoverflow.com/posts/1693/revisions 155. https://stackoverflow.com/users/101 156. https://stackoverflow.com/users/257418/lynn 157. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 158. http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf 159. https://stackoverflow.com/a/3592870 160. https://stackoverflow.com/posts/3592870/revisions 161. https://stackoverflow.com/posts/3592870/revisions 162. https://stackoverflow.com/users/444469 163. https://stackoverflow.com/users/86604/ingo 164. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 165. http://tldp.org/HOWTO/Lex-YACC-HOWTO-5.html 166. http://www.mactech.com/articles/mactech/Vol.16/16.07/UsingFlexandBison/ 167. https://stackoverflow.com/a/1156391 168. https://stackoverflow.com/posts/1156391/revisions 169. https://stackoverflow.com/posts/1156391/revisions 170. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 171. https://stackoverflow.com/a/1158408 172. https://stackoverflow.com/posts/1158408/revisions 173. https://stackoverflow.com/posts/1158408/revisions 174. https://stackoverflow.com/users/23771/mike-dunlavey 175. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 176. http://www.antlr.org/ 177. http://pragprog.com/titles/tpdsl/language-implementation-patterns 178. https://stackoverflow.com/a/2853691 179. https://stackoverflow.com/posts/2853691/revisions 180. https://stackoverflow.com/posts/2853691/revisions 181. https://stackoverflow.com/users/105744 182. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 183. http://books.google.com/books?id=h34d_jr2iikC&dq=%22linkers+and+loaders%22&pg=PP1&ots=IxFkFWJ-8V&sig=GSlclmkezTRL6YYguGJmZsnkM3c&hl=en&sa=X&oi=book_result&resnum=1&ct=result 184. https://stackoverflow.com/a/15178 185. https://stackoverflow.com/posts/15178/revisions 186. https://stackoverflow.com/posts/15178/revisions 187. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 188. https://rads.stackoverflow.com/amzn/click/com/0321486811 189. https://rads.stackoverflow.com/amzn/click/com/0201633612 190. https://stackoverflow.com/a/2523 191. https://stackoverflow.com/posts/2523/revisions 192. https://stackoverflow.com/posts/2523/revisions 193. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 194. http://llvm.org/docs/tutorial/ 195. https://stackoverflow.com/a/17694 196. https://stackoverflow.com/posts/17694/revisions 197. https://stackoverflow.com/posts/17694/revisions 198. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 199. http://en.wikipedia.org/wiki/Oberon_%28programming_language%29 200. http://www.amazon.de/Project-Oberon-Design-Operating-Compiler/dp/0201544288/ref=sr_1_3?ie=UTF8&s=books-intl-de&qid=1281378762&sr=8-3 201. https://stackoverflow.com/a/3443032 202. https://stackoverflow.com/posts/3443032/revisions 203. https://stackoverflow.com/posts/3443032/revisions 204. https://stackoverflow.com/users/155082 205. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 206. http://en.wikipedia.org/wiki/Local_C_compiler 207. http://www.cs.princeton.edu/software/lcc/ 208. https://github.com/drh/lcc 209. https://stackoverflow.com/a/74176 210. https://stackoverflow.com/posts/74176/revisions 211. https://stackoverflow.com/posts/74176/revisions 212. https://stackoverflow.com/users/8015 213. https://stackoverflow.com/users/368070/gideon 214. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 215. http://msdn.microsoft.com/en-us/magazine/cc136756.aspx 216. http://msdn.microsoft.com/en-us/magazine/cc136756.aspx 217. https://stackoverflow.com/a/401786 218. https://stackoverflow.com/posts/401786/revisions 219. https://stackoverflow.com/posts/401786/revisions 220. https://stackoverflow.com/users/47642 221. https://stackoverflow.com/users/84291/hejazzman 222. https://stackoverflow.com/users/47642/dbones 223. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 224. http://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools 225. https://stackoverflow.com/a/1241910 226. https://stackoverflow.com/posts/1241910/revisions 227. https://stackoverflow.com/posts/1241910/revisions 228. https://stackoverflow.com/users/150636 229. https://stackoverflow.com/users/1993474/cosmoloc 230. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 231. http://compilers.iecc.com/crenshaw/ 232. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler#1678 233. http://www.freepascal.org/ 234. http://www.freepascal.org/download.var 235. http://en.wikipedia.org/wiki/Dragon_book 236. http://en.wikipedia.org/wiki/Dragon_book 237. https://stackoverflow.com/a/17768 238. https://stackoverflow.com/posts/17768/revisions 239. https://stackoverflow.com/posts/17768/revisions 240. https://stackoverflow.com/users/2092 241. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 242. https://stackoverflow.com/a/17690 243. https://stackoverflow.com/posts/17690/revisions 244. https://stackoverflow.com/posts/17690/revisions 245. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 246. http://www.faqs.org/faqs/compilers/faq/ 247. https://stackoverflow.com/a/3125367 248. https://stackoverflow.com/posts/3125367/revisions 249. https://stackoverflow.com/posts/3125367/revisions 250. https://stackoverflow.com/users/357174 251. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 252. https://github.com/darius/ichbins 253. http://www.canonical.org/~kragen/sw/urscheme/ 254. https://stackoverflow.com/a/172181 255. https://stackoverflow.com/posts/172181/revisions 256. https://stackoverflow.com/posts/172181/revisions 257. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 258. https://stackoverflow.com/a/8690 259. https://stackoverflow.com/posts/8690/revisions 260. https://stackoverflow.com/posts/8690/revisions 261. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 262. http://www.cs.vu.nl/~dick/PTAPG.html 263. https://stackoverflow.com/a/789357 264. https://stackoverflow.com/posts/789357/revisions 265. https://stackoverflow.com/posts/789357/revisions 266. https://stackoverflow.com/users/32173 267. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 268. http://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools 269. https://stackoverflow.com/a/1156383 270. https://stackoverflow.com/posts/1156383/revisions 271. https://stackoverflow.com/posts/1156383/revisions 272. https://stackoverflow.com/users/138304 273. https://stackoverflow.com/users/134547/zachary-murray 274. http://blog.280z28.org/ 275. https://stackoverflow.com/users/138304/sam-harwell 276. https://stackoverflow.com/users/43992/simeon-pilgrim 277. https://stackoverflow.com/users/138304/sam-harwell 278. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 279. http://www.bayfronttechnologies.com/mc_tutorial.html 280. https://stackoverflow.com/a/1344367 281. https://stackoverflow.com/posts/1344367/revisions 282. https://stackoverflow.com/posts/1344367/revisions 283. https://stackoverflow.com/users/120163 284. https://stackoverflow.com/users/927333/ingconti 285. https://stackoverflow.com/users/120163/ira-baxter 286. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 287. http://www.ethoberon.ethz.ch/WirthPubl/ProjectOberon.pdf 288. https://stackoverflow.com/a/98010 289. https://stackoverflow.com/posts/98010/revisions 290. https://stackoverflow.com/posts/98010/revisions 291. https://stackoverflow.com/users/12677 292. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 293. http://compilers.iecc.com/crenshaw/ 294. http://cm.bell-labs.com/who/ken/trust.html 295. https://stackoverflow.com/a/22718 296. https://stackoverflow.com/posts/22718/revisions 297. https://stackoverflow.com/posts/22718/revisions 298. https://stackoverflow.com/users/2509 299. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 300. http://research.microsoft.com/~simonpj/papers/pj-lester-book/ 301. https://stackoverflow.com/a/156867 302. https://stackoverflow.com/posts/156867/revisions 303. https://stackoverflow.com/posts/156867/revisions 304. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 305. http://jakarta.apache.org/bcel/ 306. https://stackoverflow.com/a/6695987 307. https://stackoverflow.com/posts/6695987/revisions 308. https://stackoverflow.com/posts/6695987/revisions 309. https://stackoverflow.com/users/736518 310. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 311. https://stackoverflow.com/a/1156689 312. https://stackoverflow.com/posts/1156689/revisions 313. https://stackoverflow.com/posts/1156689/revisions 314. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 315. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler?page=2&tab=scoredesc#tab-top 316. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler?page=2&tab=scoredesc#tab-top 317. https://stackoverflow.com/questions/tagged/compiler-construction 318. https://stackoverflow.com/questions/tagged/language-agnostic 319. https://stackoverflow.com/questions/ask 320. https://stackoverflow.blog/2024/01/09/maximum-glitch-how-to-break-tetris/ 321. https://stackoverflow.blog/2024/01/11/how-to-build-a-role-playing-video-game-in-24-hours/ 322. https://meta.stackexchange.com/questions/395389/update-to-our-advertising-guidelines 323. https://meta.stackexchange.com/questions/395881/sites-can-now-request-to-enable-a-banner-to-warn-about-their-policy-on-ai-genera 324. https://meta.stackoverflow.com/questions/421831/temporary-policy-generative-ai-e-g-chatgpt-is-banned 325. https://stackoverflow.com/questions/3662410/create-my-own-programming-language?noredirect=1 326. https://stackoverflow.com/questions/3810119/how-to-go-about-making-your-own-programming-language?noredirect=1 327. https://stackoverflow.com/questions/3946911/how-to-write-a-simple-compiler-in-c?noredirect=1 328. https://stackoverflow.com/questions/426239/parsers-and-compilers-for-dummies-where-to-start?noredirect=1 329. https://stackoverflow.com/questions/1129785/compiler-design?noredirect=1 330. https://stackoverflow.com/questions/4091887/how-would-you-go-about-writing-a-simple-programming-language?noredirect=1 331. https://stackoverflow.com/questions/2923287/what-is-the-process-of-creating-an-interpreted-language?noredirect=1 332. https://stackoverflow.com/questions/6361462/where-to-start-if-i-want-to-understand-how-compilers-and-programming-languages-a?noredirect=1 333. https://stackoverflow.com/questions/2034221/how-can-i-write-a-quick-and-dirty-interpreter?noredirect=1 334. https://stackoverflow.com/questions/6865026/help-with-compiler-design?noredirect=1 335. https://stackoverflow.com/questions/linked/1669 336. https://stackoverflow.com/questions/95635/what-does-a-just-in-time-jit-compiler-do 337. https://stackoverflow.com/questions/3380498/how-to-approach-creating-a-jvm-programming-language 338. https://stackoverflow.com/questions/9554418/can-coco-r-turn-a-parsed-file-into-bytecode 339. https://stackoverflow.com/questions/2625261/how-is-a-lattice-used-by-a-compiler 340. https://stackoverflow.com/questions/1380380/microsoft-cci-resources-references-for-writing-compilers 341. https://stackexchange.com/questions?tab=hot 342. https://or.stackexchange.com/questions/11506/algorithm-needed-to-find-optimum-area-of-2-dimensional-data-set 343. https://music.stackexchange.com/questions/133400/what-happened-to-jazz-in-1980 344. https://history.stackexchange.com/questions/74165/what-was-the-standard-time-in-the-principality-of-lippe 345. https://french.stackexchange.com/questions/54107/conveying-get-a-life 346. https://puzzling.stackexchange.com/questions/125072/on-solving-the-minimally-clued-8x8-sudoku 347. https://literature.stackexchange.com/questions/26019/is-george-a-dishwasher 348. https://money.stackexchange.com/questions/160886/how-is-dividend-good-for-stock-share-investors 349. https://philosophy.stackexchange.com/questions/107320/do-the-senses-themselves-not-what-they-deceptively-reveal-exist-in-some-form 350. https://superuser.com/questions/1825387/why-did-my-coworker-see-a-painting-ified-version-of-my-background-image-on-a-z 351. https://codegolf.stackexchange.com/questions/269104/perfect-an-array 352. https://math.stackexchange.com/questions/4842761/autocommutator-subgroup-is-a-characteristic-subgroup 353. https://music.stackexchange.com/questions/133410/how-to-notate-free-time-in-musescore 354. https://crafts.stackexchange.com/questions/12022/how-to-scan-pencil-drawings-to-get-good-dynamic-range 355. https://askubuntu.com/questions/1499756/virtualbox-6-stopped-working-after-kernel-upgrade-in-ubuntu-22-04 356. https://academia.stackexchange.com/questions/205742/asking-a-professor-for-materials-before-the-course 357. https://rpg.stackexchange.com/questions/209954/why-would-i-put-an-asi-into-con-instead-of-taking-the-tough-feat 358. https://academia.stackexchange.com/questions/205735/why-do-some-journals-want-to-send-the-manuscript-to-arxiv-before-submission 359. https://law.stackexchange.com/questions/98729/if-everyone-in-the-senate-is-drunk-does-that-invalidate-their-actions 360. https://academia.stackexchange.com/questions/205760/professor-gets-funding-and-does-not-give-to-student 361. https://music.stackexchange.com/questions/133407/why-does-musescore-interpret-westergaards-a-flat-as-g-seeking-clarification-on 362. https://academia.stackexchange.com/questions/205709/convention-comma-and-period-in-an-enumeration 363. https://workplace.stackexchange.com/questions/194969/how-to-get-coworkers-to-stop-giving-me-chatgpt-generated-suggestions 364. https://tex.stackexchange.com/questions/706882/creating-a-product-integration-symbol-which-behaves-as-the-standard-integration 365. https://astronomy.stackexchange.com/questions/55714/at-what-velocity-would-an-object-have-to-fall-in-order-to-become-weightless 366. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 367. https://stackoverflow.com/ 368. https://stackoverflow.com/questions 369. https://stackoverflow.com/help 370. https://stackoverflow.co/ 371. https://stackoverflow.co/teams/ 372. https://stackoverflow.co/advertising/ 373. https://stackoverflow.co/collectives/ 374. https://stackoverflow.co/talent/ 375. https://stackoverflow.co/ 376. https://stackoverflow.co/ 377. https://stackoverflow.co/company/press/ 378. https://stackoverflow.co/company/work-here/ 379. https://stackoverflow.com/legal 380. https://stackoverflow.com/legal/privacy-policy 381. https://stackoverflow.com/legal/terms-of-service/public 382. https://stackoverflow.co/company/contact/ 383. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 384. https://stackoverflow.com/legal/cookie-policy 385. https://stackexchange.com/ 386. https://stackexchange.com/sites#technology 387. https://stackexchange.com/sites#culturerecreation 388. https://stackexchange.com/sites#lifearts 389. https://stackexchange.com/sites#science 390. https://stackexchange.com/sites#professional 391. https://stackexchange.com/sites#business 392. https://api.stackexchange.com/ 393. https://data.stackexchange.com/ 394. https://stackoverflow.blog/?blb=1 395. https://www.facebook.com/officialstackoverflow/ 396. https://twitter.com/stackoverflow 397. https://linkedin.com/company/stack-overflow 398. https://www.instagram.com/thestackoverflow 399. https://stackoverflow.com/help/licensing 400. https://stackoverflow.com/legal/cookie-policy Hidden links: 402. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 403. https://stackoverflow.com/ 404. https://meta.stackoverflow.com/ 405. javascript:void(0) 406. javascript:void(0) 407. javascript:void(0) 408. https://stackoverflowteams.com/teams/create/free/?utm_source=so-owned&utm_medium=side-bar&utm_campaign=campaign-38&utm_content=cta 409. https://stackoverflow.com/posts/1669/timeline 410. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 411. https://stackoverflow.com/posts/1672/timeline 412. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 413. https://stackoverflow.com/posts/1156434/timeline 414. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 415. https://stackoverflow.com/posts/7085/timeline 416. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 417. https://stackoverflow.com/posts/1686/timeline 418. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 419. https://stackoverflow.com/posts/1678/timeline 420. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 421. https://stackoverflow.com/posts/1693/timeline 422. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 423. https://stackoverflow.com/posts/3592870/timeline 424. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 425. https://stackoverflow.com/posts/1156391/timeline 426. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 427. https://stackoverflow.com/posts/1158408/timeline 428. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 429. https://stackoverflow.com/posts/2853691/timeline 430. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 431. https://stackoverflow.com/posts/15178/timeline 432. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 433. https://stackoverflow.com/posts/2523/timeline 434. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 435. https://stackoverflow.com/posts/17694/timeline 436. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 437. https://stackoverflow.com/posts/3443032/timeline 438. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 439. https://stackoverflow.com/posts/74176/timeline 440. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 441. https://stackoverflow.com/posts/401786/timeline 442. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 443. https://stackoverflow.com/posts/1241910/timeline 444. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 445. https://stackoverflow.com/posts/17768/timeline 446. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 447. https://stackoverflow.com/posts/17690/timeline 448. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 449. https://stackoverflow.com/posts/3125367/timeline 450. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 451. https://stackoverflow.com/posts/172181/timeline 452. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 453. https://stackoverflow.com/posts/8690/timeline 454. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 455. https://stackoverflow.com/posts/789357/timeline 456. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 457. https://stackoverflow.com/posts/1156383/timeline 458. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 459. https://stackoverflow.com/posts/1344367/timeline 460. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 461. https://stackoverflow.com/posts/98010/timeline 462. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 463. https://stackoverflow.com/posts/22718/timeline 464. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 465. https://stackoverflow.com/posts/156867/timeline 466. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 467. https://stackoverflow.com/posts/6695987/timeline 468. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 469. https://stackoverflow.com/posts/1156689/timeline 470. https://stackoverflow.com/questions/1669/learning-to-write-a-compiler 471. https://stackoverflow.com/q/3662410 472. https://stackoverflow.com/q/3810119 473. https://stackoverflow.com/q/3946911 474. https://stackoverflow.com/q/426239 475. https://stackoverflow.com/q/1129785 476. https://stackoverflow.com/q/4091887 477. https://stackoverflow.com/q/2923287 478. https://stackoverflow.com/q/6361462 479. https://stackoverflow.com/q/2034221 480. https://stackoverflow.com/q/6865026 481. https://stackoverflow.com/q/95635 482. https://stackoverflow.com/q/3380498 483. https://stackoverflow.com/q/9554418 484. https://stackoverflow.com/q/2625261 485. https://stackoverflow.com/q/1380380 486. https://stackoverflow.com/