Top all-time · #1571
Federico Tomassetti
Personal blog · tomassetti.meprogramming
Federico Tomassetti's personal blog at tomassetti.me covers programming. Since 2015, 48 different Hacker News readers have linked it 124 times, most often “Parsing in Python: Tools and Libraries”. It is still writing: the last post was on 2026-10-19, and you can follow it by feed.
Articles and practical knowledge on legacy modernization, automation, software languages and the craft of building tools for complex work.
Most-linked posts?
- Parsing in Python: Tools and Libraries7 people · 7 mentions · first linked 2018-07-31
- How to Write a Transpiler5 people · 5 mentions · first linked 2020-06-10
- Resources on creating programming languages4 people · 5 mentions · first linked 2017-04-19
- Parsing SQL3 people · 4 mentions · first linked 2020-04-15
- The Antlr Mega Tutorial3 people · 3 mentions · first linked 2019-03-25
- The complete guide to (external) Domain Specific Languages3 people · 3 mentions · first linked 2017-02-20
- On the quest for the right project management tool: Jira, Trello, Asana, Redmine2 people · 2 mentions · first linked 2016-06-21
- A Guide to Parsing: Algorithms and Terminology2 people · 2 mentions · first linked 2017-09-27
- A template system for Google Docs2 people · 2 mentions · first linked 2016-04-21
- Designing a DSL for accounting: use a DSL to describe taxes and pension2 people · 2 mentions · first linked 2018-10-10
What Hacker News says?
https://tomassetti.me/wasi-how-to-run-webassembly-code-outsi...
Comment linking /wasi-how-to-run-webassembly-code-outside-of-your-browser/
on “TIL: You can access a user’s camera with just HTML”Submitted A Guide to Natural Language Processing as a story · 418 points
HN discussionOne think I find lacking in books about building languages is a focus on tool. I am working on one (available for 0$ on leanpub: "How to create pragmatic, lightweight languages" https://leanpub.com/create_languages ) with the intention to focus more on building editors and simulator. If you are interested in the subject you could take a look to my blog ( https://tomassetti.me ) I write 1-2 posts per week on building…
Comment linking /
on “Show HN: Crafting Interpreters – A handbook for making programming languages”Submitted Introduction to WebAssembly: why should we care? as a story · 296 points
HN discussionThis reminds me of an article read about how DSL was used to automate/encode Dutch tax code. I can’t recall the article I read but this is a good presentation. https://tomassetti.me/wp-content/uploads/2020/10/2018-04-10-...
Comment linking /wp-content/uploads/2020/10/2018-04-10-1700-Presentation-Jetbrains.pdf
on “Solving `Passport Application` with Haskell”Submitted Resources on creating programming languages as a story · 284 points
HN discussionI also loved that book! It is in my list of best books on building DSLs ( https://tomassetti.me/domain-specific-languages#books )
Comment linking /domain-specific-languages
on “ANTLR Mega Tutorial”Submitted ANTLR Mega Tutorial as a story · 253 points
HN discussionSomewhat similar, see https://substrait.io/ So for example using DuckDB with the Substrait extension, if you create a table create table t(a int); and then query it as in the article, you can see something similar to what is described in the article CALL get_substrait_json('select * from t'); {"relations":[{"root":{"input":{"project":{"input":{"read":{"baseSchema":{"names":["a"],"struct":{"types":[{"i32":{"nullabili…
Comment linking /parsing-sql/
on “What I talk about when I talk about query optimizer (part 1): IR design”Submitted Parsing SQL as a story · 158 points
HN discussionFederico Tomassetti is also good. Check out his blog: https://tomassetti.me/blog/
Comment linking /blog/
on “Little Languages (1986) [pdf]”Submitted A Guide to Parsing: Algorithms and Terminology as a story · 151 points
HN discussionFrom what I can tell, your best bet would be to build the generated parser (which will generate some C code) and then build a small interface in C. From there I would just use R/Python's foreign function interface to call your C wrapper. Alternatively for python you could use a parse combinator like parsec. Depending on how complicated your file can get, using parsec could very likely be the better choice as it has…
Comment linking /parsing-in-python/
on “Show HN: Owl, a new kind of parser generator”Submitted Why not to use (f)lex, yacc or bison as a story · 126 points
HN discussionSuper cool. Bidirectional code generation is something I've spent a bit of time thinking about: I've been building a spreadsheet that generates Python code when you edit it [1], but some of our users also want the ability to edit the Python code they generate and have that reflect in the sheet itself. Template -> Code -> Template is one really hard part of this, and something this tool seems to take a really good ap…
Comment linking /how-to-write-a-transpiler/
on “Show HN: Monocle – bidirectional code generation library”Submitted Parsing in JavaScript: all the tools and libraries you can use as a story · 74 points
HN discussionHave a look at this: https://tomassetti.me/parsing-in-javascript/#chevrotain This is Not exactly a parser generator but an internal JavaScript DSL for writing parsers, but it does meet the criteria for a more verbose syntax.
Comment linking /parsing-in-javascript/
on “Designing a Good DSL”Submitted Lessons learned working decades with Graphical DSLs as a story · 41 points
HN discussionLuckily there are many Parsing Libraries in the JavaScript eco-system, So we won't have to find out if this convoluted approach is worthwhile :) - https://tomassetti.me/parsing-in-javascript/
Comment linking /parsing-in-javascript/
on “Write a parser with JavaScript”Submitted Why you should not use (f)lex, yacc and bison as a story · 37 points
HN discussionSEEKING WORK - Remote or Lyon, France I am an expert in language engineering: design DSLs, parsing, static analysis, IDE support are my specialty. ANTLR, Xtext and Jetbrains MPS are the tools I use the most. I have a PhD, experience in 4 countries (Italy, Germany, Ireland and France), contributions to several open-source projects (e.g., JavaParser and WorldEngine) and an insane passion about software development. We…
Comment linking /
on “Ask HN: Freelancer? Seeking freelancer? (April 2016)”Submitted How to Convert a PDF to Excel as a story · 34 points
HN discussionhttps://tomassetti.me/recognizing-hand-written-shapes-progra... https://azure.microsoft.com/fr-fr/blog/turn-your-whiteboard-... https://www.theverge.com/2017/4/11/15263434/google-ai-autodr... https://quickdraw.withgoogle.com/#
Comment linking /recognizing-hand-written-shapes-programmatically-find-the-key-points-of-a-rectangle/
on “Show HN: Fast, Easy System Diagrams”Submitted Code Completion with Antlr4-C3 as a story · 27 points
HN discussionI wrote an article on everything you need to create your own lanague, hope it helps https://tomassetti.me/resources-create-programming-languages...
Comment linking /resources-create-programming-languages/
on “Ask HN: Resources for learning to write compilers?”Submitted The Antlr Mega Tutorial as a story · 19 points
HN discussionYou could take this idea further by fully parsing queries according to the grammar of the SQL language, rather than using simple pattern matching. In fact it is a result of theoretical computer science that you _cannot_ correctly parse languages like SQL, HTML, Python, etc. with regular expressions: Any attempt to do anything non-trivial will have cases where it misunderstands the code. So you would want to find a S…
Comment linking /parsing-in-python/
on “Show HN: Readsql – convert SQL to most human readable format”Submitted Parsing in Python: Tools and Libraries as a story · 12 points
HN discussionOn other articles (like this [1]), they put a box at the bottom where you can submit your email address. It's far more respectful way to do it. [1]: https://tomassetti.me/working-with-excel-in-python/
Comment linking /working-with-excel-in-python/
on “Why you should not use (f)lex, yacc and bison”Submitted How to Write a Transpiler as a story · 4 points
HN discussion