How do computers read code?

Поділитися
Вставка
  • Опубліковано 21 січ 2025

КОМЕНТАРІ • 4,2 тис.

  • @burntpotatoes999
    @burntpotatoes999 7 років тому +16878

    Whoever writes the compilers are absolute beasts

    • @hausemester7386
      @hausemester7386 6 років тому +366

      nah compilers are simple

    • @immadmir
      @immadmir 6 років тому +1375

      @@hausemester7386 Writing GCC, LLVM is indeed "rocket-science".

    • @MygenteTV
      @MygenteTV 6 років тому +1710

      simple? where is your complier?@@hausemester7386

    • @MygenteTV
      @MygenteTV 6 років тому +265

      @ well if you really did that then you are a genius

    • @Dennis19901
      @Dennis19901 6 років тому +300

      @@MygenteTV Nice logical fallacy.

  • @SergioEduP
    @SergioEduP 5 років тому +1398

    When I started to learn how to write code years ago I was told "the computer is one of the dumbest machines, it only follows orders even if they are wrong", it really helped me shape my mind to understand the logic of many programs

    • @willd0g
      @willd0g 5 років тому +9

      Agreed

    • @ybr8192
      @ybr8192 4 роки тому +100

      Self aware AI will remember this

    • @onlyme0349
      @onlyme0349 4 роки тому +54

      "it only follows orders even if they are wrong"
      humans don't?

    • @DamnBoii123
      @DamnBoii123 4 роки тому +2

      M.L. and A.I. - Am I a joke to you 😂😂

    • @theshermantanker7043
      @theshermantanker7043 4 роки тому

      @Nebula no, Human only use them for tedious tasks lmao

  • @janek4024
    @janek4024 Рік тому +232

    my man just quit after making the best video about compilers, what a legend

  • @Insignia_
    @Insignia_ 2 роки тому +1851

    Mad respect to all the engineers behind compilers.

    • @Maltebyte2
      @Maltebyte2 Рік тому +31

      IT feels almost like something they would find inside of a crashed alien ship! xD

    • @theowillis6870
      @theowillis6870 Рік тому +25

      its not that difficult really. once you build one, its really consistent.
      its a really fun project tbh.
      i built an interpter so.
      which is like a compiler with out the code gen.

    • @stinkyyy2k
      @stinkyyy2k Рік тому +37

      shout out to my boy terry, the mad fella actually made an entire os (temple OS) from scratch, running on its own language (Holy C)

    • @salutboss3008
      @salutboss3008 Рік тому +11

      @@stinkyyy2k yea terry was amazing RIP

    • @RenderingUser
      @RenderingUser Рік тому +23

      ​@@theowillis6870 that's not really the same as compiling.
      Also, while it's true that the basics of compiling is easy.....
      The sheer amount of optimising you have to do to make the compiler even remotely give a decently sized executable file is unreal
      That's why most people have their language compile into something like LLVM, for example

  • @theonionpirate1076
    @theonionpirate1076 5 років тому +4317

    I remember this quote from the programming classes I took while getting my EE degree. I don't remember who it was attributed to, but...
    "Computers always do what you tell them to do, and rarely what you want them to do."

    • @MauritsWilke
      @MauritsWilke 5 років тому +415

      Thanks for that amazing quote!
      Ill share the one I liked:
      There are 10 types of people in the world,
      The ones that understand binary and those who don't

    • @theguywhodoes6790
      @theguywhodoes6790 5 років тому +57

      @@MauritsWilke you bitch

    • @pootzeketzi1233
      @pootzeketzi1233 5 років тому +4

      @@theguywhodoes6790?

    • @theguywhodoes6790
      @theguywhodoes6790 5 років тому +114

      @@pootzeketzi1233 he made a pun with binary

    • @isaaclaughton7591
      @isaaclaughton7591 4 роки тому +4

      so true

  • @coffeedude
    @coffeedude 5 років тому +2353

    "So our program is pretty boring right now, let's add a line to increment x by 1"
    Hold up dude, you can't go that fast to such levels of complexity

    • @mexicanlucky
      @mexicanlucky 5 років тому +29

      hahaha holy shit im dyying

    • @yakinthebox
      @yakinthebox 5 років тому +62

      not even X++;

    • @Norogoth
      @Norogoth 4 роки тому +5

      It was boring but now it is starting to get interesting baby.

    • @equenos
      @equenos 4 роки тому +1

      @@yakinthebox not even x = 4;

    • @yakinthebox
      @yakinthebox 4 роки тому +1

      @tutacat No

  • @Cyber_One
    @Cyber_One 5 років тому +1998

    When you know how computers work exactly, how the internet works and all that stuff, you get fascinated a lot.

    • @NikkiCRMP
      @NikkiCRMP 5 років тому +154

      Opposite.
      Once you understand how it all works, it stops being "some magic".

    • @Cyber_One
      @Cyber_One 5 років тому +275

      Nikki yes, I mean you get fascinated about how humans made this and you start appreciating technology

    • @randomthings5383
      @randomthings5383 5 років тому +34

      @@Cyber_One Which is why i hate the technology these days, we went from changing humanity to wifi salt shakers.

    • @randomthings5383
      @randomthings5383 5 років тому +4

      @Vseslav Levchenko prove me wrong

    • @randomthings5383
      @randomthings5383 5 років тому +3

      @Yann cedric Totsingan im 22yo and studying CS lol your guess was off by a lot

  • @sritimanadak3937
    @sritimanadak3937 9 місяців тому +55

    Bro just casually dropped a banger and randomly vanished from UA-cam 😢

    • @gengaang
      @gengaang 2 місяці тому +2

      he literally mean it when he typed quit

    • @yasmimtestesheringer482
      @yasmimtestesheringer482 2 місяці тому +1

      I'm depressed that I only discovered his channel today and he's not making more videos, devastating

  • @hamadmohammed7645
    @hamadmohammed7645 5 років тому +1718

    "Source code is made only to be understandable to humans"
    My brain cells: Ight imma head out

    • @ExtremusStupidus
      @ExtremusStupidus 5 років тому

      lol

    • @half-qilin
      @half-qilin 4 роки тому +128

      Source code is sometimes only readable by its creator. I know my code falls victim to this

    • @atastypineapple9296
      @atastypineapple9296 4 роки тому +55

      @@half-qilin exactly, reading people's code is a pain in a$$.

    • @KoolMonkE
      @KoolMonkE 4 роки тому +29

      @@half-qilin well, on the bright side it could be more difficult for hackers.

    • @ErrorNoInternet
      @ErrorNoInternet 4 роки тому +5

      Fortran: Hold my code

  • @momomi104
    @momomi104 5 років тому +3754

    In a push of a button...
    no.. nope.. wait.....
    -Programmer life story

    • @zucc4764
      @zucc4764 5 років тому +167

      A push of a button.
      *Realizes he actually runs Python 3 instead of Python 2*
      There we go. A push of a button.

    • @sublime_tv
      @sublime_tv 5 років тому +156

      50 errors laters, there are now 60 errors...

    • @Hangyeol97
      @Hangyeol97 5 років тому +35

      @@sublime_tv SO TRUE

    • @manonthedollar
      @manonthedollar 5 років тому +29

      I genuinely laughed out loud at that part, and I'm dead inside.

    • @liamtaylor3576
      @liamtaylor3576 5 років тому +24

      unexpected indent, syntax error, index out of range 😂

  • @Neurofilia
    @Neurofilia 4 роки тому +578

    When I was teen (15 years ago), I was fascinated in programming. I remember spend a lot of hours on the computer trying to figure out how it works and why a code like "print("Hello world")" works in a machine level, but in that time internet didn't have this kind of videos (in fact, youtube was just beginning).
    Nowadays with this kind of videos it's really easy learning about everything and I am still fascinated with computer (but now approaching it from neuroscience) and your skills to transmit this information, however are awesome.
    Thanks a lot !

    • @Neurofilia
      @Neurofilia 4 роки тому +7

      @killmoo almost, I'm 29 😅

    • @xephobia795
      @xephobia795 4 роки тому +2

      ouuch that was hard understanding things like puts() in c because it use the system c lib (libc/glibc/musl on linux and msvcrt on windows

    • @rithvikkona8922
      @rithvikkona8922 4 роки тому

      it just show picture not found thingy

    • @thisisfaiaz
      @thisisfaiaz 3 роки тому +1

      @@Neurofilia right now I am 15 and learning this programming stuff

    • @Dennis19901
      @Dennis19901 2 роки тому +1

      Even with rhe Internet it's still extrenely difficult to understand, if at all.
      Processors are insanely complicated nowadays including how they execute instructions

  • @Moe5Tavern
    @Moe5Tavern Рік тому +8

    This is an amazing video, you really have a gift for explaining complex matters in a clear way, shame this channel stopped uploading. Hope you are well!

  • @exquisite7416
    @exquisite7416 7 років тому +529

    This video managed to take a complex idea and compile it down in a form understandable to our human brains. Funny that :)

    • @skorpius2029
      @skorpius2029 6 років тому +20

      @Niepowtarzalny Użytkownik "decompilation" of how compilers work

    • @johnpro2847
      @johnpro2847 5 років тому +4

      Maybe .. but it also presented more unanswered questions :(

    • @SomeYouTubeTraveler
      @SomeYouTubeTraveler 2 роки тому +5

      Me: "Computers work by doing magic."
      Frame of Essence: "Here's how they actually work."
      Me: "Computers work by doing 50x more magic than I thought they did."

    • @dianathomas2674
      @dianathomas2674 2 роки тому

      Four years later this comment still deserves a like.

  • @OonHan
    @OonHan 5 років тому +1027

    "How do computers read code?"
    _by running code_

    • @arithedotanewb9126
      @arithedotanewb9126 5 років тому +62

      Yeah.. I was expecting him to talk about transistors and what actually makes up a cpu. That's what reads it. I had to design one from scratch in one of my electrical eng classes

    • @johneygd
      @johneygd 5 років тому +8

      Ever wondered how a computer compares to a human brain?

    • @GamerTheTurtle
      @GamerTheTurtle 5 років тому +19

      ​@Chris Russell They aren't building simple circuits using Ohm's Law (not electricians), electrical engineers learn the why and how of circuits using fourier, vector, and complex analysis. They don't just learn circuitry either, the 'weed out' classes constitute three semesters of physics, and four of calculus (if you count differential equations), next comes electrodynamics, thermodynamics, quantum mechanics, classical electromagnetics, the whole nine yards and more. It is extremely over the top conceptual and recognized as one of the harder engineering courses. So ya it's not just some piece of paper that the "HR people" give credence to. Electrical engineer is a set of tools used in almost any industry that uses electricity.

    • @GamerTheTurtle
      @GamerTheTurtle 5 років тому +4

      @Chris Russell I like how you so pompously tout your knowledge of elastance but brush off thermo. This comment is absolutely sceaming at me that you fancy yourself some tragic savant, doomed to mediocrity by the system that lets youngsters with a an embossed plaque to go on to bigger and better things. Save your schtick buddy, you just sound haughty and maybe a little jealous, else why are you even giving this spiel in the first place but to call yourself a gifted little star.

    • @Luka-he5mr
      @Luka-he5mr 4 роки тому +1

      Can I throw some Lua in here?

  • @quack3891
    @quack3891 5 років тому +451

    "What you've only done python scripting!?"
    *started on C++ and moved to java*
    *sweating bullets from dodging a bullet*

    • @glzr_io
      @glzr_io 5 років тому +69

      you just dodged a bullet by jumping into a bigger and worse bullet

    • @rorymax
      @rorymax 5 років тому +9

      i started on Java and am now learning C++ :D

    • @andrewdaniels5043
      @andrewdaniels5043 5 років тому +14

      @@glzr_io python's syntax sucks and is slow

    • @pepperoniboy57
      @pepperoniboy57 5 років тому +33

      @@andrewdaniels5043 no

    • @andrewdaniels5043
      @andrewdaniels5043 5 років тому +7

      @@pepperoniboy57 yeah lol Java is better

  • @tgsvampire
    @tgsvampire 9 місяців тому +2

    IDK how man, but this video suddenly popped on my face after may 2 years when I know a bit more about computers and programming and I am able to comprehend more of what is going in this video....
    And I just realiesed,
    This man is creating some real value dude....🔥

  • @rjulien7630
    @rjulien7630 4 роки тому +686

    I know you probably won't read this but still, I want to say this is my favourite computer science video on youtube. You explained things in such a clear manner and also not boring one bit. What's really special about your video is how you explain some of the concepts lecturers and others never teach. for eg the part where you talked about how compilers themselves are created.
    Thank You for the video

    • @kakyoindonut3213
      @kakyoindonut3213 3 роки тому +7

      he hasn't posted anything for 4 fucking years, and your comment was like 1 year ago

    • @imibuks-replit
      @imibuks-replit 2 роки тому +5

      @@kakyoindonut3213 yeah. these videos are amazing but the channel is dead innit?

    • @kakyoindonut3213
      @kakyoindonut3213 2 роки тому

      @@imibuks-replit maybe, 4 years is a really long time

    • @imibuks-replit
      @imibuks-replit 2 роки тому +2

      @@kakyoindonut3213 yeah... for a few months yeah but almost half a decade....

    • @shivamxtras
      @shivamxtras 2 роки тому +2

      I feel the same and I hope he gets back to UA-cam again!!

  • @5up3rp3rs0n
    @5up3rp3rs0n 7 років тому +883

    lol that python 2/3 joke at the end
    edit: didnt realize this is just released 18 minutes ago, nice

    • @bit2shift
      @bit2shift 7 років тому +12

      Likewise the one at 1:08.

    • @_mipp
      @_mipp 7 років тому +1

      Nice easter-egg

    • @xetera
      @xetera 7 років тому +3

      Yatta Sovr That really doesnt have anything to do with the joke though.

    • @KingJellyfishII
      @KingJellyfishII 7 років тому +1

      HAHA! I was just going to comment the same thing!
      That is why I still program in python 2

    • @alice_in_wonderland42
      @alice_in_wonderland42 6 років тому +3

      @@KingJellyfishII well you can convert python 3 to 2
      and 2 to 3

  • @DlcEnergy
    @DlcEnergy 5 років тому +136

    Bootstrapping (pull yourself up by your bootstraps / an impossible action) is to compile a compiler from its own source.
    It's a chicken and egg situation. Which came first? The compiler? Or its self source? The compiler, born from another language.
    The first C++ compiler originated from C. (Bjarne used C to create a C with Classes preprocessor. He used his C with classes language extension to create Cfront. Cfront compiled his C++ language into C. And that's why C and C++ mix together.)
    The first C compiler originated from B. (B was first written for the PDP-7 minicomputer. (Programmed Data Processor) It evolved into NB (New B) to support the PDP-11. C was written in NB.)
    The first B compiler was written in TMG. (TransMoGrifier)
    The first TMG compiler was written in PDP-7 assembly language.
    Assembly is machine code made readable. (directly from the opcodes. (operation codes))
    Before Assembly, people would've likely used some form of custom assembly code on paper to translate into machine code.

    • @zeozeto5457
      @zeozeto5457 5 років тому +8

      Whoah, untold history, thanks now i can sleep in peace

    • @herrbonk3635
      @herrbonk3635 4 роки тому +8

      It's not impossible though to write a compiler without using another high level language. Most early compilers and interpreters were written in assembly (for Fortran, Algol, Simula, Lisp, Basic, and so on). Some of them first wrote a simple compiler for a subset of the language in assembly and used it to compile a more advanced compiler (written in that subset, but implementing more of the language).

    • @DlcEnergy
      @DlcEnergy 4 роки тому +1

      ​@@herrbonk3635 of course, but it wouldn't be worth it. the compiler will do the same exact translation you program it to do. the only difference would be how fast those compilers are at doing that. i think we'd take slightly slower compilations, for more well managed and developed compilers. that's the whole reason for higher level languages to begin with. to make development easier and more time efficient. hence why AAA games are written in C/C++, not assembly. we don't need the utmost potential possible out of most stuff. we'd rather have the darn thing finished already. and better compilers means better compiled code.

    • @herrbonk3635
      @herrbonk3635 4 роки тому

      @@DlcEnergy Hmm, I wasn't discussing efficiency here, but rather principles from an historical perspective. I was under the impression that you did too. However, you somehow seem to miss my point about that interesting middle way between assembly coded and self hosting compilers, using a subset of the HLL implemented. It has been used also for relatively "modern" (at least when you are 50+) languages like Pascal and Modula.
      I sure agree that compilation speed is much less important today, when everybody has "super computers" (in a very real mening, compared to the situation in the 1960s, or even the early 1990s). I personally love interpreted languages for their great flexiblity and security (checking array accesses, stack overflow, and so on).
      And my own design of a HLL language happens to be a pretty slow(!) compiler with some aspects of typical interpreters that I find useful. It produces quick and efficient code though. (All statements and their syntax are implemented as fully redefinable operator functions in this language, with pre-, post- or infix syntax, hence its relatively slow parsing speed.)

    • @DlcEnergy
      @DlcEnergy 4 роки тому

      @@herrbonk3635 That's why i'm bringing efficiency up. Obviously a lower level language can achieve the same. But there's a reason for higher level languages.

  • @EvanSnackson
    @EvanSnackson Місяць тому +2

    dude this video is awesome, my first time finding your channel only to find this is the latest video… posted 7 years ago… you answered so many questions i was curious about the entire way through

  • @swedneck
    @swedneck 7 років тому +370

    This is a damn near perfect video

  • @hikerwolfspaine8200
    @hikerwolfspaine8200 6 років тому +28

    I was kind of lucky with my instructor. He's an old veteran who goes on rants of his experiences with writing in c and dealing with UNIX mainframes and talks a lot about all this underlying stuff which makes programs work.

  • @tremon3688
    @tremon3688 5 років тому +754

    Imagine doing all the holes for old computer programs and then you realize you forgot a semicolon....

    • @TorutheRedFox
      @TorutheRedFox 4 роки тому +114

      you didn't need semicolons back then
      semicolons are just to allow the programmer to set the end of an instruction in a high level language rather than having the compiler rely on line breaks so you can break it up into multiple lines
      for binaries, semicolons leave basically nothing behind unless it's a lone semicolon, which compiles into a nop, which is the only exception

    • @gianmarcoproia5855
      @gianmarcoproia5855 4 роки тому +39

      @@TorutheRedFox it's a joke duh

    • @TorutheRedFox
      @TorutheRedFox 4 роки тому +24

      @@gianmarcoproia5855 I know

    • @cosmic4297
      @cosmic4297 4 роки тому +28

      Everybody: wow you write code that’s really hard
      Me: you should see the people who write compilers

    • @Luka-he5mr
      @Luka-he5mr 4 роки тому +17

      Everybody: What’s a compiler?
      Me: its a program that turns source code into machine code
      Everybody: whats source code and machine code?

  • @janek4024
    @janek4024 Рік тому +2

    i found this video, and than i went to check out the cccs. a week later, i am here now again to say thank u - this video is a really good complementation to the cc. this is insane and mind blowing.

  • @whythosenames
    @whythosenames 4 роки тому +125

    This is so mindblowing how this swaps the values, I have never seen this before:
    x = x + y;
    y = x - y;
    x = x - y;

    • @thegreatzoom5073
      @thegreatzoom5073 4 роки тому +7

      So x and y are 0...?

    • @whythosenames
      @whythosenames 4 роки тому +36

      The Great Zoom no = in programming means "assignment". You assign the value on the right to the variable on the left. Even equations like x = x + 1 are possible. This would not work in mathematics for example, there = is a "comparison". In most programming languages comparison is defined as "==" which is not the same as "="

    • @TorutheRedFox
      @TorutheRedFox 4 роки тому +4

      this would immediately cause a compile error because Y is undefined when you're initially assigning X using Y

    • @whythosenames
      @whythosenames 4 роки тому +44

      @@TorutheRedFox yeah you have to define them otherwise the swapping would not even make sense

    • @ninesquared81
      @ninesquared81 4 роки тому +15

      In Python, you could actually write it in one line as
      x, y = y, x
      which is a direct consequence of Python's unpacking. It is fundamentally different from the C-style approach though (as I understand it) because firstly, names in Python don't correspond directly to a location in memory and the y, x on the right is actually a tuple, more explicitly written as (y, x).

  • @pooja05rejoice
    @pooja05rejoice 6 років тому +156

    This video should be the mandatory pre-requisite for any and every concept of computer Science henceforth :) Amazing , So Thankful for you

    • @anuragmishra3227
      @anuragmishra3227 5 років тому

      @@ithaca2076 means worship on Hindi.

    • @abcd123906
      @abcd123906 5 років тому +1

      I absolutely agree! And to think it's only 12 minutes long!!! Why is this not shown to everyone who is learning to code?!

    • @supreetkumar7604
      @supreetkumar7604 4 роки тому

      @@abcd123906 This is on YT. So, they will co e to know that they can basically learn all sorts of things on internet. And? college gone broke.

  • @blerst7066
    @blerst7066 4 роки тому +100

    As a language geek and conlanger, I'm so glad that I now know how compilers work. It inspires me.

    • @gdtutorial
      @gdtutorial Рік тому +2

      As an AI Language Model.....

  • @pptide
    @pptide 3 роки тому +5

    Thank you for putting EVERY tool and programming language you used in the Description!!! Sometimes I'm so confused on which programms were used in a video!

  • @dianathomas2674
    @dianathomas2674 2 роки тому +4

    I have been wondering about this for so long, not knowing was always a stone in my shoe, a disturbance in the force, it was. I knew the code had to be transferred into binary, but how?
    And, "Compiling the compiler with a previous version of itself", the sweetest poem I've heard in a long time.
    Thank you so much for this.

  • @arcsexpedition2406
    @arcsexpedition2406 4 роки тому +28

    10:40 I was so excited when I heard this. That's the exact question I've been wondering ever since I learned about compilers! Thanks for clearing it up, keep up the great work!

  • @choicefive9761
    @choicefive9761 3 роки тому +5

    This cleared so many of my doubts and made me take up computer engineering more passionately , thanks for changing my life

  • @Banzer_964
    @Banzer_964 6 місяців тому +3

    The best CS video I have ever watched

  • @JonathanMandrake
    @JonathanMandrake 3 роки тому +58

    Honestly, the most interesting part was your description of how machine codd works. From the machine code to the output felt always like magic to me, and this starts to give meaning to what is really happening

  • @jiffylou98
    @jiffylou98 Рік тому +4

    Just got past the intro and somehow I'm subscribed. Presentation so good it's an automatic yes

  • @panoskotoulas759
    @panoskotoulas759 5 років тому +5

    Man please keep making videos. You are the only chanel that answered all my questions in such a clear way without being afraid to go into a bit of math. And your humor is awesome as well. You are literally the best computer science chanel I found, it would be a shame to stop making such awesome videos. Hope we hear from you soon.

  • @khalidsaad9452
    @khalidsaad9452 2 роки тому +4

    high quality content thats taken for granted

  • @nikm2089
    @nikm2089 4 роки тому +23

    I have always been fascinated with compilers and how they work ever since I started to teach myself to write code. I teach myself out of hobby and to use my brain since I'm a bit older. Awesome video.

  • @MSDOS128
    @MSDOS128 5 років тому +1316

    >Programming isn't so hard...
    *calls quit()*

    • @maybelbdidit
      @maybelbdidit 5 років тому +33

      Python's is exit()... lol

    • @anteconfig5391
      @anteconfig5391 5 років тому +57

      @@maybelbdidit In python you could use:
      exit()
      quit()
      or if you import sys
      sys.exit()
      All these work.

    • @Miko-hw1ft
      @Miko-hw1ft 5 років тому

      Lolz

    • @abbyboing
      @abbyboing 5 років тому +67

      @@maybelbdidit Just try plugging out the power source. Works with every language.

    • @Sparkette
      @Sparkette 5 років тому +1

      @Irritating Would have been funnier if there was a single frame with an error.

  • @OldDogNewTrick
    @OldDogNewTrick 5 років тому +18

    I first learned about all this 54 years ago. The knowledge served me well over the years.

  • @jadedplover1851
    @jadedplover1851 3 роки тому +198

    I think my university did it pretty well, first semester you take a class called "Computer Systems, Architecture, Networking and Security", and in that class you work with manually compiling written code to objects and then linking them in assembly then you also covert them to binary aswell, you also cover logic gates and in it some optimization compilers do to your code. It cover os architecture and network protocols and cryptography but I think it's important to understand object linking and compiling otherwise you'll get very confused when you start trying to use cmake and get 20 linking errora haha.

    • @robonator2945
      @robonator2945 2 роки тому +38

      Jesus you must have gotten extremely lucky to have a CS track that was that exhaustive and explanatory, even sounds like it was using linux from the start too. I've been to a few different university CS courses and they've all been nothing like that. Maybe it's a culture thing but I WISH I got that sort of introduction to programming.

    • @kornelijussliubauskas8299
      @kornelijussliubauskas8299 2 роки тому +4

      Where did you study?

    • @Nagim-d3z
      @Nagim-d3z 2 роки тому +2

      I’m also curious what uni you’re talking about as this sounds lovely for a 1st semester class

    • @jadedplover1851
      @jadedplover1851 2 роки тому +11

      @@Nagim-d3z Monash University in Melbourne, AUS. The unit itself isn't exhaustive in any of these topics by any means, however most of these topics are often fundamental to many career paths despite being overlooked in favour of more specialized practical work. But the relative broad coverage of many of these topics helps give a lot of context and elevates students' understanding of other units substantially. Often a lack of these fundamentals leads to elusive higher level problems the person is likely to struggle to identify and often results in trial and error learning of these concepts, or even worse where the student fails to learn these concepts completely which I see all too often result in zero-day security flaws in software they later release in their career.

    • @mridhulml3269
      @mridhulml3269 2 роки тому +6

      damn lucky you..I'm doing btech CSE and all I got in first year was a lot of chemistry, physics, civil engineering and whatnot..literally wasted a year imo

  • @KarmelAbufarha
    @KarmelAbufarha 4 роки тому +7

    For someone who has zero experience in programming and interested in the field. This video was incredible helpful in understanding the origins of code and made a lot of sense. I can see why there are only linux and it's many distributions as the only real alternative in operating systems. It would take a lot of work and know how to reinvent the wheel. Great video.

    • @petefrancisco3267
      @petefrancisco3267 Рік тому +1

      If you got zero experience about programming you wont understand what is being talked about in this video specially in the comments section!!!

  • @christianriekert2908
    @christianriekert2908 3 роки тому +4

    I wish you will come back any time.. this videos are filled with lots of information and are quite funny so I wanted to watch the entire channel on one evening .. well.. it’s 12:30AM and I’m still watching 😅
    Nice job!

  • @viharcontractor1679
    @viharcontractor1679 7 років тому +746

    Instead of IDEs saying "EOS : End of expression expected at line : 40"
    They should just say "Add a semicolon at the end of line 40 ya dummy"
    Life would be easier this way.

    • @son_guhun
      @son_guhun 7 років тому +194

      Well, eventually your human brain will learn to compile that error message into an instruction to add a semicolon somewhere xD

    • @ArchHeretic1
      @ArchHeretic1 7 років тому +61

      or just use a a decent modern IDE that will underscore that missing semi-colon. less wasted energy and time.

    • @macstevins
      @macstevins 7 років тому +54

      Nor saying: "Semicolon Warning: Please put semicolon at the end of the line 40", or just adding a semicolon when running or the IDE finds the error. Dumb IDE Developers... Oh wait, I'm a IDE Developer.

    • @dennielluissadian5026
      @dennielluissadian5026 5 років тому +41

      And then python coders will be like, "what the f is the semicolon?"

    • @ArchHeretic1
      @ArchHeretic1 5 років тому +26

      @@spidercubed9718 notepad?! Pfft amateur. Real pros use punch cards

  • @dynpallomah
    @dynpallomah 2 роки тому +79

    I remember watching this video a few years back and fascinated. Now I'm more than capable of creating my own programming language.

    • @rgloria40
      @rgloria40 11 місяців тому

      It's probably going to be exciting seeing the next generation jumping directly into Quantum Computing... I see a lot of confusion, flat lies and etc... but they will figure it out. what is possible, what is not and what is Politically Correct.

  • @shubhamshinde3593
    @shubhamshinde3593 7 років тому +64

    Damn, i thought this channel was over, I'm so happy he's back!!

    • @Nae_Ayy
      @Nae_Ayy 6 років тому +1

      aaaand he's dead

    • @frameofessence
      @frameofessence  6 років тому +6

      coming back soon!

    • @SKO_PL
      @SKO_PL 6 років тому +2

      @@frameofessence still waiting lol

    • @prakharsinha4822
      @prakharsinha4822 5 років тому

      @@frameofessence we miss u

    • @Xnoob545
      @Xnoob545 3 місяці тому +1

      ​@@frameofessence no pressure ofc, but I'm still waiting

  • @jeremyrodriguez9815
    @jeremyrodriguez9815 5 років тому +7

    the best video ever seen in my life about programming. you've done a wonderful job.

  • @shybound7571
    @shybound7571 5 років тому +673

    UA-camr: "you've only been using python!?"
    Me, who uses scratch: "uh, sure"

  • @rajesh_404
    @rajesh_404 2 роки тому +1

    When I read about compilers, it all start with lexical analysis, parsing, tokens, etc. But, you just built up an intuition. I got what you gave. Thanks!

  • @IAmNumber4000
    @IAmNumber4000 2 роки тому +739

    How tf did humans figure out how to do this lmao

    • @TheInterestingInformer
      @TheInterestingInformer 9 місяців тому +107

      100 billion people * 40 years of thinking = quite a bit of progress 😅

    • @tgsvampire
      @tgsvampire 9 місяців тому +46

      My brain is getting roasted in a corner thinking the same....While I just completed watching this video.

    • @tgsvampire
      @tgsvampire 9 місяців тому +12

      ​@@TheInterestingInformerThat's not really just, quite a bit of progress TBH...💀

    • @Nxtfbrdf
      @Nxtfbrdf 9 місяців тому +24

      It took us approximately 300K years to figure this out(since homo sapiens spawned 😂)

    • @johngeiger3770
      @johngeiger3770 8 місяців тому +2

      Aliens 👽

  • @elidc93
    @elidc93 4 роки тому +6

    thanks for this video! I really like this for the reasons that:
    1. You've shown concrete instructions, the assembly code with stack pointer not just some abstract idea.
    2. The phases in compilation (analyses).
    3. The part where you glossed over Java compiler and assembly topics, that Java compiler is a compromise for different CPU architecture and that assembly code is an intermediate step before the machine code
    now it made more sense to me, again thank you, please keep it up. I'm saving this vid.

  • @minibun04
    @minibun04 5 років тому +55

    That ending 😂
    Pain of people who change from Py2 to py3

    • @half-qilin
      @half-qilin 4 роки тому +2

      I try to avoid Python, it’s complicated to figure out after learning other languages. I prefer C over Python.

    • @TorutheRedFox
      @TorutheRedFox 4 роки тому +1

      @@half-qilin Python is very inefficient too, and is only a scripting language, plus it also requires the user to have all of the required libraries and the same major Python release installed, while a binary only requires the user to have the same OS, and potentially a few dynamic libraries, which in the case of Windows and Visual C++ (which also tends to apply to C if you use functions included in VCPP DLLs), the user very likely has them anyways, and with Linux and macOS it tends to be a little more complicated at times, but things generally are more backwards compatible than Python

    • @half-qilin
      @half-qilin 4 роки тому

      @@TorutheRedFox I develop for MacOS or game consoles like the 3DS (when I’m not using Unity).
      I might consider using Java at some point, but IDK on that one.

    • @RaLo4
      @RaLo4 4 роки тому +4

      ​@@half-qilin ​good job comparing a complied language to an interpreted language guys. it's not the case of different languages for different uses, it's definitely the case of one being better than the other. jeez better call all these research facilities and let them know they are using the wrong language.

  • @szell-dev
    @szell-dev 9 місяців тому +2

    My man made the best CS video about compilers I've ever watched and the disappeared like the Avatar

  • @DaVince21
    @DaVince21 3 роки тому +4

    This video perfectly answers all of the questions I had as a teenager twenty years ago. All the way up to "but how would the first compiler be written?" Thank you for introducing others to these questions. 😄

  • @drlogiq1494
    @drlogiq1494 5 років тому +8

    10:30 caught me off guard but I LOVE IT!

  • @ashismandal7776
    @ashismandal7776 6 років тому +49

    Just one word :
    Amazing!!!

  • @kanayocopy9876
    @kanayocopy9876 3 роки тому +1

    This has to be the funniest and one of the most engaging explanations I have seen on UA-cam😂😂

  • @vadiks20032
    @vadiks20032 2 роки тому +4

    the fact you explained it to us in such a detail just tells that you either had a very good experiecne with writing a compiler, or you had an experienced person check/write your text, or

  • @NinaTheLudaca
    @NinaTheLudaca 7 років тому +13

    Beautiful video content and editing. Thank you for your efforts. ♥

  • @richarddoci
    @richarddoci 6 років тому +54

    wow better than most classes I took in college hahaha

  • @eddybobea6709
    @eddybobea6709 4 роки тому

    I like how Crash Course computer Science was mentioned, you are not mistaking dear sir, such as yourself they are very good at explaining.

  • @shehab976
    @shehab976 4 роки тому +3

    hats off to those who made compilers,struggeling behind the scene for making programming world so simple!

  • @lemonsh
    @lemonsh 4 роки тому +9

    Man! I have to thank you - I watched this video three months after it has been uploaded, and was a beginner in python. I thought "python is great and i will stick to that", but when you said "python scripting" I was absolutely amazed with this compiler magic and started learning C#, then Java, C++ and even x86 asm! Now, I came back to this video and realized, that without you, I would never learn these languages! Now I'm a junior Java Developer. Again, thank you so much.

    • @williamdrum9899
      @williamdrum9899 3 роки тому

      Good luck to you. I looked at the 8086's assembly in DosBox for about 5 minutes and noped right out of there. Funny how the most popular CPUs have my least favorite assembly languages.

  • @gbenga9811
    @gbenga9811 5 років тому +11

    I enjoyed watching this. Good sense of humour

  • @jajajaJosue
    @jajajaJosue Рік тому

    Your sense of humor earned my sub. Because learning is better when it's fun. Now excuse me while I binge watch more of your videos xD

  • @MrRolnicek
    @MrRolnicek 7 років тому +335

    Oh god! The ending!
    I was eating goddammit!
    I nearly spat potato chips all over my keyboard!

    • @neilbalch
      @neilbalch 7 років тому +3

      lololololol hope you learned your lesson! :)

    • @neeeeeck9005
      @neeeeeck9005 7 років тому +1

      I didnt get it please explain

    • @MrRolnicek
      @MrRolnicek 7 років тому +13

      I mean ... I lived through this many times.
      The amazement at how simple Python is, just print "This" and it works!
      No wait, that's the old python, the new one needs brackets.

    • @bithon5242
      @bithon5242 6 років тому

      You should eat more healthy

    • @marcfoster715
      @marcfoster715 6 років тому +2

      @@potato_x69 Let's call the whole thing off

  • @ultravidz
    @ultravidz 7 років тому +626

    I wish I didn’t wait until I was 18 to learn programming. I could’ve learned this shit easily at the age of 10. I think most people could.

    • @reyariass
      @reyariass 7 років тому +8

      AlphaOmega my thought exactly!

    • @MakinBacon0651
      @MakinBacon0651 7 років тому +73

      Well I did try when I was 12 and I was able to write HTML and CSS with ease but VB and C I just could not grasp. I stopped trying to program and stuck with the hardware side as a net admin and then later tried to pick up programming again. It does seam WAYYYYY easier than it was 18 years ago.

    • @ultravidz
      @ultravidz 7 років тому +11

      I had a similar experience at 12, with html and css, mainly for building out my old myspace page. Regretfully I didn’t revisit the subject for years to come.

    • @TheNathanDrawdy
      @TheNathanDrawdy 7 років тому +3

      Ya know, I am just a freshmen, and Java is quite nice to use. Not saying the same for JavaScript, but I am saying that about Java itself.

    • @RandumStuffRandumnes
      @RandumStuffRandumnes 7 років тому +18

      I used to teach a programming class to 7-12 year olds. It's definitely a thing.

  • @honordevs
    @honordevs 2 роки тому +4

    "All you did was Python scripting?!"
    This line hit way too hard for me. I started in C++, like most kids in HS, forgot it, then went to Python. Now, I code in Rust more than anything else, but I remember that learning curve and feeling like I had no idea what was happening.

  • @pratikdagu
    @pratikdagu 5 місяців тому

    Where are you? And why are you not making more videos like this. This is by far the best video i have ever seen. I have problem visualising stuff and because of that its harder to learn stuff. Your video actiually gave me good understanding of how programming actually works. Thanks for this.❤

  • @DeFlekkie
    @DeFlekkie 7 років тому +15

    Phyton Programmers and compilers, what do they know? Do they know things? Let's find out! 1:19

    • @randomcatdude
      @randomcatdude 7 років тому +1

      print has to use these --> () in order to work, for SOME REASON.

    • @mlgepicbanana69
      @mlgepicbanana69 6 років тому +1

      Print is a statement in python 2.7, you only need parentheses in 3.6.

    • @cycrothelargeplanet
      @cycrothelargeplanet 9 місяців тому

      ​@@randomcatdudeperson from half a decade ago when python 3:

  • @Khaktos
    @Khaktos 7 років тому +100

    Damn that ending... 3 > 2.7 :D

    • @renxula
      @renxula 7 років тому +5

      I concur, Python is just the worst.

    • @syedanoorumar1419
      @syedanoorumar1419 6 років тому

      hahah same here.

    • @omertrnk5397
      @omertrnk5397 5 років тому

      @@renxula why

    • @tunis4
      @tunis4 5 років тому

      @@omertrnk5397 it makes no sense for me

  • @Nick-lx4fo
    @Nick-lx4fo 5 років тому +50

    11:33 programming in a nutshell

    • @fisch37
      @fisch37 3 роки тому

      When you accidentally mix up the programming languages (or versions in this case)
      (I once tried to print to Serial Out in Java. Didn't work for some reason)

  • @tylerornelas9552
    @tylerornelas9552 3 роки тому

    this is now, by far my favorite CS channel, good stuff!

  • @ex-xg5hh
    @ex-xg5hh 3 роки тому +84

    Compilers aren't actually as complicated as people tend to think. They can be, and the industry grade ones like gcc really are, but the core idea is really simple. Most people who know programming can write one (not without extensive googling of course), no cs/math degree is required for that. I'm speaking from experience as I've written a few of these things myself back in high school. In fact, I believe that everyone who considers themself a programmer should write a compiler to properly understand how it actually works, as in, "I don't understand it if I can't do it myself".

    • @usrnewxnew5227
      @usrnewxnew5227 Рік тому +12

      Yeah, like from what I heard almost half of gcc is just the optimization passes where they pull off some freaky shit. The actual translation and ast isn't that complicated.

    • @snesmocha
      @snesmocha Рік тому +3

      @@usrnewxnew5227one quarter is parsing cause c++ is a very hard language to parse, the next is then optimization… witchcraft

    • @gesoocreesto6374
      @gesoocreesto6374 Рік тому +2

      @ex-xg5hh hope you're still acrive... may i ask what did you write in assembly? what was the purpose of the code? was it like some simple thing or a complex code like rollercoaster tycoon type of stuff

    • @mohammednajl5950
      @mohammednajl5950 Рік тому

      I remember writing a brainfuck compiler back when I was beginning C programming. It was fairly simple (brainfuck is literally designed to have a small compiler) but it helped me understand a bit about how compilers work.

    • @pixelstriko1642
      @pixelstriko1642 Рік тому

      Interpreters are probably easier to write tho since you can just run the code in the language of the interpreter instead of generating machine code

  • @prettypointlessvideo
    @prettypointlessvideo Рік тому +14

    I've always wondered about how the first program was developed. I guess programming is based on electronics in a very naturalistic and physical/chemical way with transistors etc. Amazing

  • @georgeadrianstefan1676
    @georgeadrianstefan1676 Рік тому +4

    If you know Assembly, all software becomes open-source

  • @omw1727
    @omw1727 2 роки тому

    i was learning how to code in python, then the guy on the video said "compilers and intrepreters are different, but do the same work basically", and now even if this haven't respond my question im glad to understand a little bit more about computers, this video is really cool and well explained!!

  • @brunozimmermann8017
    @brunozimmermann8017 5 років тому +4

    I think it is cool to add that high-level or low-level are both relative to a specific machine, so Python is high-level to an Intel processor, but somewhat lower-level to the Python VM. Also note that there exists compilers that translate a high-level language to a language that would look like it is high-level comparing to an Intel processor.
    Also, JVM execution is more the complex then a "interpreter". Code is initially interpreted, but most used functions are compiled to native code on-the-fly and executed natively.

  • @Xnoob545
    @Xnoob545 3 роки тому +4

    Please come back

  • @mitchluscombe1071
    @mitchluscombe1071 3 роки тому +35

    5:18 ah yes, finally some readable code

  • @lumbiniashutoshtambat5871
    @lumbiniashutoshtambat5871 Рік тому +1

    Feel like the best video I’ve ever seen on UA-cam, nd trust me ive seen many. He-like a brilliant teacher-addresses all queries after inducing them in the righteous way! And gives an absolute flawless understanding, giving the complete picture. Also this is a topic giving the complete picture, nd the video has done justice to it! This was so much of a mystery to me, for which I cudnt find the explanation/solution anywhere for soo long!!!! Thankyou so much 🙏🙏

  • @ratulchakraborty7727
    @ratulchakraborty7727 Рік тому +4

    Bro...why did you stop bro 😭....please come back

  • @junehanabi1756
    @junehanabi1756 5 років тому +16

    That was a good video! I think it really covered the basics well. Personally modern assembly can be more intimidating as an explanatory video. I would have suggested using some of the much older assembly back in simpler times. It's not relevant today but this video is about compilers not writing assembly yourself so I think it would have been better. ---- Also writing assembly by hand still has some uses (Albeit not as it used to do) and being able to read and interpret assembly or even the raw code can also be useful in some modern cases. I think it's important to stress that those skills even in modern times can tremendously help programmers who are very serious about learning programming.

    • @williamdrum9899
      @williamdrum9899 3 роки тому +1

      Assembly is still useful for interrupts and other BIOS features of game consoles etc.

    • @allanrichardson3135
      @allanrichardson3135 Рік тому

      There are some compilers that generate assembly code, than you have to run that through an assembler to get the actual machine code. And most modern compilers have the option to print a listing of that assembly code, annotated to refer back to the source code listing, even if they generate object code directly.
      Compilers (and assemblers) also create handy debugging reports (optional) such as a cross reference listing showing where in the source code all the symbols are defined, and where they are used.

  • @felipeescobar2454
    @felipeescobar2454 2 роки тому +9

    Why did this channel stop?

  • @mohamedshaafi9581
    @mohamedshaafi9581 Рік тому +1

    Want to know all from the low level transistors to high level web sites and apps in detail, would love to see a series on that : D

  • @unarei
    @unarei 7 років тому +102

    pretty sure the program at 3:58 would be optimized out by the compiler because x is never used...

    • @frameofessence
      @frameofessence  7 років тому +58

      I thought so too, but gcc didn't do that for some reason.

    • @NomoregoodnamesD8
      @NomoregoodnamesD8 7 років тому +53

      gcc compiled without the -O optimization flag won't perform anything other than minor optimizations that don't cause side-effects, like a variable being optimized away. Compiled with the -O0 flag, no optimizations will be made at all

    • @ashukumara5991
      @ashukumara5991 7 років тому +1

      +
      NoHomeLike 192.168.8.1

    • @lucha0075db
      @lucha0075db 7 років тому

      Nice and clear. At my work place, I have a colleague whose compiler doesn't raise an issue when he leaves variables unused.

    • @Nilslos
      @Nilslos 7 років тому +3

      Wouldn't the compiler throw a syntax error because main is an integer method, but there is no value returned?

  • @bhs_742
    @bhs_742 7 років тому +5

    Thank God You're back...now dont go on long vacations...

  • @binmosa
    @binmosa 5 років тому +44

    Psychologically, if students start learning assembly language first, then they're exposed to high level language, they would grasp the concepts like super quick.

    • @jaredvec5737
      @jaredvec5737 3 роки тому +17

      That’s not really true it’s easier to learn high level stuff first, and then to go under the hood

    • @ggsap
      @ggsap 3 роки тому

      @@jaredvec5737 Yeah

    • @Changecangs
      @Changecangs 3 роки тому +13

      @@jaredvec5737 I think the best way to learn is to start low, but high enough, but not so high. That's why college usually starts with c/c++

    • @mk17173n
      @mk17173n 3 роки тому +1

      The thing about learning high level programming languages before lear ning things under the hood is that you dont understand why certain things dont make logical sense. For example why .1 +.2 is not equal to
      3. This has nothing to do with the high level language itself but rather how math works with binary language.

    • @calebgoodfellowcg
      @calebgoodfellowcg 3 роки тому +3

      Attrition would be way to high. There’s simply too many hurdles to learn low level and less intuitive languages for a beginner. Psychologically, it’s better to be able to start practicing very soon, like with python, rather than have to learn a ton before starting. I agree that starting from the bottom gives a better understanding, but I think beginners need to be able to have an easy way in. If you learn assembly or whatever first that’s good, but I don’t think it should be universal.

  • @brian_kirk
    @brian_kirk 2 роки тому +1

    My day is going much better now that I've seen this video and understand compilers better ;) .. thank you for making this!

  • @mohammad-mahditaghipour4307
    @mohammad-mahditaghipour4307 6 років тому +7

    Could I give you more thumbs up!?
    Well done.

  • @emman1046
    @emman1046 5 років тому +6

    0:47 the time I clicked the like button

  • @Boltkiller96
    @Boltkiller96 Рік тому +3

    in short a compiler is just a translator. i once made a compiler for my minecraft computer.

  • @abhiramreddy9234
    @abhiramreddy9234 3 роки тому

    You spent a lot of time and efforts for this and added a pinch of sarcasm to it, you deserve a subscribe for sure, very well explained sir

  • @Skulltroxx
    @Skulltroxx 5 років тому +120

    I can't even imagine myself ever making a compiler for an programming language!
    That's like an Avenger-level shit

    • @JoshuaKisb
      @JoshuaKisb 5 років тому +5

      am going to make one. still learning. its a huge task but its not very difficult

    • @toniodotcom
      @toniodotcom 5 років тому +9

      Imagine that Bill Gates did so: He wrote the BASIC compiler...

    • @boulahchichenadir9075
      @boulahchichenadir9075 5 років тому +3

      @@JoshuaKisb did any of you make one already ?

    • @JoshuaKisb
      @JoshuaKisb 5 років тому +3

      @@boulahchichenadir9075 yeah sort of

    • @boulahchichenadir9075
      @boulahchichenadir9075 5 років тому +4

      @@JoshuaKisb sort of is still an improvement i geusse

  • @Xhayi
    @Xhayi 3 роки тому +3

    This is just going through my ear and out the other. I’ll probably have to watch it at least 5 times until I understand. 💀

  • @wmpowell8
    @wmpowell8 4 роки тому +4

    9:58 "...when the program is run via an interpreter."
    An interpreter is a program that executes your source code as it reads it. For example, Python uses an interpreter.

    • @64_bit_coding
      @64_bit_coding 2 роки тому +1

      He is saying the bytecode gets interpreted

  • @glq-xz9de
    @glq-xz9de Рік тому

    among of best video about this topic. What
    a loss not seeing new videos on this computer system knowledge.

  • @richireach
    @richireach 5 років тому +21

    when he said "now heres the problem", im like ...dude everything in this video is a problem

  • @enriquep9973
    @enriquep9973 7 років тому +18

    bruh, you went above and beyond the explanations that my professors could never get to. I take my Mr. Robot hat to you...

    • @blakeaustin3892
      @blakeaustin3892 7 років тому

      Enrique P I haven’t been able to watch season 3 of mr. Robot is it good?

    • @ciano5475
      @ciano5475 7 років тому

      Better of season 2.

  • @sebastianelytron8450
    @sebastianelytron8450 7 років тому +701

    Part TedEd, part ViHart, part Exurb1a. Why so few subs?

    • @Niki_0001
      @Niki_0001 7 років тому +21

      The most likely explanation is that this is a fairly new channel.

    • @sebastianelytron8450
      @sebastianelytron8450 7 років тому +16

      More than 3 years fairly new? Look at Jake Paul......

    • @Niki_0001
      @Niki_0001 7 років тому +14

      Of course there are some exceptions, but most channels (especially the science-related ones) that are currently popular have been around for years, many have started all the way back in 2007 or so.
      Those exceptional channels grow so fast largely because they are being shared on other social media services, while most channels grow primarily through UA-cam recommendations and the occasional reference in other channels' comment sections.

    • @Sam_on_YouTube
      @Sam_on_YouTube 7 років тому +10

      It's because he posts very rarely. If be goes to once a week, the channel will get big fast.

    • @sharank
      @sharank 7 років тому

      Because the frequency with which he puts out videos is very low, almost once a year. I would recommend watching other videos. The Quantum computing ones are just too good.

  • @Chris-bn1vt
    @Chris-bn1vt 3 роки тому

    Actually an interesting video. I see a bunch of people who can benefit from it, I see people regularly ask how to make their own programming language, or operating system. They do not know how programming languages work, how they are made, or how computers handle them.