4 ms·
Perhaps this comment was meant as a joke, but this is exactly what lex does for regexps and yacc does for LALR(1) grammars. For the right job, they are both gre
by rsc 3y ago
Perhaps this comment was meant as a joke, but this is exactly what lex does for regexps and yacc does for LALR(1) grammars. For the right job, they are both great.
I watched Ken Thompson write a Paxos implementation in yacc once.
- rhelz 3y ago> Perhaps this comment was meant as a joke Nope, not a joke. As you say, this is just the application of parsing technology to a tokenized stream of input events. its super-useful in creating state machines to do parsing---and it can be super-useful to create state machines for other things as well. > I watched Ken Thompson write a Paxos implementation in yacc once. In real time? dude, you gotta post video to youtube or post a "Tell HN" story about it.
- rsc 3y agoIt's not as exciting as it sounds. He wanted to play around with learning Paxos, which is a big state machine, and he used yacc to do it. I shared an office with him for a couple years in the early days of Go, and he was working on it while I was working on other things. I helped him track down at least one bug in the Go port of yacc that way. I think the grammar he was writing was completely regular, but yacc is nicer to use than lex. Ken discussed yacc briefly in Coders at Work, which I quoted at https://research.swtch.com/yyerror https://research.swtch.com/yyerror: Seibel: And are there development tools that just make you happy to program? Thompson: I love yacc. I just love yacc. It just does exactly what you want done. Its complement, lex, is horrible. It does nothing you want done. Seibel: Do you use it anyway or do you write your lexers by hand? Thompson: I write my lexers by hand. Much easier.
- rhelz 3y ago> It's not as exciting as it sounds. De Gustibus. Some of us are into that sort of thing. Thanks for the link. > Thompson: I write my lexers by hand. Much easier. LMAO. If you've been doing it since the 60's, I suppose you get the hang of it: Ken Thompson, “Regular expression search algorithm,” Communications of the ACM 11(6) (June 1968), pp. 419–422