Let's write a compiler, part 5: A code generator

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

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • queryparser

    Parsing and analysis of Vertica, Hive, and Presto SQL.

  • 3. Would you use a different language/library then I picked?

    Thanks :)

    [1] https://github.com/uber/queryparser

  • sqlparse

    A non-validating SQL parser module for Python

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • rhizome

    A JIT for Ruby, implemented in pure Ruby

  • Lots of compiler tutorials are like this - there's very little out there to explain how compilers really work.

    This is my effort - trying to show genuine data structures and processes.

    https://github.com/chrisseaton/rhizome

  • swifties

    a custom language construction kit

  • Depends on the complexity of your queries, but if you have a narrow subset that you're interested in, implementing a recursive descent parser for just those parts of the syntax that fits your problem like a glove could be a better solution.

    https://github.com/codr7/swifties

  • grammars-v4

    Grammars written for ANTLR v4; expectation that the grammars are free of actions.

  • langjam

  • go-mysql-server

    A MySQL-compatible relational database with a storage agnostic query engine. Implemented in pure Go.

  • 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
  • vitess-sqlparser

    simply SQL Parser for Go ( powered by vitess and TiDB )

  • gosql

    An early PostgreSQL implementation in Go

  • alasql

    AlaSQL.js - JavaScript SQL database for browser and Node.js. Handles both traditional relational tables and nested JSON data (NoSQL). Export, store, and import data from localStorage, IndexedDB, or Excel.

  • sqlite-parser

    Discontinued JavaScript implentation of SQLite 3 query parser

  • JSqlParser

    JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes. The generated hierarchy can be navigated using the Visitor Pattern

  • Presto

    The official home of the Presto distributed SQL query engine for big data

  • zetasql

    ZetaSQL - Analyzer Framework for SQL

  • ZetaSQL[1] seems like it could be a fit for your use case. I've worked with Apache Calcite in the past and found it to be very complex to work with. I found ZetaSQL to be a little easier to use.

    [1] https://github.com/google/zetasql

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub 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