freenode/#sicl - IRC Chatlog
Search
3:46:37
beach
I hadn't quite realized the power of that technique. In particular, I hadn't realized that it could handle left-recursive grammars.
6:05:50
splittist
(I do sometimes wonder, if parsing is such a solved problem it shouldn't be covered in compiler courses, why do new languages have reserved keywords...?)
6:08:02
no-defun-allowed
I don't know if I see the relation between the two parts of that question. Suppose reserving them keeps the syntax context-free?
6:08:52
no-defun-allowed
A Haskell or ML program fragment like let let = 2 in let requires us to know let is bound as a variable while parsing the body, and it looks pretty bad in my opinion.
6:10:21
moon-child
that's still context free, it just requires more lookahead. And considering haskell allows you to define new operators, I don't think they're very concerned with being syntax-free at all
6:10:52
moon-child
as for looking bad, that's a matter of taste; you can always make things that look bad. let lét = 5 in lét, for instance
6:16:38
moon-child
no-defun-allowed: oh, no, hmmm, that would require infinite lookahead. Because 'let let = 2 in let a b c d = whatever' is valid (defining a to be a function with parameters b c d), but you wouldn't know until you get to the = whether that's binding a or applying let
6:18:21
beach
splittist: When I was in charge of the undergraduate program, I split the traditional compiler course into two: "syntactic analysis" and "compilation".