Marianne Writes a Programming Language

Follow Marianne Writes a Programming Language
Share on
Copy link to clipboard

Marianne Bellotti wants to understand how the people who design programming languages do what they do, so she's jumping right in and giving it a shot by writing her own language. Follow along as she struggles to understand parsers, lexers, grammars, gets philosophical about the nature of error handling and gets in way over her head too easily and too often.

Marianne Bellotti


    • Apr 14, 2021 LATEST EPISODE
    • every other week NEW EPISODES
    • 23m AVG DURATION
    • 13 EPISODES


    Search for episodes from Marianne Writes a Programming Language with a specific topic:

    Latest episodes from Marianne Writes a Programming Language

    Programs Split Over Multiple Files (featuring Troels Henriksen)

    Play Episode Listen Later Apr 14, 2021 25:22


    When thinking about how to create a language where little models can be combined into bigger more complex system models, Marianne struggles to understand why not to take the completely straight forward approach of importing files. While searching for a good explanation she comes across the official blog of Futhark and decides to interview its lead on their design decisions.

    futhark
    Code Generation (featuring Tikhon Jelvis)

    Play Episode Listen Later Apr 7, 2021 30:04


    Part of Marianne’s flash of inspiration came from a talk she’d seen about translating programs to a form Z3, a popular SMT solver, can run as proofs. Full of enthusiasm she invites the software engineer who gave that talk, Tikhon Jelvis, to elaborate on the similarities between SMT and code normally generated by the compiler.

    Uncertain Types part 2 (featuring Barak Michener and Eric Schles)

    Play Episode Listen Later Mar 31, 2021 27:31


    Still struggling to understand how to implement uncertain types, Marianne calls on two friends to sit down with her and brainstorm different approaches. It looks more and more like adding uncertainty will cause the language to scale to impractical levels of computational complexity… then suddenly Marianne has a stroke of inspiration that changes everything.

    Uncertain Types part 1 (featuring Maria Gorinova)

    Play Episode Listen Later Mar 24, 2021 24:03


    Equipped with new knowledge about type systems, Marianne begins speccing out plans to implement uncertain types and inject probabilistic programming into Fault models. She picks the brain of Maria Gorinova—researcher and probabilistic programming evangelist—and wonders if she’s finally bitten off more than she can chew.

    Type Systems (featuring Ron Garcia)

    Play Episode Listen Later Mar 17, 2021 24:28


    Marianne completely underestimates the complexity of type systems and struggled to figure out how inference, checking and conversion work together. After a month of scraping together a smattering of facts, she calls on expert Ron Garcia to help her figure it out.

    Syntax Sugar (featuring James Houghton)

    Play Episode Listen Later Mar 10, 2021 28:44


    A few weeks of user testing has revealed specific problems with the syntax of Fault. Marianne ponders various approaches to solving those problems and talks to James Houghton about the intersection between programming and system dynamic modeling.

    User Research for Programming Languages (featuring Michael Coblenz)

    Play Episode Listen Later Dec 23, 2020 24:12


    Marianne has a working prototype of Fault, but still no idea if anyone will understand the design or find it useful. She needs to test it with some users and see whether it has the right features and syntax. To do this she talks with programming language researcher Michael Coblenz, who specializes in techniques for testing the usability of programming languages.

    Exceptions Are Not Errors (featuring Smokey Jones)

    Play Episode Listen Later Dec 16, 2020 23:39


    Inevitably the best way to make design decisions is to practice implementation over and over again. Marianne experiments with writing different types of specs and considers various ways they could be executed under the hood. Midway through she realizes she doesn't actually understand how to think about errors and attempts to do more research while her cat tries to distract her.

    From Parse Tree to Evaluator (featuring Sarah Withee)

    Play Episode Listen Later Dec 9, 2020 25:48


    A parser generator like ANTLR won't handle evaluating programs written in your new language. You need to write the code for that yourself. Marianne explains how to build an AST from a parse tree, create an evaluation loop, and how esolangs (esoteric programming languages) make for great learning tools.

    Writing a BNF Grammar (featuring Prof Jeff Heinz)

    Play Episode Listen Later Dec 2, 2020 27:51


    Writing a programming language starts with its grammar. But what is a grammar in the context of computation? And how does one go about writing one? This week Marianne talks with computational linguist Jeff Heinz about Alan Turing, Noam Chomsky and what context-free grammar actually means.

    Certainty is a Programming Bug (featuring Hillel Wayne)

    Play Episode Listen Later Nov 25, 2020 19:52


    What kind of programming language is Marianne trying to write? Before we go any deeper into the guts of language design, Marianne and friend Hillel Wayne debate the shortcomings of various approaches to specifying and modeling program behavior. From first order logic verification to system visualizations, nothing Marianne has used before has quite fit the bill. She's beginning to get philosophical about the nature of abstraction and wants to rebel from the goal of certainty. - Want more programming history/culture/analysis? Sign Up for Hillel's Newsletter. - Hillel's Tutorials on TLA+ and his book Practical TLA+ - Mario Livio's comments at the 2010 World Science Festival

    No One Just Designs a Programming Language (featuring Thorsten Ball)

    Play Episode Listen Later Nov 18, 2020 26:46


    Marianne ponders the consequences of different design decisions and how to direct her research through an enormous amount of information and choices. Thorsten Ball, author of Writing a Compiler in Go, talks about his experiences designing Monkey and some of his regrets in retrospect. More from Thorsten Ball's can be found at thorstenball.com. Writing an Interpreter in Go can be purchased at interpreterbook.com. Writing a Compiler in Go can be found compilerbook.com.

    Series Promo

    Play Episode Listen Later Oct 27, 2020 2:03


    Marianne is writing a programming language. This is probably a terrible idea, but those are always the best ;)

    Claim Marianne Writes a Programming Language

    In order to claim this podcast we'll send an email to with a verification link. Simply click the link and you will be able to edit tags, request a refresh, and other features to take control of your podcast page!

    Claim Cancel