5 ms·
I don't know C and have no intention of learning it, so I'd prefer pseudocode that I can read without already knowing C or investing time into learning C just f
by dunefox 4y ago
I don't know C and have no intention of learning it, so I'd prefer pseudocode that I can read without already knowing C or investing time into learning C just for this book.
- chrisseaton 4y agoI really struggle how someone can be ready to learn about compilers without already having enough context where they know C. If you know enough to be doing compilers, you can pick up C in 15 mins.
- dunefox 4y agoI don't know how this is difficult to imagine. I have no need for C and am interested in interpreters and compilers.
- chrisseaton 4y ago> have no need for C and am interested in interpreters and compilers But you do have a need for it, because it’s the lingua franca of conversations about compilers and interpreters… as you’ve just found out with this course. Like saying you want to work in the Vatican but you have no need for Latin.
- dunefox 4y ago> because it’s the lingua franca of conversations about compilers and interpreters There are many materials, compilers, and interpreters that use ocaml and haskell, for example. C isn't the only one. That's why I'd prefer pseudo code instead of C, so that I could use this book without learning a specific language only for it.
- chrisseaton 4y agoI really don’t understand what you’re planning to do the first time someone says to ‘check the header file’ to understand how some system call works.
- rhn_mk1 4y agoFor that, you don't need to know C the language, but C the calling convention https://gankra.github.io/blah/c-isnt-a-language/ https://gankra.github.io/blah/c-isnt-a-language/
- chrisseaton 4y agoThis doesn't make any sense. Even you knew the C calling convention, but not C, where are you going to get documentation for system calls that doesn't use C code? The Linux, macOS, etc documentation uses C.
- t-3 4y agoReading the headers and prototypes in the man pages doesn't require "knowing" C. You just need to know the very simple subset of C's syntactical rules and the calling conventions. Anyway, reading C is far easier than writing C, most popular languages use the same syntax and operators.
- dunefox 4y agoI don't know what that has to do with learning about compilers and interpreters.
- chrisseaton 4y ago> I don't know what that has to do with learning about compilers and interpreters. Compilers and interpreters, unless they're running on bare metal, which is very niche, talk to the operating system using something called 'system calls' to ask for resources that they can't provide themselves, like virtual memory space and IO. These system calls are documented in C. For example I wrote a Ruby compiler in Ruby, but I still need to know about the mmap system call, which is documented in C, to allocate my memory. https://github.com/chrisseaton/rhizome/blob/main/doc/memory.md https://github.com/chrisseaton/rhizome/blob/main/doc/memory.... https://man7.org/linux/man-pages/man2/mmap.2.html https://man7.org/linux/man-pages/man2/mmap.2.html https://github.com/chrisseaton/rhizome/blob/main/lib/rhizomeruby/memory.rb#L72 https://github.com/chrisseaton/rhizome/blob/main/lib/rhizome...
- ethanwillis 4y agoWell, the author shouldn't have to potentially learn another language just to write a book on compilers and interpreters. Maybe... MAYBE you don't have to read this book.
- dunefox 4y ago> Maybe... MAYBE you don't have to read this book. Where did I say I have to read it or that the author should learn another language? Nowhere. I said I wish it wasn't using C so that I could read it more easily.
- d_tr 4y agoYou will have to learn whatever it is you do not like about C anyway if you want to generate machine code.