Let's Create a Compiler (Pt.1)

  Переглядів 441,259

Pixeled

Pixeled

9 місяців тому

GitHub Repo: github.com/orosmatthew/hydrog...
References
- Linux Syscalls: chromium.googlesource.com/chr...
- Lexical Analysis: en.wikipedia.org/wiki/Lexical...

КОМЕНТАРІ: 816
@aldairacosta4393
@aldairacosta4393 8 місяців тому
This dude : "I can´t remember how to do this" *Start to create a fucking compiler*
@helker999
@helker999 17 днів тому
😂😂😂
@kubilaykabatas298
@kubilaykabatas298 8 місяців тому
I turned into a man that watches compiler videos for entertainment, props to you for making it so entertaining
@wizardDESTRU
@wizardDESTRU 8 місяців тому
ahaha me too wtf
@Fernando-du5uj
@Fernando-du5uj 8 місяців тому
same
@maelstrom57
@maelstrom57 7 місяців тому
I was looking for something to watch while having dinner and YT recommended this. It'll have to do I guess.
@bArium5656
@bArium5656 7 місяців тому
Prep less programming tutorials are always funny😂
@danielwang4901
@danielwang4901 7 місяців тому
lol same
@wubsyman5796
@wubsyman5796 8 місяців тому
"I'm not gonna use rust because I write memory safe code"... The memory safe code: "Does this have a destructor?... I'm gonna assume it does" (36:30)
@AbsoluteVR
@AbsoluteVR 8 місяців тому
🤣
@budgetarms
@budgetarms 8 місяців тому
It indeed does have it, an automatically created one. But yeah, .... memory safe code, ...
@Sh4dowOfD34th
@Sh4dowOfD34th 8 місяців тому
"I am not gonna use rust because the community is terrible" is a better reason tbh
@AbsoluteVR
@AbsoluteVR 8 місяців тому
@@Sh4dowOfD34th what's so wrong about community tho
@kvsbcsljv
@kvsbcsljv 8 місяців тому
​@@AbsoluteVR I got verbally abused for saying C++ is better
@aldutran
@aldutran 8 місяців тому
No way, Tsoding at home 😮
@jodu
@jodu 8 місяців тому
That was the first thing I thought too
@simeondermaats
@simeondermaats 8 місяців тому
it's the Iosevka that does it for me
@bosch5303
@bosch5303 8 місяців тому
💀
@shiroe0781
@shiroe0781 8 місяців тому
Tsoding without emacs
@djscratchcat474
@djscratchcat474 8 місяців тому
American, windows using Tsoding
@ivandimitrov4410
@ivandimitrov4410 8 місяців тому
"there are two types of programmers - those who have written a compiler and those who haven't" - Terry "The greatest programmer that's ever lived" Davis
@ian562ADF52E
@ian562ADF52E 8 місяців тому
I studied CS in the same halls as that man... nay, that God.
@walterdiaz2003
@walterdiaz2003 8 місяців тому
Would creating a database engine from scratch and sql compliant be considered at that level too?
@doomsday7699
@doomsday7699 8 місяців тому
No, you should also build the operating system and the hardware, transistor by transistor
@mek101whatif7
@mek101whatif7 8 місяців тому
I'm trying😭
@TheInspctrcat
@TheInspctrcat 8 місяців тому
​@@doomsday7699better use lamps
@psycoder-x
@psycoder-x 8 місяців тому
15:53 There is nothing with RDI register, just (in Linux) the exit codes are specified in the range 0-255 (1 byte). The number 420 lost its most significant bytes and became 164.
@sethbuchanan6937
@sethbuchanan6937 8 місяців тому
Here is a visualization of what you are saying | 00000000 | 0000000 | 00000001 | 10100100 | rdi register (420) | | | | 10100100 | return syscall (164) The return syscall only views the first 8 bits of the 64 bit rdi register
@psycoder-x
@psycoder-x 8 місяців тому
@@sethbuchanan6937 Thank you!
@DDlol01
@DDlol01 8 місяців тому
I was looking for this. not high enough^^ have my upvote.
@dtomvan
@dtomvan 8 місяців тому
`man 3 exit` states: "The exit() function causes normal process termination and the least significant byte of status (i.e., status & 0xFF) is returned to the parent." Turns out `420 & 0xFF == 164`.
@TheManchineel
@TheManchineel 8 місяців тому
This, the exit code is char-sized
@woerty123
@woerty123 8 місяців тому
I really appreciate that the sequences, where you are not quite sure are NOT cut out. It's really helpful, to see the thought process in a specific language / context, when you are not sure what to do. For example, which docs to turn to, or how to use intellisense etc. to find the information one needs to solve the problem. Seeing just some finished code explained is not nearly as helpful as this format in my opinion. Very watchable. Thank you!
@ThatNiceDutchGuy
@ThatNiceDutchGuy 8 місяців тому
True! In fact, I think showing the thought process is the most useful part of these type of videos.
@SoreBrain
@SoreBrain 8 місяців тому
I don't think I would have finished the video if it was streamlined and cut down
@Ikxi
@Ikxi 2 місяці тому
and hella fun
@DudeBroVideos
@DudeBroVideos 8 місяців тому
I can tell this channel will go somewhere with commitment, keep up the good work!
@pricesmith3417
@pricesmith3417 8 місяців тому
decided to comment to say the same thing.
@doresearchstopwhining
@doresearchstopwhining 8 місяців тому
totally agree. Maybe a little more editing but I think this guy can explain things well
@happysongs4kyrone
@happysongs4kyrone 8 місяців тому
@@doresearchstopwhining "a little" is very important here, I kind of like the bare-bones explanation. there are definitely some parts that are unnecessary, and maybe some visualization..s? i don't know. but i hope this guy doesn't become into an over-stimulating mess.
@SanketLakhera
@SanketLakhera 8 місяців тому
Subbed just watching this comment within 1 min into video.
@UmerHA
@UmerHA 8 місяців тому
Yes! Please keep going! Looking forward to your next videos
@johnnyserup5500
@johnnyserup5500 8 місяців тому
I like that you are not afraid of showing your mistakes, because that is how you learn - keep creating more
@SamFisk
@SamFisk 8 місяців тому
Mistakes and forgetting easy things. Something I tell newbies is that you don't need to memorise content but rather know that it exists and understand it when you see it again. E.g. what an entry point is, not the exact syntax.
@jahjahhhh
@jahjahhhh 8 місяців тому
You make the learning so much more approachable for people with no previous understanding of compilers or asm. This style of teaching where you build a project live while explaining why you make that decision is so comprehensible. Thank you
@imagist.
@imagist. 8 місяців тому
Humanizing programming
@Merilix2
@Merilix2 Місяць тому
learning from this one is learning the wrong things.
@jahjahhhh
@jahjahhhh Місяць тому
@@Merilix2 elaborate maybe?
@Hellbending
@Hellbending 8 місяців тому
No cap, how do I donate? Never even considered donating to a UKpostsr before but this, but this is the content that’s enjoyable. Not the average hour long video with cuts and edits everywhere, because every time the person has to look something up it’s all secretive and never seen. I got a lot of respect for someone that is probably a little bit nervous because they may be using a language they’re not be 110% comfortable or familiar with, but is well and truly comfortable enough to show what’s going on in their head as they walk through the project and show all the pivots and everything that’s happening. I fucking love it, I got a lot of respect for it and I want to support this kind of “free thought with a goal” style UKposts videos. If you’ve got some way to accept donations, let me know 🙌💪
@pixeled-yt
@pixeled-yt 8 місяців тому
I'm lucky enough to not need the money. I do this for fun. It's the thought that counts, thanks!
@spaghettiking653
@spaghettiking653 8 місяців тому
@@pixeled-yt Legend, and you're humble too!
@NullPointerDereference
@NullPointerDereference 8 місяців тому
You can't donate to smaller channels I think. Kinda sad since usually they are the ones that need it the most.
@Hellbending
@Hellbending 8 місяців тому
@@NullPointerDereference I was happy to PayPal or Patreon lol
@Ozzymand
@Ozzymand 8 місяців тому
This is unironically the exact type of video I wanted to see about this topic. A "Let's build X" from start to finish with really great commentary and explanation on the side. Keep it up man
@theobgshow
@theobgshow 8 місяців тому
I came across this and was compelled to sit all the way through it. I love your delivery, your voice and that you haven't edited anything, leaving in your mistakes. Thank you
@jordixboy
@jordixboy 8 місяців тому
As a self taught software engineer that loves going deep into all the layers this is great introduction! Currently Im building VM's for Chip8 and Gameboy, and writing VMs REALLY helped me to understand how a computer works from a binary level. Feels really genuine that you dont know everything and use Google, really shows how the day to day of a software engineer is.
@coolimdad
@coolimdad 8 місяців тому
Google is our best friend
@rubyciide5542
@rubyciide5542 8 місяців тому
Damn bro i wish i was like u
@jeremymakenzie7443
@jeremymakenzie7443 8 місяців тому
based
@ThaEzioAuditore
@ThaEzioAuditore 4 місяці тому
do you mind sharing a few resources that have helped you in that direction ? I too want to write an emulator
@alexoverstreet
@alexoverstreet 8 місяців тому
This video is so underrated. Very simple and easy to understand to get you started with the world of compiler development! Thanks 🎉🎉🎉
@pricesmith3417
@pricesmith3417 8 місяців тому
I whole-heartedly appreciate how you approach communication, have subscribed, and am looking forward to both learning from and seeing the growth of this channel. Stay grounded!
@katchins
@katchins 8 місяців тому
You made the process of creating a compiler so straightforward and intuitive, I wish I had this video in school during my compiler class!
@urbrighturbright
@urbrighturbright 8 місяців тому
man this is one of the best, most informative videos i've ever seen please continue the series. this one's beyond amazing
@ThEldeRS
@ThEldeRS 8 місяців тому
"This is SO safe" has got to be my favorite quote from this video :D
@starshipx1282
@starshipx1282 8 місяців тому
super cool style with experimentation. Pls keep up. thank you very much : )
@Ikxi
@Ikxi 2 місяці тому
"This is very safe code" "I'll figure it out when it crashes on me" love this guy
@mironbarykin2379
@mironbarykin2379 8 місяців тому
Just stumbled upon this video thanks to UKposts's recommendations, and I'm already amazed by the content. Haven't had a chance to watch it all the way through yet, but it's clear that a subscription is well-deserved. Can't wait to dive into the rest of the video!
@Meknassih
@Meknassih 5 місяців тому
One underated aspect of this kind of videos is that making mistakes is actually good to keep in the video instead of editing it out. Really makes it engaging and relatable as if we're doing it together. Great content !
@OhhBabyATriple
@OhhBabyATriple 8 місяців тому
Excited to see more of this series. Very good energy- keeping it informative and entertaining. Nice work!
@Bobbias
@Bobbias 8 місяців тому
Oh, it's nice to see someone else making long-form coding videos like this. There are far too few people making this sort of content. I really hope you continue.
@cosmicspd
@cosmicspd 8 місяців тому
first video ive seen of yours and i love that you go into detail and try to explain stuff the viewer may not understand, it really helped me understand and enjoy the video more. keep it up!
@impaglg6689
@impaglg6689 7 місяців тому
This is really opening my eyes, thank you man! I hope that you will continue this series, all the best!
@anianii
@anianii Місяць тому
"We can refactor it later" is so relatable
@indierusty
@indierusty 8 місяців тому
Amazing. Never seen a devlog explained this good.
@fmailscammer
@fmailscammer 3 місяці тому
I’ve been missing this kind of content for a while. This is great, keep it up!!
@imbadatcod7208
@imbadatcod7208 8 місяців тому
Man you deserve way more subscribers, I am glad I got this recommended and found you!!
@DevNugget
@DevNugget 8 місяців тому
I love this! I started a project similar to this a while back but never got anywhere. Your ability to explain something is incredible! Can’t wait to see how this goes.
@kenan2386
@kenan2386 8 місяців тому
same
@blkgames1447
@blkgames1447 8 місяців тому
I never thought that I would enjoy watching a 'creating compiler' video. Good content
@spamfilter32
@spamfilter32 6 місяців тому
"It's not good code, but I just wanted to get something working." This is the way to write code. First, make it work. Then, make it optimized.
@dummyhacker3157
@dummyhacker3157 5 місяців тому
the spirit brooooooo!
@Laz3rs
@Laz3rs 6 місяців тому
your explanation style is amazing. non-monotone, slightly fast paced. its exactly like how i would explain something. love it
@tanujjain57
@tanujjain57 8 місяців тому
Liked your way of explaining things and showing everything hand on. Keep up the work waiting for new videos of this series!!
@chikita5110
@chikita5110 8 місяців тому
7:52 "who isn't in 64bits in 2023 ?" *embedded developer* : hold my beer ! (Really good video btw, I just discovered and I subscribed !)
@darrenfinch1935
@darrenfinch1935 7 місяців тому
Great video bro, I’m looking forward to seeing the next one!
@hammadbawara
@hammadbawara 8 місяців тому
Wow, this video is incredible! The way you code is truly impressive. Your approach to understanding how things work reminds me of myself. I often worry about forgetting syntax, but you've reassured me that it's normal to forget syntax.
@jetison333
@jetison333 8 місяців тому
Awesome video! Really hope you continue with this series.
@zzz-hk9zq
@zzz-hk9zq 8 місяців тому
This is some top tier tutorial. You explain everything so well....
@abrudner
@abrudner 8 місяців тому
I’m really looking forward to the next instance of this. Keep it up!
@ruinenlust_
@ruinenlust_ 8 місяців тому
Absolutely love this style! Keep it up!
@LBCreateSpace
@LBCreateSpace 2 місяці тому
This was so helpful to watch. Ty for not cutting out the errors etc. Seeing how you thought through and resolved them really made this much more educational.
@chrismuga
@chrismuga 8 місяців тому
Wow. Yes, this is the kind of content I need in my feed. Good stuff!
@caio-jl6qw
@caio-jl6qw 8 місяців тому
This is not only an educational video, but also an entertaining one
@TronNerd82
@TronNerd82 8 місяців тому
Keep up the good work! You've earned yourself another subscriber.
@caseyzduniak632
@caseyzduniak632 5 місяців тому
Easily one of the best personalities that I've seen in CompSci, keep up the good work!
@Matt23488
@Matt23488 8 місяців тому
> UKpostsr I've never heard of > "Let's Create a Compiler" > "part 1" > over 1hr long *sighs* fine... In all seriousness, this does interest me so I'm glad I got the recommendation for it!
@joshman1019
@joshman1019 7 місяців тому
Thank you so much for doing something actually interesting, as opposed to mind numbing web dev tutorials. I’m a mid level programmer by day and looking to do more low level stuff as a hobby. I really liked that you didn’t cut the video, and did some of your research on the fly. It was like hanging out with a buddy. Fun video!
@FishReporting
@FishReporting 8 місяців тому
This was great! Keep at it!
@LordZedritsch
@LordZedritsch 8 місяців тому
Georgeus video! I would love to follow along with this series
@kuro4841
@kuro4841 8 місяців тому
please keep the one-take style videos like this, it really helps a lot like many other people already stated.
@devbites77
@devbites77 8 місяців тому
Fascinating stuff. Can't wait for the next episodes.
@minimumt3n204
@minimumt3n204 8 місяців тому
Its like youtube knew I have a compiler class coming up soon. Thank you!
@rohitdhas4438
@rohitdhas4438 8 місяців тому
really cool stuff! loved it
@smenigat
@smenigat 5 місяців тому
Sir absolute solid teaching style. Really enjoyable to watch and follow along. Perfect pacing, just the right amount of wit and crisp information. This ist the first video I watched from you, and you already earned a new subscriber. Keep up the amazing work!
@neshkeev
@neshkeev 8 місяців тому
Thank you, it's extremely informative. Keep on!
@hamzameski3297
@hamzameski3297 8 місяців тому
Keep On bro :D
@joshjkk-wt6py
@joshjkk-wt6py 8 місяців тому
I'm also writing my own compiler from scratch, I'll be looking forward to this series!
@benoitb.3679
@benoitb.3679 5 місяців тому
Dude, this was amazing. Thank you so much. To be honest, I had fallen asleep on the sofa and woke up at 4AM. I put this video on almost at random to go to sleep horizontally on an actual bed. I thought "I hope this dude isn't really annoying" but I ended up staying up to watch it. If you did this basically off the cuff, it's brilliant. If not, it's brilliant. I am *super* excited to watch the next parts. You're helping answer a question I've had for years and doing it wonderfully. Have a great weekend!
@sad-cz4wb
@sad-cz4wb 8 місяців тому
Love your work, keep going!
@jollyjerr
@jollyjerr 8 місяців тому
Nice work! This is really great
@epicflails5471
@epicflails5471 6 місяців тому
Your way of explaining things is really entertaining. I hope to see more content in the future!!
@derpenz5376
@derpenz5376 8 місяців тому
Great video. Keep up the good work
@loueymnaja1696
@loueymnaja1696 6 місяців тому
the content is enjoyable thank you man I checked your profile and I think that you have a bright future, keep it up ( I finished all straight to the end )
@shavar67
@shavar67 4 місяці тому
This was very entertaining, now I want to try writing my own compiler for memes. Keep up the good work, I’m subbing for sure.
@soupertonic3579
@soupertonic3579 8 місяців тому
Can't wait for second part!!
@francislalhmuakliana766
@francislalhmuakliana766 8 місяців тому
I actually sit through the whole video. Not gonna lie, I enjoy every single seconds of it and looking forward to the whole series...
@krank3869
@krank3869 8 місяців тому
what a great video honestly, love your way of teaching, didn't get me bored to death and learned a lot in the process
@verbranntenetzhaut
@verbranntenetzhaut 8 місяців тому
Wow amazing! Was actually great to follow along thanks for sharing
@tahahuraibb5833
@tahahuraibb5833 8 місяців тому
Finally! A C++ Video that isn't a tutorial. Please continue this series, it will prove to be extremely useful.
@ya3rub101
@ya3rub101 7 місяців тому
a new hidden gem just found !, keep up... your content is really unique and awesome !!
@coder_rc
@coder_rc 8 місяців тому
I'm all in on the whole series. Let's gooooo
@lifeofsanjai
@lifeofsanjai 8 місяців тому
thanks for making these fun && informative videos mate!
@serhiicho
@serhiicho 6 місяців тому
I’ve never thought that watching a programming tutorial can be entertaining 👍 Thank you for that
@TheInspctrcat
@TheInspctrcat 8 місяців тому
Fun and simple video explaining such complicated theme
@KaizenCodes
@KaizenCodes 8 місяців тому
Very cool video! Hope to see this continue.
@flyorfloat
@flyorfloat 8 місяців тому
I've been thinking of making a big project like a basic game engine without any libraries but I'm not really out of my comfort zone yet lol. This video is great and I've seen your whole channel is pretty good too.
@pixeled-yt
@pixeled-yt 8 місяців тому
I've actually done that too, if you look on my GitHub for "Voxelverse", it's a Minecraft clone written in c++ that uses vulkan directly without any game engine/framework. I might make a video on it in the future
@abhis3kh
@abhis3kh 27 днів тому
Didn't know anything about complier but always wanted to know - watching you explaining is really a awesome feeling - good luck 🎉
@SamSarwat90
@SamSarwat90 6 місяців тому
You have a good vibe dude. Subscribed! Keep it rolling
@akashpoudel
@akashpoudel 8 місяців тому
You've made me understand and connect the dots about how compiling and linking works more than my Compiler Design Course at University which I studied for 6 months 😭
@carbonn7280
@carbonn7280 7 місяців тому
Hey Pixeled, thank you for this video about Compilers. At around 17:00 when dealing with your program exit code, you put 420 into rdi and get 164 in return. That is totally normal and It has nothing to do with registers, that is just how exit(2) works, the exit code is masked with 0xFF so the exit value cannot exceed 255 : " The value status & 0xFF is returned to the parent process as the process's exit status". Cheers ! o/
@joaomachado9105
@joaomachado9105 8 місяців тому
very nice viedo, not just trowing information at you but actually showing how one can find that information! thanks a lot
@shadowdragon7362
@shadowdragon7362 8 місяців тому
Can't wait for part 2!
@onsearchfocus
@onsearchfocus 8 місяців тому
Love the whole unscripted and figuring errors on the fly. Like we all do! Well done.
@twitchizle
@twitchizle 8 місяців тому
novice tsoding
@pixeled-yt
@pixeled-yt 8 місяців тому
I love his content
@mustafazakiassagaf1757
@mustafazakiassagaf1757 8 місяців тому
this have tsoding vibe and i love it. i hope your channel will grow big
@Zenoandturtle
@Zenoandturtle 6 місяців тому
It just came up on my feed and I could not resist. This is what I am talking about! This is the engine room of the ocean liner (metaphorically speaking) Great presentation.
@Matojeje
@Matojeje 8 місяців тому
This was super fun to watch!
@ESS982
@ESS982 6 місяців тому
“Thats right. We have our first Seg fault”. I fucking died.
@serg472
@serg472 Місяць тому
This is a great way of teaching when you are showing your unscripted research, googling, what goes through your head, making and fixing mistakes, starting with a naïve approach, reinventing bicycles, etc. This teaches much more about the subject than just giving a final polished solution.
@mananbhardwaj3976
@mananbhardwaj3976 17 днів тому
this guy keeps giving me Steven he vibes. And please don't stop. don't be discouraged by the number of subs or views just do what you are doing. This is after all god's work
@Meitzi
@Meitzi 8 місяців тому
I really like how you explain things. No need to make anything look more complicated than it is. For learning, it much more efficient to focus relevant parts, not nyances.
@vvshawty
@vvshawty 2 місяці тому
i love that this guy simply woke up and decided he wanted to teach us to create a compiler without even researching or scripting the videos, just pure skills and remembering the syntax on the go. thanks for the content!
@dieter6375
@dieter6375 8 місяців тому
The exit code returned by the kernel is taken modulo 256, so you'll get the remainder when 420 is divided by 256, which is 164.
@SimGunther
@SimGunther 8 місяців тому
Technically the assembler knows the size of each register, so it would just take the 8 bits necessary for the machine code, no modulus needed :)
@dieter6375
@dieter6375 8 місяців тому
Thanks for the explanation. I think this is in line with what Pixeled said in the video.
@victorshilin9360
@victorshilin9360 8 місяців тому
The important difference is that the value 420 is never truncated by the assembler itself, nor the limitation of the rdi register. The 64-bit value gets passed as is to the kernel, and the exit code is indeed taken by modulo 256.
@yagami1160
@yagami1160 8 місяців тому
i think it just takes dl register not rdi, you can use rdi but linux syscall is still using the lowest part of this register in terms of compatability I suppose
@markwebcraft
@markwebcraft 8 місяців тому
This is exactly my programming style LOL. I love this, instant subscribe. Keep up the good videos.
@_Karlsson
@_Karlsson 8 місяців тому
I love this content! Thanks!
@nothing-tj9eh
@nothing-tj9eh 8 місяців тому
keep going , thanks youtube for recommending me this gem
@florianvanbondoc3539
@florianvanbondoc3539 8 місяців тому
the most relatable think is when you wrestle with the c++ language to get it to do what you want
Growing a Parse Tree (Compiler Pt.2)
1:05:48
Pixeled
Переглядів 66 тис.
X86 Needs To Die
1:09:15
ThePrimeTime
Переглядів 329 тис.
Excited Dog Zooms In and Out of Sliding Door!
00:18
The Pet Collective
Переглядів 11 млн
Этого От Него Никто Не Ожидал 😂
00:19
Глеб Рандалайнен
Переглядів 10 млн
I Designed My Own 16-bit CPU
15:46
AstroSam
Переглядів 1,8 млн
So You Think You Know Git - FOSDEM 2024
47:00
GitButler
Переглядів 904 тис.
#1 How to Build a Virtual Machine from Scratch
31:09
Philip Bohun
Переглядів 58 тис.
Comparing C to machine language
10:02
Ben Eater
Переглядів 5 млн
Best OS for programming? Mac vs Windows vs Linux debate settled
8:41
Making Simple Windows Driver in C
7:26
Nir Lichtman
Переглядів 267 тис.
I Made My Own Programming Language
10:20
CodeNoodles
Переглядів 75 тис.
What does larger scale software development look like?
24:15
Web Dev Cody
Переглядів 1,2 млн
I'm a Mess, so I'm Making My Own File Organizer [TagStudio]
23:32
CyanVoxel
Переглядів 254 тис.
The purest coding style, where bugs are near impossible
10:25
Coderized
Переглядів 819 тис.
СЛОМАЛСЯ ПК ЗА 2000$🤬
0:59
Корнеич
Переглядів 2 млн
Радиоприемник из фольги, стаканчика и светодиода с батарейкой?
1:00
🤏 САМЫЙ ТОНКИЙ гаджет #Apple! 🍏
0:29
Яблочный Маньяк
Переглядів 616 тис.