[Pharo-users] [vwnc] Parsing in Smalltalk

Steffen Märcker merkste at web.de
Thu Oct 4 16:46:51 EDT 2018

I gave Xtreams-Parsing and PetitParser a shot and like to share my  

The task was to parse the modelling language of the probabilistic model  
checker PRISM. I've written a grammer of about 130 definitions in the  
Xtreams DSL, which is close to Bryan Fords syntax. To avoid doing it all  
again with PetitParser, I wrote a PetitParserGenerator that takes the DSL  
and builds a PetitParser.

The numbers below are just parsing times, no further actions involved. For  
reference I show the times from PRISM (which uses JavaCC), too -- although  
they involve additional verification and normalization steps on the AST.

input  Prism    XP   PP	
230kB    14s    9s   2s
544kB	121s   20s   5s
1.1MB	421s   34s   8s
1.4MB  1091s   47s  12s
2.2MB          63s  16s
2.9MB          81s  20s
3.8MB         107s  25s
4.4MB         123s  30s

Please note that these times are not representative at all. It's just a  
single example and I put zero effort in optimization. However, I am quite  
satisfied with the results.

[*] I was already familiar with the DSL of Xtreams-Parsing, which I like  
very much. I did not consider SmaCC, as I find PEGs easier to use.

Best, Steffen

Am .10.2018, 20:14 Uhr, schrieb Steffen Märcker <merkste at web.de>:

> Dear all,
> I have two questions regarding parsing frameworks.
> 1) Do you have any insights on the performance of SmaCC VS Xtreams  
> Parsing VS PetitParser?
> 2) Has anybody started to port PetitParser 2 from Pharo to VW? Is it  
> worth the effort?
> Sorry for cross-posting, I thought this might interest both communities.
> Cheers, Steffen

More information about the Pharo-users mailing list