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".
6:19:18
beach
Part of the reason was that syntax analysis would be useful without compilation, like for creating DSLs and such.
7:07:33
beach
This masters thesis on packrat parsing seems quite well written. I am enjoying reading it so far.
7:14:05
beach
Hmm, what I read before (Wikipedia?) seemed to suggest that packrat parsing can handle left recursion, but the thesis says it can't. I was thinking it could if the alternatives were ordered carefully.