Why Split Lexing and Parsing into Two Separate Phases?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • lady-deirdre

    Compiler front-end foundation technology.

  • Well, my personal experience was in the opposite direction actually.

    I used to use combinators-based approach without Lex/Syn separation (aka PEGs) for a long time. But then I came up to understanding that the separation approach is actually better in performance. And also that working and debugging of the Token sequences while writing parser manually is just more handy (at least for me).

    But this is my personal experience of course. I do believe too that it all depends on the goal, and parsers micro-optimizations is not that much critical in many cases, and that combinators approach actually works quite well too.

    As of Nom, I can say that it works quite well. But I think that the it's performance gains stem from the fact that Rust is a systems-based PL, and it optimizes function combinations just better than, let say, JavaScript or Python.

    In my incremental parsers library Lady Deirdre I utilize Lex/Syn separation, and the LL(1) recursive-descend parsing, and it shows much better performance than in Tree-Sitter at least on relatively big files [1].

    [1] https://github.com/Eliah-Lakhin/lady-deirdre/tree/master/wor...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Symfony 7 vs. .NET 8 - same-same but different?

    1 project | dev.to | 3 May 2024
  • Rust to .NET compiler – Progress update

    1 project | news.ycombinator.com | 3 May 2024
  • rbspy: A Sampling CPU Profiler for Ruby

    1 project | news.ycombinator.com | 3 May 2024
  • Show HN: CandleEmbed – A crate for generating text embeddings from HF models

    1 project | news.ycombinator.com | 3 May 2024
  • Show HN: Gauntlet – Raycast-inspired open-source application launcher

    1 project | news.ycombinator.com | 3 May 2024