How the stack got stacked

Поделиться
HTML-код
  • Опубликовано: 3 янв 2025

Комментарии • 116

  • @valentinussofa4135
    @valentinussofa4135 3 месяца назад +60

    The literary and historical research you've carried out is highly commendable. I've visited the site address you embedded, and there I can access papers and books from your extraordinary learning content. You have been a great teacher for a self learner like me. Thank you so much. 🙏

    • @6AxisSage
      @6AxisSage 3 месяца назад +1

      I love how my work brought me to to this channel, what an awesome couple of weeks, crack a problem where im suddenly deeply connected to the perspectives of many brilliant people hidden by the algo before.

  • @shreyasdatar7251
    @shreyasdatar7251 3 месяца назад +18

    "A sentence written by a 30 year old - Edsger Djikstra..." I audibly gasped. Love this format. Keep up the good work :))

    • @neoeno4242
      @neoeno4242  3 месяца назад +2

      That's what I was hoping for 🤣 Thanks!

  • @cellularmitosis2
    @cellularmitosis2 3 месяца назад +66

    When you roll 20’s on both technical depth AND relaxing ASMR voice

    • @user-ky4jy8mc1x
      @user-ky4jy8mc1x 3 месяца назад +5

      Yes, except you don't roll on the technical dept, you develop it by putting in lots of effort over the years!

  • @vcv6560
    @vcv6560 2 месяца назад +1

    This title authoring SW, i.e. that animates the operations and jumps between written statements of the algorithm is simply excellent as a teaching tool. Thanks for using this, and if you're also its author double cheers.
    Also those brief historical insights are a nice touch introducing the topic. I had a few favorite text books from college that used this approach.

  • @AMDdeKoning
    @AMDdeKoning Месяц назад +1

    I have no idea how to address you but, your contributions rock! I love the fundamental and playful approach that bridges the machine code and functional language divide and the historical background. I am a fan.

  • @klineaugust
    @klineaugust 3 месяца назад +12

    I loveee the way you work through history and tangible examples at the same time, your presentation of the material is great!

  • @MarianoBustos-i1f
    @MarianoBustos-i1f 3 месяца назад +7

    Never cease to be amazed by the quality of the content and your superb pedagogic skills.

  • @MrKeebs
    @MrKeebs 3 месяца назад +9

    What an amazing channel and amazing videos. I love the ASM series and this is also excellent. Thank you so much for putting those videos together!

  • @moormoor4281
    @moormoor4281 3 месяца назад +18

    Thanking you most kindly from England

    • @phyphor
      @phyphor 3 месяца назад +5

      It's gone 3am! You should be asleep.
      ...
      It's gone 3am! *I* should be asleep!

    • @billbond2682
      @billbond2682 3 месяца назад +2

      @@phyphor 😂

  • @RyanMalmDesign
    @RyanMalmDesign Месяц назад

    Not since "Code: The Hidden Language of Computer Hardware and Software" by Charles Petzold have I found such a vividly interesting and accessible foray into computer science and it's history. I love your 0DE5 content thus far (I haven't watched the latest videos yet) and hope you continue this series for a long time. Thank you so much, I am a fan.

  • @shubhxms
    @shubhxms 3 месяца назад +2

    amazing video! i love how you explained everything, the details ofc and the editing!

  • @juwulez
    @juwulez 3 месяца назад +3

    such an incredible video!! i always enjoy them but this one was so very thorough and engaging and fascinating to watch! thank uuuu for sharing!!

  • @mikhailmikheev8043
    @mikhailmikheev8043 3 месяца назад +2

    Your content is phenomenal. Thank you very much, and please continue doing it!

  • @drelephanttube
    @drelephanttube 2 месяца назад

    Absolutely fantastic video! After watching it, I literally found myself thinking about our modern computers in a different way, reminding me of the seemingly limitless possibilities that attracted me to computing in the first place. Very excited to learn more. Thank you.

  • @dageekoftheweek
    @dageekoftheweek 3 месяца назад +3

    This is an absolutely amazing video, your passion and respect for the history is evident and not seen enough in software in general in my opinion, it kind of strange how prevalent platforms like leetcode are that encourage fundamentals without any regard for where they come from and why, what you are doing is not only well constructed and entertaining but also important work. We may stand on the shoulders of giants but it feels like they get ignored far too often, you are helping to change that and as someone who was starting to feel like tech wasn't for me anymore, your passion has helped to re awaken a bit of my own that I had as a naive college student before the world beat me down so to speak.

    • @neoeno4242
      @neoeno4242  3 месяца назад +1

      Thanks for the comment - this was really nice to read and I'm so glad to help in that :)

  • @moormoor4281
    @moormoor4281 3 месяца назад +14

    From a radio amateur very interesting information

  • @johanndewaal152
    @johanndewaal152 2 месяца назад

    This video and the others on your channel is a better introduction to computer architecture then my university courses were. It is great to see others interested in this deeper understanding of computing and not simply "means to an end" knowledge like the specifics of some JS framework.

  • @lumotroph
    @lumotroph 3 месяца назад +2

    This is absolutely brilliant.

  • @phyphor
    @phyphor 3 месяца назад +2

    I'm really enjoying this series. It fits neatly in my head alongside the work people like Ben Eater are doing with creating hardware.

  • @marcsh_dev
    @marcsh_dev 3 месяца назад +4

    Great video, thanks!
    Brings back memories of learning to program and parse on my little home computer

  • @s3nhxx
    @s3nhxx 3 месяца назад +2

    Beautiful work, as always. Thank you for your well prepared materials.

  • @latch909
    @latch909 2 месяца назад

    Kay you're a legend this is great - thanks for linking all these resources

  • @apersonwhoskatesbad
    @apersonwhoskatesbad 3 месяца назад

    Hello! I've been loving your videos. The content you've been covering is the exact stuff I was dying to know when I first started learning about computing. You present the information beautifully, and the historical context here is very interesting, and more important than a lot of people realize I think. If only I could send these videos back in time to my teenaged self, they'd blow his mind!
    Anyway, just wanted to put in a comment to let you know I think your work is really great, and I'm looking forward to seeing what you cover next. It gives me a warm feeling to see computing concepts being explained in a personal way, with an emphasis on fun. Personally, and I think this may be true for a lot of us who do computer work, programming as a job can strip away a lot of the awe that comes with first learning to program computers. These videos have helped bring back a bit of that wonder for me - computers truly are beautiful machines! So, also, thanks for reminding me of that :)

    • @neoeno4242
      @neoeno4242  3 месяца назад

      Thanks so much - this was really nice to read! Glad the fun part comes across :)

  • @richardd9634
    @richardd9634 2 месяца назад +1

    Kay, your content is incredible. It's clear to see that you have a deep passion for the material that you teach. Congratulations on the launch of 0DE5. Keep going!!

  • @jebuschrast
    @jebuschrast 3 месяца назад +2

    fascinating analysis, great presentation! Thanks for the lesson!
    looking forward to the next video

  • @jemo_hack
    @jemo_hack 3 месяца назад +1

    Gosh, just found this channel, love the content and I can appreciate the effort that goes into making this type of content, thank you! On the subjects of stacks, I see you did not mention Forth, a stack based language, nor do you mention HW based stacks, and stack machines…. maybe a follow up video? Cheers!

  • @Perezosos309
    @Perezosos309 2 месяца назад

    Great video. Lots to understand but you make it comprehensible .
    Will listen to it more than once 😊

  • @realBenjaminFranklin_
    @realBenjaminFranklin_ 3 месяца назад +2

    Wow. Instant subscription. Well done!!

  • @kyouko5363
    @kyouko5363 3 месяца назад

    6:30 - My brain immediately jumped to LISP when you said that. I didn't know there was so much more history behind this.

  • @Humble_Electronic_Musician
    @Humble_Electronic_Musician 3 месяца назад +1

    Before i even watch the video: Here have a like for the great video title 👍
    All your videos are top notch content, so I'll now proceed watching it

  • @paulchamberlain7942
    @paulchamberlain7942 3 месяца назад

    I get the feeling that the understanding of the arithmetic expression evaluation mechanism is key to writing a compiler. More specifically, the major difference between writing an assembler and a compiler. I never understood how arithmetic expressions and precedence were actually parsed and calculated, many thanks!

  • @PyroWolf90
    @PyroWolf90 3 месяца назад

    wow to stumble on to a creator like you is rare, I am glad I have, subscribing for more great work!

  • @joebuydem
    @joebuydem 3 месяца назад +4

    cracked. as usual. good job.

  • @SanjayB-vy4gx
    @SanjayB-vy4gx 3 месяца назад +2

    We need more videos like this mam

  • @fastfredi
    @fastfredi 3 месяца назад +2

    Love your videos!

  • @karlosfy
    @karlosfy 3 месяца назад

    Loved the video. Super well put together.

  • @AvanaVana
    @AvanaVana 3 месяца назад +1

    Wonderful material
    Edit: and the presentation is equally wonderful, of course!

  • @aliniaz6448
    @aliniaz6448 3 месяца назад +2

    A subscriber can be earned by just one and first impressive video, which he did in my case ❤

  • @Gersberms
    @Gersberms 3 месяца назад +2

    This is such a good video! I love the new font (NorB TypeWriter?) and the new indicators you're using as well. The pop filter seems to be working well too.

    • @neoeno4242
      @neoeno4242  3 месяца назад +1

      Thanks! It was Monaspace Radon but thanks for introducing me to a new font, I like it

  • @eterr9000
    @eterr9000 3 месяца назад

    wow this is so great.... and thank you for attaching resources and links to papers/books!

  • @flflflflflfl
    @flflflflflfl 3 месяца назад +1

    I love your channel, thank you!

  • @galactic_fx
    @galactic_fx 3 месяца назад +3

    amazing content ❤️🙏

  • @Notimetootime
    @Notimetootime 3 месяца назад +2

    you deserve more subs

  • @hosseinnajafi2181
    @hosseinnajafi2181 3 месяца назад +2

    Thank you so much, you're the best in low level stuffs 🥳🥳🥳🥳🥳🥳🙏🙏

  • @maxmn5821
    @maxmn5821 14 дней назад

    To my surprise, I saw that in RPN numbers can be lumped all together and only then operators follow. I used to interlace numbers and operators.
    Many thanks for your research and a very well done video!

    • @ZedaZ80
      @ZedaZ80 3 дня назад +1

      If you interlace the operations, you use less space on the stack, so I personally approve :P

  • @csabaczcsomps7655
    @csabaczcsomps7655 2 месяца назад

    Stack is first step, then recursive is beter stack is most value clarification and thx. This video is good to see link bethven details( hardware) and definition(software). Very very good video.

  • @6AxisSage
    @6AxisSage 3 месяца назад

    Omg! Your videos really made a lot of ideas click into place for me 🙏 Thank you for sharing your brilliant insights, hopefully people understand my work before while im around 😊

  • @alphabitserial
    @alphabitserial 3 месяца назад

    This is a wonderful video, thank you!

  • @pdougall1
    @pdougall1 3 месяца назад +5

    This is a fantastic contribution to the graduate level CS education that I'm getting on YT 🙏
    thank you very much and I look forward to more 😄

  • @bastabey2652
    @bastabey2652 3 месяца назад

    that's an amazing quality content.. thank you very much for sharing

  • @rafaelomiya6048
    @rafaelomiya6048 2 месяца назад

    captured me for good 40min. very good!

  • @h7qvi
    @h7qvi 3 месяца назад +3

    Lacky's back ❤

  • @Felixdaq
    @Felixdaq 2 месяца назад

    I really like your videos!

  • @xbelanch
    @xbelanch 3 месяца назад

    kudos from Barcelona❤❤❤

  • @yxyk-fr
    @yxyk-fr Месяц назад

    Damnit ! I had the reference for Turing, but the stack frame was Dijkstra's evil idea !!!
    Mixing data types was elegant in the 60s but today is a MAJOR headache, in particular for security, creating opportunities to crash or subvert programs !

  • @tgd2096
    @tgd2096 2 месяца назад

    Great video

  • @pikuma
    @pikuma 3 месяца назад +1

    Very good content. Kudos. :)

  • @6AxisSage
    @6AxisSage 3 месяца назад +3

    I see Alan Turing and I clicks ❤

  • @marcsh_dev
    @marcsh_dev 3 месяца назад +5

    {Some ramblings about Djykstra's comment about how to approach programming - especially learning}
    Yeah, so throughout my entire career Ive wrestled with the 2 wolves, 'treat computers as high level abstract devices -AND- treat computers as a machine with the specific needs and implications'
    I definitely bounce between the 2 and try to have each inform the others
    Take, for example, how fast caches are and hitting caches VS getting values from random places in memory.
    As you are well aware, a ton of really nice^0 algos bounce around memory, while bog standard (sort of boring) ones just use an array.
    I want to think about the program at a higher level, since at that level, I get a lot of leverage over the problems Im solving.
    But, computers _arent_ abstract calculation machines with 0 implications on how I respect the hardware. Sigh.
    I dont know if other folks wrestle with this or not.
    ^0 By nice I mean solve it well, and technically quicker than an array

    • @kevinscales
      @kevinscales 3 месяца назад +1

      It would be really nice to just think about algorithms caring only whether the output is correct, but the real world exists

    • @neoeno4242
      @neoeno4242  3 месяца назад

      Agreed, it reminds me of the idea of a dialectic. I think that idea of 'abstract machine' vs 'electron machine' has powered a lot of creative tension over the decades. Came across this post about 'mercurial CPUs' yesterday which also seems like a similar idea at a massive scale x.com/petereliaskraft/status/1840011158347972765

    • @benholroyd5221
      @benholroyd5221 2 месяца назад +1

      I think the trick is to turn the limitations into features.
      I suppose the poster child for this is forth. its based around a low level view of what a computer can easily do, and puts just enough varnish over it to make it seem higher level that it is.
      I suppose its also what makes it an engineering discipline. You can make a pretty building, but at the end of the day, it needs to not fall down, A program needs to run at a reasonable speed.

  • @pixelfingers
    @pixelfingers 3 месяца назад

    Amazing 😊👍

  • @markteague8889
    @markteague8889 2 месяца назад

    31:38. It sounds like Dijkstra was experiencing the same thing that Pascal felt when he became motivated to build a machine capable of carrying out addition / subtraction; or also, what Leibniz may have felt when he was motivated to extend Pascal's adding machine to incorporate multiplication / division. Arithmetic represents a kind of laborious chore for the mind seeking to relish in the abstract (i.e. on a higher level). Getting wrapped up in the details of how the machine intended to free your mind from that labor can just spoil it.

  • @nikbl4k
    @nikbl4k 3 месяца назад

    Hey, this is a hela interesting and informative vid

  • @pavalep
    @pavalep 3 месяца назад

    Thanks Kay :)

  • @ashtonsimmonds7042
    @ashtonsimmonds7042 3 месяца назад

    Interesting stuff

  • @tomharris8712
    @tomharris8712 3 месяца назад +8

    Matthew 19:30 But many who are first will be last, and many who are last will be first.
    How? Use a stack

  • @mrpocock
    @mrpocock 3 месяца назад

    Thank you for this. It is an area of cs history that i didn't know. Would you be able to do a similar video on the haskel-style way of evaluating a program?

  • @MarlinH-yr2ye
    @MarlinH-yr2ye Месяц назад

    thank you so much youtube algorithm 🙏

  • @yxyk-fr
    @yxyk-fr Месяц назад

    Thanks for all the research !
    I published an article on this subject half a year ago and I had the Polish and Turing reference but not the Keller and Dijkstra.
    Would you like to get in touch to discuss about it ?

  • @R.Daneel
    @R.Daneel 3 месяца назад +1

    Subbed! Great video. Alan Turing is a hero of mine. Was it string theory he was just starting to make interesting inroads into just prior to his suicide (aka manslaughter imho)?

    • @neoeno4242
      @neoeno4242  3 месяца назад

      Thanks! I didn't come across string theory but I wouldn't be surprised - I did read a bit how he was working on biology and how complex biological structures get formed (in particular, I believe, pinecones). There's a little about it here - web.archive.org/web/20130324114121/www.wired.com/wiredscience/2011/02/turing-patterns/?pid=978&viewall=true

  • @howwitty
    @howwitty 3 месяца назад +1

    That's great.

  • @onaecO
    @onaecO 3 месяца назад

    So cool

  • @satyarsh665
    @satyarsh665 3 месяца назад +1

    Kay uploads, i click

  • @SweepAndZone
    @SweepAndZone 3 месяца назад +1

    Wow. What a brilliant mind.

  • @ProgrammingRainbow
    @ProgrammingRainbow 3 месяца назад

    Reverse Polish notation. Forth mentioned 🎉.

  • @emptycode1782
    @emptycode1782 3 месяца назад

    great videos , is the font in the recursive subroutines monospace radon ?

  • @AK-vx4dy
    @AK-vx4dy 5 дней назад

    In my youth i partially successfully (unary minus 😅) without knowledge of RPN or this algorithm with two stacks, but i heavily used recursion so at least one stack i used but rest i don't rember maybe i builded kind of tree?

  • @b43xoit
    @b43xoit 3 месяца назад

    The CDC 6000-series computers had no address stack and did not support recursion.

  • @jenpsakiscousin4589
    @jenpsakiscousin4589 2 месяца назад

    Algol 60 implementation is a fun language and is a shame there are no compilers available. I have an old Algol 60 / Fortran translator that doesn’t work very well. There used to be a algol60 / simula-67 compiler on paper tape at work that was originally for the ibm360. It would be nice to find it and try to get it to run on an emulator. If you ever worked turbo pascal then Algol won’t look to strange.

  • @emilyyyylime-
    @emilyyyylime- 3 месяца назад

    Why not implement some JavaScript checker for the RPN evaluator answer with a simple hash or something?

    • @neoeno4242
      @neoeno4242  3 месяца назад +1

      Partly I've just not gotten around to it, and partly I like the emails! Good idea though, there'll be more like that in future for sure.

  • @Leetneetcode1729
    @Leetneetcode1729 3 месяца назад

    you are modern day Turing

  • @moormoor4281
    @moormoor4281 3 месяца назад +3

    Encryption on DMR is interesting subject

  • @AlanCanon2222
    @AlanCanon2222 2 месяца назад

    When I see Turing I click.

  • @ProgrammingRainbow
    @ProgrammingRainbow 3 месяца назад

    When you say subroutine, can you please do it in the voice of Majel Barrett Roddenberry. It just seems right.

  • @cryplots2815
    @cryplots2815 3 месяца назад +4

    😊

  • @inerlogic
    @inerlogic 3 месяца назад +3

    All this talk of stacks and no mention of FORTH....

  • @sacrify3449
    @sacrify3449 3 месяца назад +1

    hello Kay, could you create a video about yourself? We would like to know more about you, as you are fascinating person

    • @neoeno4242
      @neoeno4242  3 месяца назад

      Hi! :) The next one is actually a Q&A video so there'll be a little more about me in that one. If you want to ask any questions in particular you can email me at hello@0de5.net or leave a comment on the most recent video

  • @Ahoora-o2v
    @Ahoora-o2v 3 месяца назад

    Hello, I had a question, which language is the best for making very strong and low-level malware, is there anything that can reach C? How about Rust or Zig language, which one would you suggest for these tasks and bypassing system security issues?

  • @rasherbilbo452
    @rasherbilbo452 3 месяца назад +1

    This dude's good.

  • @benholroyd5221
    @benholroyd5221 2 месяца назад

    Re 'bury / unbury'
    I think youre just reading too much into it. we have a mental model of call/return. burying/unburying is just different Call/return suggests that the calling procedure is the master, and the callee a slave, burying/unburying views in more as switching focus from one to the other. it isn't wrong, just unintuitive to our eyes.
    Thinking about it further, it may be more of a reference to the stack. You are in a sense burying the top of stack when you push another value.
    My favourite example of this type of thing is the Leeds Liverpool canal. the mile markers show you where you have come from, ie the side of the sign matches the direction that Leeds or Liverpool is. This is completely unintuitive to our eyes, but makes sense from a certain point of view

  • @ProgrammingRainbow
    @ProgrammingRainbow 3 месяца назад

    It's very popular to give Alan Turing a lot of undue credit. Maybe it's because of some wildly false movies. But most of what I see attributed to Turing is not his at all. This talk about recursion is interesting because it leaves out the actual creator, and ironically, Turing's Teacher Alonzo Church. He's the father of Recursion and Lamda calculus. 1936 I think we'll before any of the people who are given credit here. I also like to point out that both Church and Turing had ideas about how computing should be done. Alan, with the simple already obvious to everyone. Somehow, he is given credit for, with the help of Church. But also Church as the much more sophisticated one. The real British star of computing was Tommy Flowers, who gets no credit for anything. Both Flowers and Turing were badly treated by the government, but Turings was worse. However, recently, he has been given God-like status and gifted with the credit for all these things he didn't do. But this video was all about Alonzo Church. And yet his name didn't come up.

    • @neoeno4242
      @neoeno4242  3 месяца назад +1

      Great comment - thank you. I'll be talking briefly about this in the next video where I'm going through some comments

    • @ProgrammingRainbow
      @ProgrammingRainbow 3 месяца назад

      ​@@neoeno4242I quite like your videos. Crafting executables from actual binary. I have only played with assembly on the 6502.

  • @skippyXG
    @skippyXG 2 месяца назад

    What an amazing video! Thank you 👍

  • @mrpocock
    @mrpocock 3 месяца назад

    Thank you for this. It is an area of cs history that i didn't know. Would you be able to do a similar video on the haskel-style way of evaluating a program?

    • @neoeno4242
      @neoeno4242  3 месяца назад +1

      Thanks for the comment! Good idea - I believe one day I will do this, though it might be a little while before I get to it :)