News for hackers. Stuff that matters.
Re:CMSC 430: Design and Implementation of Programming Languages by jasmaa on Wednesday October 05, 2022 @08:53AM (#33094879)
This and computer networks were my two favorite courses from university. My first language was Python, so the connection between programming languages and the machine had always felt like magic. This was the one course that helped dispel some of that thinking for me.

Each module builds on top of the next and has you add increasingly complex features to a toy language. The course I remember was flipped classroom, so it's also entirely possible to do online. On top of that, Jose's video lectures are very well-made and engaging. I would recommend anyone with some free time and even a bit of interest to throw it at this. It's a fun and eye-opening experience if you were like me and knew nothing about compilers before.

Re:CMSC 430: Design and Implementation of Programming Languages by jmct on Wednesday October 05, 2022 @10:04AM (#33095727)
Those are my videos!
Re:CMSC 430: Design and Implementation of Programming Languages by satvikpendem on Wednesday October 05, 2022 @12:42PM (#33097836)
Thank you Jose. Are these videos available for non-students?

Edit: https://www.youtube.com/channel/UCfZ7HFoaeSA7zPoGelA3aiw

Re:CMSC 430: Design and Implementation of Programming Languages by jmct on Wednesday October 05, 2022 @03:22PM (#33100127)
Looks like you found them, and yes. :D

They weren't made with the thought of being generally consumed, but I do plan on making videos for the wider CS/programming community in the future.

Re:CMSC 430: Design and Implementation of Programming Languages by freilanzer on Thursday October 06, 2022 @12:06PM (#33110046)
Please do, I would absolutely work through this during a vacation!
Re:CMSC 430: Design and Implementation of Programming Languages by _benj on Wednesday October 05, 2022 @01:34PM (#33098631)
I'm enjoying those!

Honestly, I had a bit of impostor syndrome kick when you mentioned that the 330 course was required, being self taught and all... but I know OCaml so ¯\_(ツ)_/¯

Currently going through the Crafting Interpreters book and this seems like an excellent supplement for my journey into the world of language hacking.

Thanks a lot for posting those, they are very clear and encouraging!

Re:CMSC 430: Design and Implementation of Programming Languages by jmct on Wednesday October 05, 2022 @03:20PM (#33100116)
Apologies for causing a spike in your impostor syndrome!

330 is 'required' in the sense that you're not allowed to take 430 at UMD without having taken 330.

Perhaps a better way of phrasing it would have been to list the things we assume students have retained from 330. One of which is OCaml :D

I hope these videos provide some value to you! Always feel free to reach out if there's anything you think I could do better.

Re:CMSC 430: Design and Implementation of Programming Languages by MisterTea on Wednesday October 05, 2022 @09:12AM (#33095103)
Take a microprocessor class where you build a 8088/6800 board and program it in assembler. Then there is no more magic behind the computer and it becomes a pretty strait forward machine.
Re:CMSC 430: Design and Implementation of Programming Languages by pjmorris on Wednesday October 05, 2022 @10:26AM (#33095988)
I love this idea. Do you have any specific courses you can point to?
Re:CMSC 430: Design and Implementation of Programming Languages by benrow on Wednesday October 05, 2022 @12:21PM (#33097493)
If you don't mind working with software emulation, nand2tetris takes you from logic gates up to a CPU, assembler, compiler. I'm working through the book: https://www.nand2tetris.org/book. It doesn't focus on an existing architecture like 6502 but focuses on simplicity instead to make the ideas really clear.

If you'd like to work with real hardware, +1 to the Ben Eater suggestion. He sells kits for all the components for an 6502 machine so you don't get bogged down in sourcing them. Great videos too.

(Quick edit, not 8086, showing my inexperience with hardware!)

Re:CMSC 430: Design and Implementation of Programming Languages by a-dub on Wednesday October 05, 2022 @10:51AM (#33096301)
a good computer organization/design or intro computer architecture course will have the same effect.

the classic text is computer organization and design by patterson and hennessy.

Re:CMSC 430: Design and Implementation of Programming Languages by pjmorris on Wednesday October 05, 2022 @04:13PM (#33100727)
I've got H&P on the bookshelf. It's the 'get down and dirty with a breadboard an x86 chip and maybe a soldering iron' aspect I am surfing for. 'Like Ben Eater but for x86', preferably as a course, is what I'm aiming at/curious about.
Re:CMSC 430: Design and Implementation of Programming Languages by a-dub on Wednesday October 05, 2022 @09:02PM (#33103114)
i think some logic design courses are like this. you're given a fpga dev board (that has a bunch of peripherals and ports on it) and you code up a cpu and a few memory/io controllers and then in order to do something you have to assemble some machine code and run it.

my understanding is that it is a substantial undertaking, especially if you're interfacing with hardware peripherals.

alternatively you could write a mips (subset) emulator and assembler in python and probably get the same understanding in a fraction of the time.

Re:CMSC 430: Design and Implementation of Programming Languages by mixmastamyk on Wednesday October 05, 2022 @08:01PM (#33102751)
Petzold's Code book is like this, without the hardware. But could certainly be combined with it.
Re:CMSC 430: Design and Implementation of Programming Languages by jgwil2 on Wednesday October 05, 2022 @11:22AM (#33096732)
Ben Eater has a video series called "'Hello, world' from scratch on a 6502" that you might find interesting: https://www.youtube.com/watch?v=LnzuMJLZRdU&list=PLowKtXNTBy...