• Otter@lemmy.ca
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    10 hours ago

    While I don’t have a direct answer, I know that my university had some courses dedicated to this topic. I think these are some of them:

    https://www.students.cs.ubc.ca/~cs-311/2025W1/nav/goals.html

    https://www.cs.ubc.ca/course-section/cpsc-411-201-2020w

    https://www.cs.ubc.ca/~rxg/cpsc509-spring-2024/

    The second one is described as

    The goal of this course is to give students experience designing, implementing, and extending programming languages. Students will start from a machine language, the x86-64 CPU instruction set with Linux system calls (x64), and incrementally build a compiler for a subset of Racket to this machine language. In the process, students will practice building, extending, and maintaining a complex piece of software, and practice creating, enforcing, and exploiting abstractions formalized in programming languages.

    The course assumes familiarity with basic functional programming in Racket, and some simple imperative programming in assembly.

    Those links might give you something to search off of?

    And what’s the purpose of developing more languages anyway?

    At some level, I think it’s this:

    https://xkcd.com/927/

    • Apathy Tree@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      2
      ·
      10 hours ago

      Interesting, thanks for the response, that gives me something to look for :)

      And yeah, that last bit does rather sound likely ;)