-
Notifications
You must be signed in to change notification settings - Fork 5
BartVandewoestyne/Modern-Compiler-Implementation-in-C
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
My implementation of the Tiger compiler from the book Modern Compiler Implementation in C Andrew W. Appel Cambridge University Press ISBN 0-521-60765-5 This work is not finished yet. From time to time, I hack on it. I was not quite sure in what C-standard or dialect I was going to write my code, so I did some investigations... From the inside of the book, we have: First published 1998 Reprinted with corrections, 1999 First paperback edition 2004 Also, the code from Chapter 1 defines its own TRUE and FALSE in util.h, and since C99 has true and false macros in stdbool.h, I think we can conclude that the book's code is *not* C99. Finally, in Chapter 2, the strdup function is used. This function is neither C90 nor C99... so the code from the book is probably some pre-C90 dialect... I am therefore simply compiling it with gcc without any -std option. Some other remarks: ------------------- * In the post https://groups.google.com/d/msg/comp.compilers/QYrE4LvCcCE/fxLyAJfxDocJ on comp.compilers it is written that the book was originally written by Appel in ML, and then translated to C and Java, so the C and Java are not great examples of how to code in those languages (the Java version uses few OO programming techniques). * The code often makes use of a union paired with a discrete value that indicates the active member of the union. This is called a 'discriminated union' or 'tagged union'. The discrete value is called a discriminator or tag. See also http://www.drdobbs.com/cpp/discriminated-unions/240009296 http://en.wikipedia.org/wiki/Tagged_union
About
An unfinished implementation of the Tiger compiler.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published