this post was submitted on 18 Jul 2025
6 points (100.0% liked)

Programming Languages

1384 readers
1 users here now

Hello!

This is the current Lemmy equivalent of https://www.reddit.com/r/ProgrammingLanguages/.

The content and rules are the same here as they are over there. Taken directly from the /r/ProgrammingLanguages overview:

This community is dedicated to the theory, design and implementation of programming languages.

Be nice to each other. Flame wars and rants are not welcomed. Please also put some effort into your post.

This isn't the right place to ask questions such as "What language should I use for X", "what language should I learn", and "what's your favorite language". Such questions should be posted in /c/learn_programming or /c/programming.

This is the right place for posts like the following:

See /r/ProgrammingLanguages for specific examples

Related online communities

founded 2 years ago
MODERATORS
 

I am quite nervous while asking this question, but let's say one wants to create a language.

What materials & tools one could use to get started on this path of madness ??

EDIT: I wanted to create an alternative to Javascript😂 with a syntax similar to Bash

top 4 comments
sorted by: hot top controversial new old
[–] thebosz@lemmy.today 5 points 5 days ago

I've never made one, but I really like Crafting Interpreters. It's a really great intro and helped me understand bytecode.

[–] vivalapivo@lemmy.today 2 points 5 days ago

There are two main directions here.

  1. For General Purpose Language you need to define the language lexical idioms (control flow, data/types, state, dependency, etc.): basically how you express Turing Machine. Then you need to write a compiler that takes the AST and transforms it to LLVM IR (if we want to stay realistic). I can't recommend any particular book regarding this, I read it in a classic Ullman's book but it might be outdated. Take any book that has compilers in the title and a dragon on cover.

  2. For Domain Specific Language, you need to parse the AST into a graph of execution and then walk and execute it. You don't really need to design it first, as the language will have a limited application. You can even use Parse Tree both as AST and as IR, applying various optimisations in place. Here you take M. Fowler's book on Domain Specific Languages and just read.

I've never touched the GP languages apart from some conference talks and uni, but I am keen on creating a DSL for every company I work in. That's a good practice when things become very nasty and you just need something simple to express very complex logic.

[–] Solumbran@lemmy.world 1 points 5 days ago

A nice tool to start with before delving in more proper "language" coding, I would say, is LARK, it's a pretty easy parser that is also relatively versatile and powerful, I doubt that it would be fitting to make an actual programming language but it could help you to the next steps.

[–] LuxSpark@lemmy.cafe -2 points 6 days ago* (last edited 6 days ago)

I created a custom parser recently. I built it in c# and ANTLR4. You need to define grammar and then code the AST which is an object model to handle logic. Not as difficult as it sounds, and you can use ChatGPT or something to help with parts of it.