4 ms·
oh comon.. this does not fall under news, and anyone actively interested in the subject would find the book with a quick google search it's kind of getting ann
by ttam 17y ago
oh comon.. this does not fall under news, and anyone actively interested in the subject would find the book with a quick google search
it's kind of getting annoying to see this kind of posting in hn..
- mahmud 17y agoNot to mention that SPJ's papers require extensive Haskell experience and familiarity with the combinator side of functional programming and not just lambda calculus. It took me weeks just to go through his Spineless Tagless G-Machine paper. FWIW, I find Andrew Appel's papers slightly easier; Appel is an MLer, meaning he treats strict evaluation much more comprehensively, which appeals to this lisper. Plus Appel is a compiler hacker, not just a functional PL researcher. [Edit: Ok I will admit, I am bitter and mad at the graph reductionists because I never fully grokked term-rewriting; that fucker is hard, even after months studying advanced abstract algebras and category theory. Now I'm off to go shopping with Barbie.]
- Oxryly 17y agoDo you have a link/title for any of Appel's better papers?
- ambulatorybird 17y agoI'm not the person you replied to, but I personally liked "A Standard ML Compiler" and "A Runtime System"; they are among his earlier writings and relatively basic. You can find them at: http://www.cs.princeton.edu/~appel/papers/ http://www.cs.princeton.edu/~appel/papers/
- mahmud 17y agoI am the person Oxryly replied to and I agree with your recommendation. Also at that link are: "SSA is Functional Programming"; a timeless classic. "Real-time Concurrent Collection" is about a realtime, copying GC algorithm that requires no hardware support and no changes to the compiler. "Efficient Closure Representation". Back in the old dark ages, closures where stored in the heap and their environment links where two full pointers. Continuation passing style was discovered, complicating things further now, then someone came along and figured out you could break that previous closure representation in half by representing only half of the "rib cage". Another clever fella came along and found a way to store closures on the stack, which was super fast, except they weren't really in the stack but only pointers to them where, i.e. spaghetti stack, and it got annoying super fast. Solutions where found, and problems where found in those solutions .. then came along Appel and Shao and showed you could store closure in REGISTERS. (before you read this however you will need to read Dybvig's "Three Implementation Models of Scheme", and go depth first into all the literature it references, also try to find Appel's book "Compiling with Continuations.") "Run Time Tags Aren't Necessary" was another favorite of mine as well. Before you touch this read the Wilson bibliography/survey on Garbage Collection. The great majority of his papers are compiler hacks for functional languages. Skip them for now and work through Cooper and Torczon's "Engineering a Compiler"; the Algols are far easier to play with until you know better. Regards.