diff options
Diffstat (limited to 'miniany/doc/stackoverflow.com_questions_1669_learning-to-write-a-compiler.txt')
-rw-r--r-- | miniany/doc/stackoverflow.com_questions_1669_learning-to-write-a-compiler.txt | 1895 |
1 files changed, 1895 insertions, 0 deletions
diff --git a/miniany/doc/stackoverflow.com_questions_1669_learning-to-write-a-compiler.txt b/miniany/doc/stackoverflow.com_questions_1669_learning-to-write-a-compiler.txt new file mode 100644 index 0000000..58411a4 --- /dev/null +++ b/miniany/doc/stackoverflow.com_questions_1669_learning-to-write-a-compiler.txt @@ -0,0 +1,1895 @@ + #[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/ |