[HN Gopher] Building a programming language in twenty-four hours ___________________________________________________________________ Building a programming language in twenty-four hours Author : todsacerdoti Score : 70 points Date : 2023-06-05 16:19 UTC (6 hours ago) (HTM) web link (ersei.net) (TXT) w3m dump (ersei.net) | deepzn wrote: | Seeing the interview with Chris Lattner on Lex Fridman podcast on | developing Mojo, and how he's learnt from developing Swift, or | LLVM is very interesting, and how the path they've taken with | Mojo is different from Python. It also seems like a lot of | languages especially the new ones are converging with the best | features from past languages which also makes sense. | | This is super ambitious, but a great project to work on to better | your understanding. And I applaud you, especially as an undergrad | student( I assume as you stated final exams in the post). I wish | I'd done more projects like this back when I was starting out. | You are way ahead of where I was lol, I barely did any projects | outside classes. And you got some attention on HN. Good stuff! | soperj wrote: | People laugh at this, but isn't this exactly how we got | Javascript? | [deleted] | jheriko wrote: | 24 minutes is a better target, i have a few repos like this... | and long before the internet made it easy, it was the kind of | thing i would do in my lunchtime at an office job. | | it was way more instructive than following the standard path. | | interesting read though :) | DonaldPShimoda wrote: | I'm not sure what the intended utility of "I am better than the | target audience of this article" is, but I assure you it does | not paint you in a positive light to other readers. | all2 wrote: | I had a lunch time project for a couple of months, where I | would spend about 30 minutes a day (I had to limit myself) | implementing a scheme-like in an assembly-like language | called Teraterm. It was fun trying to work within the | constraints of the language. I finally quit when I hit TTs | built in recursion limits. I know the solution would be | implementing a call stack in TT, but I couldn't bring myself | to do it. | User23 wrote: | There wasn't a setjmp()/longjmp() type functionality? | That's how I cheated implementing a Lisp in C. When tail | recursing I'd let the stack grow a while, nuke it with | longjmp(), and keep going. | | That was a long time ago and I didn't know nearly as much | about PL design and implementation as I do now, but it set | me on the path. Funny thing was I started that project just | to prove to myself that I could still write C since I'd | been doing a ton of Perl. | avgcorrection wrote: | I read it more like setting a low bar in terms of time, like | a pomodoro in fact. So whatever you produce in 24 minutes is | that language. Then try again later. | | Some of us should start the meta-project of cleaning our | house by just making our bed. | DonaldPShimoda wrote: | Maybe if that's all they'd said, but | | > and long before the internet made it easy, it was the | kind of thing i would do in my lunchtime at an office job. | | This gives me vibes of "I think I'm really impressive and I | want people to know it." Maybe that's uncharitable | though... Talking to people online has made me too cynical | haha. I appreciate the alternative perspective. | avgcorrection wrote: | Hmmph. Try my build-no-programming language in 20 years instead: | | - Be armchair-interested in programming languages | | - Take some PL-whatever courses in college | | - Read about PLs | | - Read about progressively niche PL stuff... | | - Get idealistic (get ideas) | | - Read about the grueling design process of useful-in-the-real- | world languages | | - Eventually realize that There Are Always Tradeoffs | | - Realize that the Tradeoffs are like two thousand parameters | that might interact in super-weird and non-obvious ways | | - Realize that a dozen super-competent PhD-wielders and multi- | decade practitioners can easily spend a decade on developing the | core of a language | | - eh, why bother | StingyJelly wrote: | - eh, why bother | | - yolo | feoren wrote: | I came here to say "can we worry about building programming | languages in twenty-four years instead, please?". Someone who | has gone through your list is _exactly_ who I want actually | building the next generation programming languages. Of course | your last question is the best one: | | > eh, why bother | | This is absolutely the question you need a deep answer for. You | need a problem that is burning you up and whose _only_ solution | is a new programming language. This might never happen. If it | ever does, you 're the person to do it, exactly because of all | the ups and downs and half-started ideas you've thrown away. | But you're right: the "why bother" stage is not to be ignored. | It's the most important one. | hidden80 wrote: | - Me | all2 wrote: | I had to change the scope of my desires. I don't want to make | the next Python. Not even the next Zig or Nim. I just like | fiddling with compilers and interpreters. Someone else | mentioned _Crafting Interpreters_ and I 'll bring it up, too. | I've been following along in C# and occasionally come back to | my C#Lox implementation and work through another chapter. It is | quite a lot of fun. | PartiallyTyped wrote: | I am on a similar path, I am super fascinated with type | theory and I want to test / implement stuff. | User23 wrote: | > - eh, why bother | | Because you will learn a ton and become a better programmer for | it. | simplify wrote: | Progress is always made by those with an optimal amount of | ignorance :) | wellanyway wrote: | Don't give fronyent people ideas. | tyingq wrote: | Eich supposedly did javascript in 10 days, so this seems | reasonable, right? :) | | https://thenewstack.io/brendan-eich-on-creating-javascript-i... | tabtab wrote: | And it still shows. | omgmajk wrote: | An interesting read. Always been fascinated with compilers and | lexers. I should really make a language at some point. I tried | following that "make a lisp in c"* book but I didn't like that | they used external libraries that I didn't know about. | | [*] https://www.buildyourownlisp.com/ | santix wrote: | Check out https://craftinginterpreters.com/ | omgmajk wrote: | Will do, thank you! | tmorette wrote: | this was how javascript was created ___________________________________________________________________ (page generated 2023-06-05 23:02 UTC)