Supervisor: Andrew Myers <>
Announced end of poll: sometime
Poll has not yet ended.
This is a public poll.
Actual votes cast: 56
Number of winning choices:
Condorcet completion rule:    (What is this?)
Minimax
Schulze/Beatpath/CSSD
CIVS Ranked Pairs
MAM
Condorcet-IRV

Poll description

Everyone has to write a parser sometime. What approaches do you prefer when the time comes?

Result

1. yacc  (Not defeated in any contest vs. another choice)
2. hand-coded recursive descent, loses to yacc by 27–18
3. bison
4. parser combinators (write-in), loses to bison by 25–17
5. ANTLR, loses to parser combinators (write-in) by 19–16
6. CUP, loses to ANTLR by 14–5
7. other LALR parser generator, loses to CUP by 9–8
8. Perl re's, loses to other LALR parser generator by 12–10
9. other LL(k) parser generator, loses to Perl re's by 9–7
10. hand-coded shift-reduce parser, loses to Perl re's by 12–10
11. Elkhound, loses to hand-coded shift-reduce parser by 7–6
12. Pratt parser (Top down precedence) (write-in), loses to Elkhound by 7–4
13. Parsing Expression Grammar (write-in), loses to Pratt parser (Top down precedence) (write-in) by 8–6
14. DMS (write-in), loses to Parsing Expression Grammar (write-in) by 7–6
15. ply (write-in), loses to DMS (write-in) by 8–3
16. Definite Clause Grammars (Prolog) (write-in), loses to ply (write-in) by 22–4
17. The BNFC Converter (write-in), loses to Definite Clause Grammars (Prolog) (write-in) by 31–3
18. Earley (write-in), loses to The BNFC Converter (write-in) by 34–2
19. LR(1) parser generator (menhir) (write-in), loses to Earley (write-in) by 41–2
20. Parse::RecDescent (Perl) (write-in), loses to LR(1) parser generator (menhir) (write-in) by 43–1
21. Javacc (write-in), loses to Parse::RecDescent (Perl) (write-in) by 43–2
22. Copper (write-in), loses to Javacc (write-in) by 50–0
23. Parsec (Haskell) (write-in), loses to Copper (write-in) by 52–2

For simplicity, some details of the poll result are not shown.  

Result details

  1234567891011121314151617181920212223
1. yacc   -27 16 27 25 26 26 30 30 31 28 32 31 31 34 37 43 46 49 49 50 51 52
2. hand-coded recursive descent   18 -22 28 27 29 27 33 31 33 31 34 32 34 35 41 45 47 50 51 51 53 53
3. bison   16 22 -25 21 22 22 27 24 25 24 28 27 27 30 33 40 42 47 48 48 51 52
4. parser combinators (write-in)   15 13 17 -19 19 17 18 20 21 20 20 18 20 27 35 40 41 44 45 45 50 52
5. ANTLR   12 12 10 16 -14 14 18 17 18 16 20 18 19 22 28 36 38 44 46 45 49 52
6. CUP   8 7 9 12 5 -9 14 11 11 11 13 14 11 17 27 35 39 45 46 45 49 52
7. other LALR parser generator   4 8 7 11 9 8 -12 10 12 10 12 14 12 17 25 32 36 42 43 43 49 52
8. Perl re's   8 6 8 13 8 9 10 -9 12 11 16 15 13 19 27 33 36 42 44 44 50 52
9. other LL(k) parser generator   3 4 4 7 3 4 2 7 -7 5 10 9 8 14 25 31 35 41 43 43 49 52
10. hand-coded shift-reduce parser   4 3 4 12 5 8 5 10 7 -7 11 11 9 14 25 32 36 43 44 44 50 53
11. Elkhound   4 4 3 8 2 1 3 6 3 6 -7 9 6 12 23 31 35 42 44 44 49 52
12. Pratt parser (Top down precedence) (write-in)   4 3 4 7 4 4 4 5 3 6 4 -8 4 10 22 29 33 41 42 43 49 52
13. Parsing Expression Grammar (write-in)   7 4 7 9 7 7 5 8 7 9 7 6 -7 14 25 32 35 41 42 43 49 52
14. DMS (write-in)   1 1 0 6 0 0 0 3 0 2 0 4 6 -8 21 29 33 41 42 43 49 52
15. ply (write-in)   4 3 2 2 2 2 3 4 3 5 3 3 3 3 -22 30 34 41 42 43 49 52
16. Definite Clause Grammars (Prolog) (write-in)   3 3 3 3 3 4 4 4 4 6 4 4 4 4 4 -31 33 41 42 43 49 52
17. The BNFC Converter (write-in)   3 3 2 1 3 3 3 4 3 4 3 3 3 3 3 3 -34 42 42 43 49 52
18. Earley (write-in)   3 2 2 2 2 2 2 3 2 3 2 2 2 2 2 2 2 -41 42 43 49 52
19. LR(1) parser generator (menhir) (write-in)   2 1 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 -43 43 49 52
20. Parse::RecDescent (Perl) (write-in)   2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 -43 49 52
21. Javacc (write-in)   2 1 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 -50 52
22. Copper (write-in)   1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 -52
23. Parsec (Haskell) (write-in)   2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 -

Ballot reporting was not enabled for this poll.

Feel like voting on something else? Try one of these public polls:

Loading...