Make YOUR OWN Programming Language - EP 1 - Lexer

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

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

  • @billclinton4913
    @billclinton4913 4 года назад +1208

    Imagine running an interpreted language over an Interpreted language.

    • @CodePulse
      @CodePulse  4 года назад +173

      Haha yes

    • @pluscrafter7117
      @pluscrafter7117 4 года назад +138

      Many compilers do that. I think it's called bootstraping and there is a python interpreter that is programmed in python (pypy).

    • @ramakanthrama8578
      @ramakanthrama8578 4 года назад +13

      @@CodePulse Lol

    • @e.6z1
      @e.6z1 4 года назад +6

      @@universenerdd YOU are dumb, Pluscrafter NEVER said Python was compiled and at least Pluscrafter knows the difference between their, they're and there

    • @universenerdd
      @universenerdd 4 года назад +4

      @@e.6z1 okay, so what i meant was interpreters are not compilers, if you look at the original comment it makes sence, and i do know the difference, if that was what you were implying

  • @finndotbin
    @finndotbin 3 года назад +230

    Me: *blinks*
    Him: Now we are done let’s code the entire f-ing universe
    edit: dang this was a year ago when I didn't know how to code and now I feel bad for commenting this. Amazing video

    • @dittomario
      @dittomario 3 года назад

      @Yousef GG! sdhgasuydgsduygaysudgyasdgyaudhahdyaghyiuasdgyasgy!!!!

    • @dominiktoser8531
      @dominiktoser8531 3 года назад +2

      thats when you blink very slow

    • @dominiktoser8531
      @dominiktoser8531 3 года назад +2

      @Yousef GG! LANGUAGE

    • @soupnoodles
      @soupnoodles 3 года назад

      @@dominiktoser8531 dafaq

    • @nitro-ww6sk
      @nitro-ww6sk 3 года назад

      He speaks quite fast, this causes some times different words to be pronoucned wrong. For example he means to say LEXER and i hear LECTURE or LETUCE.

  • @shouryshinde4145
    @shouryshinde4145 3 года назад +48

    10:35: "generates all the tokens correctly..."
    Me: *runs program*
    output: [ ]

    • @hasanekmen7873
      @hasanekmen7873 3 года назад +4

      Input : 9 * 9
      Output :
      Input : d
      Output : Illagel Char : d
      Input : d * 9
      Output :

    • @gamingforever65
      @gamingforever65 6 месяцев назад +1

      I have the same problem is there any fix

    • @LavenderCat175
      @LavenderCat175 5 месяцев назад +1

      @@gamingforever65 Yes please encountering the same issues

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

      It should be at the tokens list, the [] should have a space in between

  • @HT79
    @HT79 3 года назад +36

    It took RUclips 2 years to recommend this amazing tutorial....
    Really well done mate! It's inspired me enough to dabble on my own version.
    Not sure about an entire language but could be really useful for making CLIs.

    • @CodePulse
      @CodePulse  3 года назад +8

      Thanks! Yes definitely useful for CLIs, and also for parsing your own custom data file format.

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

      And it took RUclips 5 years to recommend it to me, lol.

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

      @@Markadown me to

  • @camclarke762
    @camclarke762 3 года назад +9

    Great tutorial mate, but can we just take a moment to gaze in awe at this man's typing speed and code cleanliness like sheesh

  • @universenerdd
    @universenerdd 4 года назад +19

    finally, a version of BASIC that is actually basic

    • @yaman09
      @yaman09 Год назад

      how help please

  • @Jerraf2p0
    @Jerraf2p0 Год назад +10

    I can’t believe this dude wrote a full lexer without any modules. Great job

  • @albertlevins9191
    @albertlevins9191 2 года назад +27

    Dude, thanks. You don't know me, but I am a solo game designer with a solid "B" in art skills, but a "C-" in programming. I have been trying to implement a basic like script interpreter in a python program I am making. Been trying for several years to get it right. This tutorial is EXACTLY what I needed. Thanks again.

  • @Drqonic
    @Drqonic 4 года назад +159

    This is amazing to be honest. I've never seen anyone else code as cleanly as you.
    Do you think you could make a video on making a compiler next time?

    • @CodePulse
      @CodePulse  4 года назад +42

      Thanks! I do plan on doing that soon. The later episodes in this series have gotten more messy and complicated, and I'm planning on redoing this series first. I also am doing a simpler 4 part series on making a math interpreter before that. So hopefully I get around to doing a compiler soon :)

    • @Drqonic
      @Drqonic 4 года назад +9

      @@CodePulse Thanks for the quick reply! I look forward to future videos :)

    • @TuckerTheMandolinist
      @TuckerTheMandolinist 2 года назад +4

      @@CodePulse a compiler would be AMAZING!

    • @sacredgeometry
      @sacredgeometry 2 года назад +2

      This isn't cleanly written. There is lots room for abstraction here.

    • @10F2C
      @10F2C Год назад

      You mean compiler that actually writes machine code?

  • @holomode1357
    @holomode1357 4 года назад +66

    "We can multiply numbers": 1 + 2
    Python default calculation: 1 + 2

  • @MirrorsEdgeGamer01
    @MirrorsEdgeGamer01 5 лет назад +75

    Why did you make an *_as_string_* method not just use the built in Python's *___str___* method?

    • @CodePulse
      @CodePulse  5 лет назад +44

      I hadn't really used Python much in ages so never though of it then. I realized a while later but never bothered to change it.

    • @jaysonlana9147
      @jaysonlana9147 3 года назад +1

      @@CodePulse sorry im new to python and i recieve ths error but i dont have str in my code
      AttributeError: 'str' object has no attribute 'fn'

    • @anshbarhate2791
      @anshbarhate2791 2 года назад

      @@jaysonlana9147 If you still have that issue, it means somewhere you've typed self.fn instead of ln. Probably in def copy()

    • @thelavagod
      @thelavagod 5 дней назад

      ​@@anshbarhate2791the comment was 3 years ago

  • @chandlercoates7637
    @chandlercoates7637 3 года назад +199

    now create another language with that basic language you're creating

    • @dimitar.bogdanov
      @dimitar.bogdanov 3 года назад +36

      Funnily enough, when you are able to do that, you can call your language Turing-complete (it can recreate itself, in itself), and is mostly a good-enough programming language for most basic tasks.

    • @hacklordmonster8780
      @hacklordmonster8780 3 года назад +14

      Good luck with the speed of it

    • @0x1EGEN
      @0x1EGEN 3 года назад +2

      @@dimitar.bogdanov You mean "self-hosting".

    • @dimitar.bogdanov
      @dimitar.bogdanov 3 года назад +5

      ​@@0x1EGEN Your original reply:
      "You mean "self-hosting", turing complete just means it can theoretically compute anything. en.wikipedia.org/wiki/Self-hosting_(compilers)"
      An answer: no. A self-hosting compiler can compile itself, yes, but a language can be interpreted, and you could still make another language with it.
      Being Turing-complete means that it can simulate a Turing-machine. Taken from Wikipedia:
      "For example, an imperative language is Turing-complete if it has conditional branching (e.g., "if" and "goto" statements, or a "branch if zero" instruction; see one-instruction set computer) and the ability to change an arbitrary amount of memory (e.g., the ability to maintain an arbitrary number of data items)."
      That means, that as long as you have if statements and some way to loop (be it goto statements or a for loop), your language is turning complete.

    • @elliotk9291
      @elliotk9291 3 года назад

      I'm actually doing that right now

  • @arthur_p_dent4282
    @arthur_p_dent4282 2 года назад +10

    This is great. Been working my way through Nand 2 Tetris on my own. I made it through the hardware portion all right but once it got to writing the assembler I felt completely lost. Hoping this will give me the nudge I need, so far I'm loving the content and can't wait to finish.

  • @silkcut5561
    @silkcut5561 4 года назад +7

    Awesome! Thanks to all channels which shows this topic. I always wondered how this works :) Thanks to all!

  • @logangraham2956
    @logangraham2956 3 года назад +4

    oh your lexer is so nice . it actually handles problems.
    my lexer just advances over them .
    so once/if mine ever becomes a compiler instead of a interpreter.
    literally everything will compile but whether or not it will run is another story entirely.

  • @sourishsharma5745
    @sourishsharma5745 3 года назад +8

    This channel is underrated...

  • @Markkkkkkkkkkkkkkkkk
    @Markkkkkkkkkkkkkkkkk 4 года назад +78

    Nice. I'm 15 and thinking of creating one in the future.
    I might name it : Pascala
    Pascala's name is derived from Pascal + Scala

    • @bmax5928
      @bmax5928 3 года назад +6

      ill take that m8

    • @dimitar.bogdanov
      @dimitar.bogdanov 3 года назад +28

      Don't share your project names with strangers until you've created something. Bad, bad idea

    • @MrDgf97
      @MrDgf97 3 года назад +4

      I’m always so envious of seeing young people with that drive. When I was 15 all I cared about was playing videogames and being cool, such useless things

    • @danielshah3494
      @danielshah3494 3 года назад

      Sounds gay af tbh

    • @martilix4470
      @martilix4470 3 года назад +2

      @@dimitar.bogdanov thats the stupidest thing I’ve ever heard. The name, or even the idea don’t matter, the execution does

  • @MrKoshak3
    @MrKoshak3 5 лет назад +4

    You're just a god, I barely understand English, but I understand you more than compatriots

    • @CodePulse
      @CodePulse  5 лет назад

      That's great to hear! Thanks

  • @CyberCoder
    @CyberCoder 2 года назад +2

    I've got like 3 yrs of experience in C#, but only like 3 months in Python. Probably not this I should do with only 3 months of exp. but I strongly believe that my C# skills will help. Amazing tutorial ngl

  • @sakul_the_one4821
    @sakul_the_one4821 3 года назад +4

    Really thx for this Toutorial! This was my first Toutorial that I used for Python ( If I don’t mention the Python Code in my Java File and 8 Videos of Python but I didn’t test them...) So I learned here not just how to make a programming language, I learned even Python with this Toutorial! Really thx for it!

  • @cannedsoup4622
    @cannedsoup4622 2 года назад +10

    I thought that the output of "1.2+1" would be "float: 1.2 | plus | int: 1", however I've noticed that it skips the plus sign entirely.
    It does that for every first character behind a number. I checked my code (I translated your code into lua and thought I messed something up) and then was suprised to see that indeed, it skips the first character that comes after any number in the make_number function.
    There is an easy fix to it tho! After the loop in the make_number function you need to decrement the self.pos by 1. (self.pos -= 1) After doing that it now correctfully translate the input "1.2+1" to "float: 1.2 | plus | int:1" instead of the output given above.
    I do not know if the same issue has happened to anyone else before, but if it did it would be nice if you could pin this message, it was not as easy to track down as it might sound from above.
    Nice video nontheless! It helped me out a lot!

    • @UnladenSwallow227
      @UnladenSwallow227 2 года назад +1

      Are you sure you didn't call self.advance() in the while loop of make_tokens() as well, after tokens.append(self.make_number())? That would result in calling self.advance() twice, which creates the issue you ran into. I have the code in the video and I was not able to reproduce your issue at all.

    • @NA-jy4zd
      @NA-jy4zd 2 года назад +1

      The problem is just you. There is something wrong with your code. You can copy the ep1 code from github to confirm that you did everything correctly.

  • @parkeranderson23
    @parkeranderson23 4 года назад +5

    wow this is genuinely quality content 10/10

  • @Apoorvpandey
    @Apoorvpandey 2 года назад +1

    The error output looks so neat!
    Copilot suggested me how to get output like this:
    calc> 12+23.3+g
    Illegal Character: g
    File , line 1
    12+23.3+g
    ^
    Error representation should be:
    result = f'{self.name}: {self.details}'
    result += f'
    File {self.pos_start.filename}, line {self.pos_start.ln + 1}'
    line = self.pos_start.filetext[:self.pos_start.col+1]
    result += f'
    {line}'
    result += '
    ' + ' ' * (self.pos_start.col) + '^'
    return result

  • @ga_per
    @ga_per 3 года назад +8

    WTF youtube's algorithm is already in 2080, I was thinking about creating a language yesterday and now I get this in my recommended

  • @creepersaur
    @creepersaur 2 года назад +2

    I think I got something wrong. I followed the tutorial, but what happens when I do 1 + 1 is strange.
    basic > 1 + 1
    [, , ]
    NEVERMIND I forgot to put __ after __repr

  • @abheygupta2332
    @abheygupta2332 3 года назад +13

    We are making a programming language with python which is an easy language
    just imagine how the first programming would have been created

    • @supersani21
      @supersani21 3 года назад +4

      Well we do use C++ for Python which derives itself from assembly languages which derives itself from machine language

    • @kartikeykushwaha3622
      @kartikeykushwaha3622 3 года назад +4

      @@supersani21 I think python's written in C.

    • @GDPlainA
      @GDPlainA 3 года назад

      @@kartikeykushwaha3622 C++ can run C code btw so its not really a big difference.

    • @mcds6307
      @mcds6307 2 года назад +2

      @@GDPlainA It is. C++ is not C.

    • @engelsteinberg593
      @engelsteinberg593 2 года назад

      Assembly, and assembly was created with hex. Altrogut assembly is easy created.

  • @deckermv7530
    @deckermv7530 2 года назад +3

    Absolutely great job for a talented mad man like you. Looks like this series is gonna be sick. Thanks for sharing this! Gonna learn a lot from this

  • @nathanellis7819
    @nathanellis7819 4 года назад +19

    THIS WAS EXCELLENT! WELL DONE MATE!!

  • @thinkmovies4565
    @thinkmovies4565 5 лет назад +6

    Awesome, I know have a fully working lexer and I am working on a programming language known as jublee. Which already has the basic features of addition , sub , mul and div.

    • @fenderat1713
      @fenderat1713 4 года назад

      link it and ill try it out anbd give my own feedback

  • @therandomguy1701
    @therandomguy1701 3 года назад +2

    Finally, my next project to test my 1 month of programming experience!

  • @justcallmenoah5743
    @justcallmenoah5743 3 года назад +1

    Bro you are a genius! I came for the custom OS project but I'm gonna have to watch your entire back catalogue!

    • @CodePulse
      @CodePulse  3 года назад

      Thanks! Hope this series is as good as my operating system one.

    • @justcallmenoah5743
      @justcallmenoah5743 3 года назад

      @@CodePulse im excited to finish this one quickly, and excited to see where the operating system goes!

  • @perinoveriza1658
    @perinoveriza1658 5 лет назад +4

    Im enjoy with your video...great teaching 👍👍👍❤️❤️

  • @ouioui2793
    @ouioui2793 4 года назад +16

    Im creating a language called Neptune, 'cuz it is my favorite planet. I want to make it the most easy to understand programming language using a lot of simple keywords

    • @CodePulse
      @CodePulse  4 года назад +2

      Good luck with it!

    • @ahmedzarin2247
      @ahmedzarin2247 3 года назад

      @MoolsDogTwo hey me too!

    • @Tashmimanam
      @Tashmimanam 12 дней назад

      Make sure to make it beautiful bcuz Neptune is a beautiful planet 😁👍

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

    I always wanted to make my own programming language. And I find perfect tutorial from 2018. Thank you!

  • @MrRyanroberson1
    @MrRyanroberson1 3 года назад +1

    7:11 really really important flaw: the while loop will keep appending same char to the string indefinitely once it starts. there's nothing to advance it. ok you caught this at 10:31, this took me a couple watches to see if you put that somewhere in the video

  • @muzafferckay2609
    @muzafferckay2609 2 года назад +1

    You dont have to type tons of 'elif' use a dict to map symbol to its value

  • @greasymushroom112
    @greasymushroom112 3 года назад +5

    I’m making a language called quil (yes I know there is only one “L”) this helped a lot

    • @mavdotj
      @mavdotj 3 года назад

      What a coincidence (look at my name)

  • @kavyaagrawal2013
    @kavyaagrawal2013 3 года назад +4

    Thank you so much for this tutorial! Very well explained ;)
    I'll try making one in javascript!
    Thanks again!

  • @emilsayahi1
    @emilsayahi1 4 года назад +2

    You're fairly damn good at explaining things.

  • @HalfAsleepSam
    @HalfAsleepSam Год назад

    This man types at the speed of sound, I havent even finished typing class Token: and the video is already over like holy fuck

  • @jonoisedev
    @jonoisedev 3 года назад

    Oh, man! I could watch this all day long.

  • @elquelobetodo
    @elquelobetodo 3 года назад +7

    my teacher let me make an a compilator for my exam, i want to see his face when he try to prove the nekolenguage

  • @Cowboy8625
    @Cowboy8625 5 лет назад +5

    Dude! Great video!!!!

    • @CodePulse
      @CodePulse  5 лет назад +1

      Thanks

    • @Cowboy8625
      @Cowboy8625 5 лет назад +2

      CodePulse yeah man! You write some super clean code! I’m trying to make my own language just for fun and wow this has help a lot. It’s really really fun to! Keep it up man!!

  • @somethingwithtech
    @somethingwithtech 2 года назад

    i ran into a problem while coding and i literally searched for 45min befor i realised that i miss spelled a variable.
    Btw great Video thanks ;)

  • @vladusa
    @vladusa 2 года назад +1

    This video reminds me that there is always a better programmer out there.

  • @ScienceCodeCreations
    @ScienceCodeCreations 8 месяцев назад +1

    Good tutorial! I tried this once before when I was still pretty new at python and I didn't understand it so I gave up after the first two vids. But, now that I'm more familiar with the syntax of python, I can actually understand everything in this tutorial.

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

      That's awesome to hear!

  • @inserteunnombreapropiado9079
    @inserteunnombreapropiado9079 3 года назад +2

    Now try to make one with assembly.

  • @lasannishshanka4850
    @lasannishshanka4850 4 года назад +1

    Sorry CodePulse, I have some questions.. :)
    1. Python is a language that is a bit slow compared to other lnguages. So can another language created using python be faster than Python ?
    2. Does this tutorial series include everything in BASIC Language ?
    3. What are the basics of the Programmig Language ?
    Many thanks to the tutorials you created ^)

    • @CodePulse
      @CodePulse  4 года назад +3

      1. A language created in Python can be faster if (a) it is compiled to machine code, or (b) it is compiled to byte-code to be interpreted by some other application such as JVM (Java virtual machine), or WASM (WebAssembly to allow it to run on the web).
      2. No, as the series progresses the language differs more from the basic language.
      3. I'm not sure what you are asking here.
      Your welcome :)

  • @IsaacHoweiner
    @IsaacHoweiner 4 года назад +3

    This is something I can work with. I love your accent

  • @andreweathan
    @andreweathan 4 года назад +5

    thanks for the tutorial, you have good programming skills

  • @oldmovies3776
    @oldmovies3776 8 месяцев назад +1

    How does the computer know what is basic

  • @unh0lys0da16
    @unh0lys0da16 4 года назад +1

    To speed things up you might want to set self.length to len(text) in __init__, else you change the complexity of advance to O(n) where n is the length of the text.

    • @CodePulse
      @CodePulse  4 года назад

      Are you saying the Python `len` function is O(n)?

    • @unh0lys0da16
      @unh0lys0da16 4 года назад +1

      @@CodePulse aaah I've done some tests and it seems to be O(1), apparantly Python builtins (Dict, Lists etc) keep track of the size internally.

    • @CodePulse
      @CodePulse  4 года назад

      @@unh0lys0da16 Makes sense, that's what I assumed. Different from C's strlen function which is O(n)

  • @bigbabby1232
    @bigbabby1232 4 года назад +1

    how did you get it so that when you click new terminal it says just terminal> and not the path to the folder you are working in?
    Also I copied everything from github and type in the terminal 'python3 shell.py' nothing happens!
    Edit: I have the Python extention for VScode in version 2018.3.0

    • @CodePulse
      @CodePulse  4 года назад +1

      On windows you can use the "prompt" command to change what text shows up.
      If you are using windows 10, it preinstalls a python3 program, but this isn't the real python, rather a link to the microsoft store to install python. This could be why nothing happens. Try just run "python" instead of "python3", otherwise you may have to update your path.

    • @bigbabby1232
      @bigbabby1232 4 года назад

      @@CodePulse thanks, just changing pythin3 to python sorted it. (:

  • @ihorandreienko9648
    @ihorandreienko9648 4 года назад +4

    you're amazing!! Great tutorial

  • @hartsaxena371
    @hartsaxena371 4 года назад +1

    This is... actually really good.

  • @yeahuh4128
    @yeahuh4128 3 года назад +5

    I've been working on the class Error so long, now I can't pronounce the word 'error'

  • @rodrigopennacchi2451
    @rodrigopennacchi2451 7 месяцев назад

    Thank you for sharing this very clear and usefull material! it is amazing, congratilations!

  • @danielmunch2219
    @danielmunch2219 5 лет назад +28

    Nice video. But please just don't copy the same thing HowCode does...

    • @CodePulse
      @CodePulse  5 лет назад +21

      Thanks. My aim for this series is to improve on HowCode's tutorials, as his original series didn't use proper techniques, and he rushed his newer series in my opinion. I also plan on making the series much longer and add a lot more features that are missing from HowCode's tutorials (for example functions with arguments).

    • @danielmunch2219
      @danielmunch2219 5 лет назад +3

      Okay. That's fine. I thought you did it because you didn't know what to do. But cool.

    • @CodePulse
      @CodePulse  5 лет назад +1

      @Najmul hossain As in the minimax algorithm in game theory? It's not really the type of thing that I had planned for the channel, and there seems to be plenty of explanations out there already. But if enough people wanted it, I would definitely consider it.

    • @beautifulmind684
      @beautifulmind684 4 года назад

      The author @you at the final episode! @@

    • @jonathanvanderwal7265
      @jonathanvanderwal7265 4 года назад

      what is the commmand

  • @DragoniteBrian
    @DragoniteBrian 3 года назад +1

    random quesion:what does self mean and why did you use it

  • @jesnilinke5016
    @jesnilinke5016 3 года назад +2

    If I did this in a different Programming language, do I follow these steps or should I translate it?

    • @reinhold1616
      @reinhold1616 2 года назад

      well you cant run python in an interpreter/compiler that is not for python ;)

  • @noam190
    @noam190 4 года назад +2

    doesnt work without spaces
    EDIT: fixed it by removing self.advance in if self.current_char in DIGITS

  • @TuckerTheMandolinist
    @TuckerTheMandolinist 2 года назад

    I am very exited to start creating my own programming language! I bet this will be very helpfull!

    • @CodePulse
      @CodePulse  2 года назад +3

      I hope so, good luck

  • @kanuos
    @kanuos 2 года назад

    Thank you so much for making this. Subscribed!

  • @redshed3591
    @redshed3591 2 года назад

    0:00 Hello everyone... this is YOUR daily dose of internet

  • @minyakonga8897
    @minyakonga8897 2 года назад

    A lexer is responsable turn source code into tokens, these tokens are identifiers, keywords, operators, delimiters and literals.

  • @just_kidding_kid
    @just_kidding_kid 4 года назад +2

    Much much thanks for your videos! It helped me a lot while other tutorials and series did not

  • @it1shka
    @it1shka 4 года назад

    seems difficult but i want to get into it ;) for the first time watching i just rewrite your code. When you began to improve Error class my brains just broke. I think i will watch this vid till I understand it enough good.
    At all, good tutorials, one of the best ive found. Unfortunately, in Russian programming segment there is no tutors how to create your own compiler/interpreter. But it seems like i found an amazing one in English
    sorry for broken English

    • @CodePulse
      @CodePulse  4 года назад

      Thank's for your comment! Your English is not bad. I think I overcomplicated this series, and I intend to simply things in my future tutorials :) Good luck!

  • @learnforbest-4500
    @learnforbest-4500 4 года назад +2

    thanks for your tutorial @CodePulse sir

  • @peppidesu
    @peppidesu 3 года назад +3

    3:34 line 35 should be self.text[self.pos], not self.text[pos]

    • @CodePulse
      @CodePulse  3 года назад

      Thanks for pointing that out!

  • @dugtheartofbeingone2425
    @dugtheartofbeingone2425 2 года назад

    Seems like the easiest language to understand out of the few I've seen! How did you come across it?

  • @spencergates1786
    @spencergates1786 3 года назад +2

    i get the error 'import nide' (nide is my language) at the start of the shell file.... no idea why. I even checked the github and it all was the same, im using python 3.9
    can anyone help please!
    edit: i also tried renaming everything to what he used and same result

    • @slimestaff1
      @slimestaff1 16 дней назад

      Are they in the same file folder?
      Yeah, I know kinda late

  • @udaynj
    @udaynj 8 месяцев назад

    This is amazing!

  • @HyperBassYT
    @HyperBassYT 2 года назад

    I like how you need a programming language to make a programming language

  • @shahzaibhassan2777
    @shahzaibhassan2777 Год назад

    For those worrying their language might be slow, Mojo is coming, No need to worry!

  • @GeneralN0va
    @GeneralN0va 3 года назад

    Imagine making a programming language built on a programming language, that's also built on a programming language

    • @helpme2999
      @helpme2999 3 года назад

      That's Julia for you.

  • @RadiantCorium
    @RadiantCorium 3 года назад +1

    when i try to use floats, it says "Illegal Character: '.'"

    • @CodePulse
      @CodePulse  3 года назад +1

      You probably have a mistake in your code

    • @hotdog9259
      @hotdog9259 3 года назад

      Did you get it fixed? I have the same issue.

  • @miniappletheapple
    @miniappletheapple 3 года назад

    a year ago i wanted to create a programming language but i don't even know what is class in python,but now i can code in rust,understanding OOP and little bit of data structure and algorithm

  • @Teog1992
    @Teog1992 4 года назад

    great video . I wanted to ask :
    1. Should keywords like *if* , *for* , *function* are implemented at this stage , I mean in the lexer?
    2.Do we also implement a comment elimination strategy , like we do with spaces , in this phase?

    • @CodePulse
      @CodePulse  4 года назад +1

      1. It's up to you, I prefer to do it in the lexer as seen in one of my later tutorials.
      2. Yes that sounds right

  • @ajithkumarnair7542
    @ajithkumarnair7542 3 года назад +1

    Please help me, it is showing that module basic has no attribute run, if i try to use 'from basic import run' ,it shows cannot import run from basic

  • @developerethan4593
    @developerethan4593 3 года назад +1

    Prepare for the OAK programming language people!

  • @keyl308
    @keyl308 Год назад

    I dont really understand why you used a while loop for the lexer. A for-loop would have made it much easier, because you wouldnt need the advance()-function, cleaning up the code. Additionally it would have made the code execution much faster, which is an important factor if you write an intepreted language inside of an intepreted language

    • @jimmlmao
      @jimmlmao Год назад

      While loops are faster than for loops

  • @Bl0xxy
    @Bl0xxy 8 месяцев назад

    I personally would've used enums for the token system, I'll just try to follow along with those, hope it isn't too much of a struggle (I'm using C++, and yes I know python doesn't have them builtin but there is a builtin lib for that)

  • @wolfieboy09
    @wolfieboy09 Год назад +1

    I know this video is 4 years old, I will just say that you don't have to do
    "'" + char + "'"
    instead, you can do f"'{char}'"

  • @madhank93
    @madhank93 3 года назад

    This is so cool ...❤️

  • @roku1892
    @roku1892 4 года назад +3

    Thanks sir!
    I can make my own programming language

  • @serverapiyoutube5490
    @serverapiyoutube5490 5 лет назад +4

    Please more

    • @CodePulse
      @CodePulse  5 лет назад +1

      I'm half way through making the next video, so I hope to have it out by Monday.

  • @albithesecond3921
    @albithesecond3921 2 года назад

    You are the best!

  • @sa-hq8jk
    @sa-hq8jk 2 года назад +1

    2 years ago exactly, today

  • @govsensei
    @govsensei 3 года назад

    Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases. Even though i already installed python3 and the extension

  • @pikleman5880
    @pikleman5880 4 года назад +1

    The code does not work, whenever I run it, I enter the expression into the prompt and then the prompt keeps staying the same, like if you hit enter, nothing happens, all the cursor does is go down one line

    • @CodePulse
      @CodePulse  4 года назад

      Not sure why that might be happening but you can compare your code to mine here: github.com/davidcallanan/py-myopl-code

    • @pikleman5880
      @pikleman5880 4 года назад

      @@CodePulse Thank you

    • @pikleman5880
      @pikleman5880 3 года назад

      @@CodePulse Also, Do you know how I could add more builtin fuctions, like a generic way to do so

  • @universenerdd
    @universenerdd 4 года назад +1

    i can just imagine teachers using this language in math class, okay students, find the answer to 435*1654, i can't figure it out, USE YOU'RE BASIC TO FIGURE IT OUT

  • @reddragonroblox9344
    @reddragonroblox9344 3 года назад +1

    Me 40 seconds in:
    i can do this
    Me now:
    that got complicated really quick.y

    • @CodePulse
      @CodePulse  3 года назад

      Sorry... Maybe this series is a better place to start: ruclips.net/video/88lmIMHhYNs/видео.html

  • @imyashkale
    @imyashkale 4 года назад +1

    Thank you. please upload more content

  • @mohammad4388
    @mohammad4388 4 года назад +1

    I don't get the part of where it states whether the no. is a integer or not

    • @CodePulse
      @CodePulse  4 года назад

      If the number of dots/decimal points in the number is 0, then it can be an integer, otherwise it needs to be a float.

  • @zimlit
    @zimlit 3 года назад

    Your voice is very soothing

  • @Dustymarker9489
    @Dustymarker9489 7 месяцев назад +1

    When I put a space in between my numbers it errors how do I fix that, I looked back through the video and couldnt find anything I did wrong so please help.

    • @Dustymarker9489
      @Dustymarker9489 7 месяцев назад

      Never midn I fixed it by adding it to the character list under Lexer and doesnt seem to have broken anything and works fine

  • @gign_9891
    @gign_9891 2 года назад

    if i knew how to make a programming language, I would call it OceanCode and code for making text with another font like hello world is
    anyways my favorite font is indeed consolas

  • @itsalerio2859
    @itsalerio2859 3 года назад

    I can make my special coding lang now ! Wow

  • @D0T__
    @D0T__ 3 года назад +1

    Wow make a promgamming language!

  • @jd-dev
    @jd-dev 2 года назад

    Super useful !! Thanks you !