No Semicolons Needed

No Semicolons Needed Posted on 18 March 2026 I’m making a scripting language called Roto. Like so many programming languages before it, it has the goal of being easy to use and read. Many languages end up making semicolons to delimit or terminate statements optional to that end. I want that too! This sounds simple, but how do they implement that? How do they decide where a statement ends without an explicit terminator? To illustrate the problem, we can take an expression and format it a bit weirdly. We can start with an example in Rust: fn foo(x: u32) -> u32 { let y = 2 * x – 3; y } In Rust, that is perfectly unambiguous. Now let’s do the same in Python: def foo(x): y = 2 * x – 3 return y We get an “unexpected indent” error! Since Python doesn’t require semicolons, it gets…

Read more on Lobste.rs