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
  • Onboard AI - Learn any GitHub repo in 59 seconds
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • 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

  • Onboard AI

    Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.

  • 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

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

  • vitess-sqlparser

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

  • gosql

    An early PostgreSQL implementation in Go (by eatonphil)

  • 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

    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

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