This is such a gem of a channel and I look forward to seeing more of your content. Also thanks for the kind words regarding my series. Sorry it was finished so abruptly. I’m planning some big stuff coming soon regarding compiler theory.
@ozzyCheshire-ci3bf11 ай бұрын
yoo hi
@AndrieMC11 ай бұрын
you're alive?
@krauterfrischkase893911 ай бұрын
So I can finally write spaghetti code and nobody can complain?
@CodeNoodles11 ай бұрын
yes
@matt8ress11 ай бұрын
fancaders will absolutely love this
@hexxt_11 ай бұрын
@@CodeNoodles does this mean you accept that noodles are spaghetti
@Notabot-211211 ай бұрын
@@hexxt_ I thought spaghetti was a type of noodle. So not all noodles are spaghetti, but all spaghetti are noodles. (Or, I guess spaghetti is a type of pasta, and then pasta is a type of noodle)
@lemonindiallc721011 ай бұрын
@@CodeNoodlesBro I downloaded yr language but I mnt understanding its not running it is showing many errors like many programs r missing like msvcp1400.dll vcruntime1400.dill ucrtbased.dll etc can u plz tell how to rectify this
@sinom11 ай бұрын
If you want to write a compiled language but don't want to learn about optimization, you can instead write only a compiler frontend that compiles into an intermediate representation and then let a compiler backend like LLVM handle the optimization and machine code generation for you.
@Zullfix11 ай бұрын
I was thinking exactly this as well
@redstonewizard0811 ай бұрын
I used cranelift when I made my language (in rust) and it wasn't too hard, you just gotta get the hang of it
@KaiHenningsen11 ай бұрын
That, or output, for example, C source code which can then be compiled by a C compiler. Bonus: your language is immediately able to talk to existing C code.
@Azoraqua11 ай бұрын
Might as well go a step further and use a parser generator (Bit of a joke, after all, this project is mostly for entertainment and education).
@vibaj1610 ай бұрын
Or you can make your own virtual computer architecture and compile to machine code for that.
@AdrianHereToHelp11 ай бұрын
By creating a programming language you have activated the internet's trap card Someone's going to port DOOM
@snoowzin11 ай бұрын
A return statement could be called "serve"
@CodeNoodles11 ай бұрын
It's actually funny that you mention that, because the output function is called serve().
@noodleman_eric11 ай бұрын
i have been created
@CodeNoodles11 ай бұрын
Nice!
@baddestmofoalive11 ай бұрын
beetlejuicing
@ToastExists10 ай бұрын
Give me
@jblen11 ай бұрын
Invisible ink would actually go so hard. There are 25 characters in unicode defined as whitespace which is more than enough. Edit: somewhat unsurprisingly it already exists. But the existing version uses only tabs, spaces and newlines so you could definitely get way more user friendly while still being invisible... Though still not at all user friendly
@CodeNoodles11 ай бұрын
That's funny!
@thatcatthatalwayseatsyourchees11 ай бұрын
I may make this thanks for the idea
@anon_y_mousse11 ай бұрын
Indeed there are so many esoteric languages that I'm not surprised you'd never heard of Whitespace. Though my favorite is still the one which I'll censor as BrainF***. It's probably the easiest one to write a compiler or interpreter for that can still perform useful work.
@KaiHenningsen11 ай бұрын
@@anon_y_mousse Was that the one with the "come from" statement, or was that a different one? (Turns out, implementing "come from" correctly introduces threading. Who'dve thought?)
@anon_y_mousse11 ай бұрын
@@KaiHenningsen You're thinking of Intercal. Though, it's not for concurrency, but a sort of backwards goto.
@BenjaminGoldberg111 ай бұрын
Interpreted Languages like Python and JavaScript, are typically compiled to an internal byte code which is run immediately. Many interpreted languages have a read-eval-print-loop, but that is not the normal way to run code. Some scripting languages used as shells only have a REPL, such as bash on *nix or batch on dos , but these are often not thought of as "real programming languages,"
@Shuhkky11 ай бұрын
This is really cool, I tried creating a mix of python and c# a while ago, it didn't go far but I might try it again
@CodeNoodles11 ай бұрын
That sounds really cool! If you try it again, I wish you luck!
@Shuhkky11 ай бұрын
@@CodeNoodles thanks!
@PrivacyNProgramming11 ай бұрын
i (kind of) did too, but uhh its based on C# and its kinda dead, i might work on it once annuals are over (cbse) but ye, its basically C# but eaiser ig idk
@Shuhkky11 ай бұрын
@Mervin14 yeah that's fair that's kinda what I was doing but python based instead of c# based, but it would take inspiration from it
@arjix873811 ай бұрын
I recommend watching the VODs where "Tsoding" created porth. Porth is a language inspired by forth
@1cubealot11 ай бұрын
9:33 but those bits are the best bits of programming videos. The "boring" bits are the most interesting because it is mostly trial and error, which is interesting because you get to see the persons thought process.
@BlackneeedWasHere11 ай бұрын
I like the scopes the syntax and the way you return values, im subscribing
@robotnik088911 ай бұрын
Nice! It's always such a treat to see people take on this challenge. I build my own lang in C, and string manipulation definitely was a major roadblock XD. Fun watch, hope to see you update it in the future, perhaps you can move from a tree walker (running the AST) to a proper bytecode interpreter, this'll definitely make your language more speedy, even getting it at or above the speed of python!
@CodeNoodles11 ай бұрын
Thanks, I'm glad you liked it! In the future, I may want to try the bytecode approach.
@robotnik088911 ай бұрын
@@CodeNoodles Awesome! Making a vm in a low level language like c++ is fun and speedy, and as a bonus, you get to reuse the parser and tokeniser!
@rodrigoqteixeira11 ай бұрын
1:39 "which can cost a bit of performance, or in case of python A LOT OF PERFORMANCE" 💀💀
@mezzoflow11 ай бұрын
That's super creative, programming languages are hard enough so making one by yourself is crazy man
@kplays_600011 ай бұрын
An alternative to having a compiled language translate to machine code is to do what Java does and have it compile into a virtual machine. Kind of a best of both worlds!
@xyangst11 ай бұрын
worst*
@plaintext728811 ай бұрын
@@xyangstwhy? Is it because of development speed?
@anon_y_mousse11 ай бұрын
@@plaintext7288 He probably means because you still have to take the step of compiling the code first and it's still slower than a proper compiled language. Though, they've made great strides in JIT development and it's not as bad as it used to be, I'd still rather use C. As far as development speed, that's a knowledge issue because once you learn the correct libraries to use to piece everything together then it's as fast to write a program in a language like C as it is in Java.
@DigitalViscosity7 ай бұрын
@@anon_y_mousse You wouldn't say that about the CLR. A lot of the code is highly optimized and can run faster than the best C code. C# boasts a well defined floating-point model, which aligns seamlessly with the native operational mode of the Floating Point Unit (FPU) and Streaming SIMD Extensions (SSE) on x86 and x64 processors-a strategic design choice rather than mere coincidence. The Just-In-Time compiler (JITter) efficiently translates Math.Sqrt() into a handful of inline instructions. In contrast, native C/C++ is encumbered by decades of backward compatibility requirements. The compiler options /fp:precise, /fp:fast, and /fp:strict are the most prominent manifestations of this legacy. Consequently, it necessitates invoking a C Runtime (CRT) function to execute sqrt(), which must then verify the selected floating-point options to fine-tune the outcome, resulting in a discernible reduction in speed.
@oglothenerd11 ай бұрын
Next step: make a compiled language using LLVM.
@danthon126711 ай бұрын
Just wait. Someday I'll make a game using your prog. language
@anon_y_mousse11 ай бұрын
My recommendation for your next attempt, and I hope you have a next attempt, would be to write it in pure C and aim for translating your language into C. Generally they refer to that as transpiling, but it's still technically a compiler, and it has the added benefit of being exceedingly portable because you can use cross platform libraries for all the complex bits of your language. I would also aim for writing a BASIC variant instead of a custom language, but I really only recommend that because that was the first language I wrote a compiler for having nostalgia for QBasic. As far as parsing, consider using an FSM.
@xanderplayz344611 ай бұрын
I am probably going to modify this to make it “normal” and see how it is. Turning a “esoteric” language into a “practical” language.
@bunabyt311 ай бұрын
I appreciate your decision to make this in C++ instead of Python, because an interpreted language running on an interpreted language would be catastrophically slow and resource-intensive. I plan to make my own programming language someday: a fusion of Java, Lua, and some of my other favourite languages that compiles to bytecode and runs in a VM. Anyways, nice video! NOTES: The function declaration syntax reminds me a lot of Lua (which uses `function` to define a function, and `end` to finish it), I don't really see that sort of thing in most languages.
@TrueOppenheimer15 күн бұрын
LET ME TRY YOUR ROGRAMMING LENGUAYEG NOWWW!!!
@SpringySpring0410 ай бұрын
automatically returning the last statement from a function is really cool. It's kinda like Ruby
@wafinashwan824211 ай бұрын
if you were to try a hybrid approach then you could use zig for bytecode and rust for compalation
@ThatRandomError5 ай бұрын
0:12 im taking this personally
@Lampe202011 ай бұрын
Well, I'm working on an own compiled esolang, called "arrowey". And I'm just compiling it to LLVM's IR and then let LLVM do the architecture-specific stuff. But I might also make it interpreted (first I have to get an AST generator), to be able to implement it in JS to run inside my own OS simulation. By the way, I'm using LARK to get a parse tree from the source code, which also made it easy to define the syntax, because I could just see the parse tree, adjust and see the new tree.
@YouTubeName-hw1uk11 ай бұрын
This is pretty cool, also you've inspired me to do something similar
@Mr.RandomB1210 ай бұрын
I have a very crazy challenge for you, try to create a computer operating system with this language
@CodeNoodles10 ай бұрын
I don't think I could make an operating system to begin with 😅
@trevoro.973111 ай бұрын
Python is compiled to bytecode, like many other languages do.
@programmer-75311 ай бұрын
As a German, "NS" reminds me of something else...
@n0o0b090lv11 ай бұрын
Why isnt there a langue that can be compiled and interpreted or there is and i dont know
@CodeNoodles11 ай бұрын
You are correct. Some languages use a hybrid approach like Java.
@Classfied3D11 ай бұрын
You should add a 'spaghetti' statement that acts as a goto lmao
@CodeNoodles11 ай бұрын
That's an epic idea 😆
@AlexTsaava2 ай бұрын
damn i clicked on this video cuz i was also making my own programming lang in python, you did a really got job with making this unlike me 🤣🤣🤣 This video and programming language is a W
@CodeNoodles2 ай бұрын
Thanks! I hope your programming language turns out nicely!
@AlexTsaava2 ай бұрын
It’s not the best it’s interpreted I might make a compiler that compiles my programming language to python
@koder773811 ай бұрын
Nice project! I did write a compiler for my own language "Brackets", which generates bytecode for my VM L1VM. It was not easy to write.
@PumpkinBear11 ай бұрын
whats the song at 0:22 i've heard it before but can't think of where it's from
@CodeNoodles11 ай бұрын
It's a song from the KZbin Audio Library called English Country Garden by Aaron Kenny.
@PumpkinBear11 ай бұрын
@@CodeNoodles ty
@DemonicMeWasHere11 ай бұрын
Is this lang available for everyone to code in? If it is, imma make a game with it
@CodeNoodles11 ай бұрын
Yes, it's on my GitHub. To make games though, you'd have to modify the language to support external packages so that you could render graphics.
@tjautomatin414511 ай бұрын
I'd make my own, basic script, it's so simple that it's literally scratch but you type out the block names
@TheRealKingofCubing9 ай бұрын
i'm pretty new to programming and don't understand most of this but it sure is cool
@someonerandom993910 ай бұрын
This is a nice example of a recursive descent parser. I'm not going to lie I'm obsessed with parsers because I've made a javascript interpreter in C++. My most recent project is so painful I haven't coded in months because it scares me. I'm making a language that compiles to brainfk
@CodeNoodles10 ай бұрын
Wow. This project got pretty complicated towards the end, but making a language that compiles to brainfk sounds brutal 💀
@divine20311 ай бұрын
Your gonna trigger alot of Java devs with that intro
@PaulFisher11 ай бұрын
the “jk” is that it should have been golang
@williamgill62411 ай бұрын
"devs" 😂
@GustyCube10 ай бұрын
Yes fr
@NS8world8 ай бұрын
Java is my all time favourite language
@suvetar7 күн бұрын
It's fun and education, thanks man! 🙂
@Bl0xxy11 ай бұрын
omg the music at the beginning i swear it's dantdm's old hardcore music
@happyman_smiling11 ай бұрын
writing a compiler sometimes is more easy than interpreter
@ikytsu782210 ай бұрын
I had a similar project and I used C++. It's really good if you want performance. In my case, my programming language could calculate 2^9999999999999999 in only 3 minutes. I admit that writing C++ code can be a bit slow, but for projects where performance is important, that makes all the difference.Nice video tho.
@TimeLords91011 ай бұрын
I’m glad that I’m not the only one who used the word resonated
@CodeNoodles11 ай бұрын
I know right 😆
@TimeLords91011 ай бұрын
@@CodeNoodles when I used it it sounded like I was old
@slizedk11 ай бұрын
The rotating background is really distracting, in my opinion. Thanks for your content. :)
@iilogll11 ай бұрын
hey what is ur vsc theme? it looks nice
@mathgeniuszach11 ай бұрын
Ever heard of smart pointers? Makes writing C++ code much cleaner. I usually macro the names to be shorter but they're quite nice
@limec4t3 ай бұрын
0:42 code bro refrence😂
@perunkarunai79574 ай бұрын
where to download your language interpretor brother
@mohamedsimo602111 ай бұрын
How to implement complex stuffs like networking and file system accessing etc .. ?
@BeginnersAcademy11 ай бұрын
you'd have to implement built in functions, which can range from simple implementations like defining a global list of functions at the global scope of the interpreters variable environment/scope, or you could build a more complex library system. Either way whichever route you take youd basically just be creating wrapper functions on top of whatever I/O functionality C++ has.
@EasonTek11 ай бұрын
if you wanna write a compiler you can actually just generate C you acn learn the ins and outs of pure C (no C++ BS) and make your code generator generate C that can theoretically compile anywhere (thats what nelua, nim, etc does)
@GlitchTrap1234511 ай бұрын
Mrbeast wake up codenoodles posted
@CodeNoodles11 ай бұрын
I wish 😆
@GlitchTrap1234511 ай бұрын
@@CodeNoodles maybe someday
@felixargyle319 ай бұрын
Is there any way to run it?
@alebud140311 ай бұрын
7:31 what app you used?
@BPGHchess6 ай бұрын
when is syntax highlighting coming ;)
@TomatoSaucey9511 ай бұрын
now i want library support, also the syntax is a bit werid for programers, since they have things like "eat or "server", standarding them for things like "end" or "print" would be welcome in my opinion!
@Omena0MC11 ай бұрын
When syntax highlighting?
@AmeiumАй бұрын
wait a minute. if you make an interpreter for a language, then write a compiler in that new language, then compile the compiler using the compiler you wrote in the interpreted language. bootstrapping is god-tier programming fr
@Zwiebelgian11 ай бұрын
Be careful with the abbreviation NS…
@devOnHoliday3 ай бұрын
I would've suggested for a framework based on noodlescript titled Ramen, but Js already has that one too
@jtnoble32111 ай бұрын
I made 99 bottles in .ns and it definitely irked me lol. Minor issues I had: - early returns don't exist - numbers must be cast to a string if serving - no sleep function? - errors in the wrong place (I had an error on line 9, and interpreter kept saying error on line 11) - eat, eat, eat, eat I definitely could not make my own language though, and I found it fun digging through this! 99 Bottles Code: ``` recipe bottles(noodle num) if num 0 serve(str(num) + " bottles of beer on the wall ") serve(str(num) + " bottles of beer ") serve("You take one down, pass it around ) num = num - 1 if num == 0 serve("That's all the bottles of beer on the wall! ") else serve(str(num) + " bottles of beer on the wall! ) eat eat eat eat recipe main() bottles(99) eat main() ```
@CodeNoodles11 ай бұрын
Thank you for trying the language out! The number outputed as part of the error message is actually an error number, so it doesn't mention what line the error occurs on. Also, the serve function can take multiple arguments like so: serve(str(num) " bottles of beer on the wall ") ^ Notice the space to separate the arguments Regardless, it's awesome you were able to get something working, despite it being quite inconvenient.
@jtnoble32111 ай бұрын
I realized the error number wasn't a line a couple hours later 😅 And that's good to know. My biggest trouble debugging originally was I was separating variables in functions with commas, and didn't even realize your examples don't have commas
@boogaming974411 ай бұрын
I should learn noodlescript as my first coding language, I wanna learn one since i started what hung your videos so why won’t I start with this ?
@CodeNoodles11 ай бұрын
I love the idea, but definitely don't. My language is extremely limited and has a bunch of little issues with it. If you want a good language to start with though, I recommend Python.
@sinom11 ай бұрын
Just wanna say that that abbreviation for the logo might not be the best idea since it is commonly associated with a certain political party that rose to power in Germany during the 1930s.
@robbeflot54289 ай бұрын
Why can't i run it???
@SeriouslySurprised11 ай бұрын
idk, it is a very cool video but I can't handle with this programming language. haha, I meant I only know python, js, html and css, (html and css are markup languages not programming languages). but back to the point, I like your content, it seems like to be very difficult, but you mad ea good job! a big THANKS!
@darshplaysmc10159 ай бұрын
which theme do you use??
@rafagd11 ай бұрын
If you target llvm, it's not that much more work to make a compiler.
@TheoParis11 ай бұрын
When you have time, please check your 2D-minecraft repository, I made a PR but it has gone unnoticed for several months... It solves several other issues in the repository.
@CodeNoodles11 ай бұрын
Sorry about the speed of things. I looked at your PR, and it looks good! You mentioned that Glass.hpp is needed, which is now on my GitHub, since I uploaded Glass 4.0 to it.
@TheoParis11 ай бұрын
@@CodeNoodles Thanks! I will try and finish it soon. Sorry if I sounded impatient, I just wanted to make sure it was being looked into.
@iltcuhtml11 ай бұрын
I thought you were making nood.js
@SamiSaba210 ай бұрын
Is NS used in NSURL?
@lancemckenzie107411 ай бұрын
Step 1 identify performance failures, barriers, and lack of situational suitability in the existing programming languages - e.g. Call speed during certain tasks; bitsize required on RAM for edge computing; etc). Step 2 locate specific features in the existing languages that are sources of failure - e.g. requirement to store a reference table of basic operations and any function specific operations. Step 3 research logic systems used in other fields and products (e.g. Different natural language structures in real foreign languages, or matrix representation and reduction in theoretical mathematics) in order to craft a list of top candidate syntax features that MIGHT alleviate your speed/bit size problem identified in step 1. Theorise the degree of improvement that you can expect to see if you used these candidates - e.g. 50% faster; 30% reduction in bit size. Also determine if you will make sacrifices in other areas of performance, or be able to maintain certain features - e.g. retain lookup of value arrays of greater than 50,000 integers. Step 4 write your new language around those candidate syntax features identified in step 3. In plain English this looks like... My current interpreter language used in my smartwatch operating system requires 30MB of active RAM partitioned in order to be available for any and all health sensor data to be processed concurrently. As a result, a larger physical RAM card is required on the watch to provide sufficient RAM for applications. I believe that by incorporating both a non-deterministic rewriting logic like Java Script and a base 20 integer structure will allow me to reduce sensor partitioning to 17MB. This reduce RAM chip size required by 10% based on modern day RAM chip standard components, further increasing the space available for the battery and therefore simultaneously provide the potential for a further 6% increase in maximum battery capacity based on modern day standard components. And then you make those things.
@lancemckenzie107411 ай бұрын
Your new programming language does not need to be better in every regard. It can be worse than current languages in most ways, but highly efficient in your target use case (e.g. machine text interpretation). That would make it a specialised language, and you can have many languages for different tasks. You may also create multiple specialised languages to build out a technology stack that, on the whole, provides specific performance improvements in a broader use case (e.g. A.I. text generation from natural language voice commands).
@jdudeofficial426311 ай бұрын
What is your visual studio theme? And also nice video
@danielgysi572911 ай бұрын
The programming language is insanely impressive Listening to other people talk about their chatgpt conversations is really boring. It wasn't even relevant to the final idea and you attributed ideas to chatgpt that it stole from real projects (whitespace programming languages have been done before)
@CodeNoodles11 ай бұрын
That's fair. I'll be more careful in the future about that. Thanks for the feedback!
@thewhat422811 ай бұрын
What theme is that?
@derpcar3 ай бұрын
i want to download this.
@Lemoniii0010 ай бұрын
Which code editor are you using ?
@CodeNoodles10 ай бұрын
Visual Studios 2022
@Lemoniii0010 ай бұрын
Ok thx
@li-lunarink9 ай бұрын
add a language server for vim, nvim, vscode, visual studio, etc
@DJ_gtagVR10 ай бұрын
Wait didnt this cooy that one chef programming language? I guess this is the best language now
@maaztheprocool75775 ай бұрын
can it run doom?
@Ryland-tu6pj7 ай бұрын
I like how every variable is called noodle
@shadow_blader19211 ай бұрын
Valve favourite language.
@tanhrs871111 ай бұрын
Can I make recursivity with your language ?
@TheRealMangoDev11 ай бұрын
im making a compiler btw
@TheRealMangoDev11 ай бұрын
so far its going well but im making it in rust and bc of that… i have to fight the borrow checker a LOT.
@dharma.vibrates10 ай бұрын
Awesome can you make it oops 😅 and update it's beam compiler ? I was thinking today that which is more natural opps or functional and I found that opps is more natural. Thus feeling sad about elixir😢
@tandyabimap-hv6fw10 ай бұрын
Is a Interpreted Language or Compiled? Because I Love Interpreted Language Better
@CodeNoodles10 ай бұрын
It's interpreted.
@tandyabimap-hv6fw10 ай бұрын
@@CodeNoodles Oh Okay
@clyptos27058 ай бұрын
very cool idea. very nice video! however, the abbreviation of noodlescript is quite dangerous
@paulzupan37325 ай бұрын
I'm sorry but not calling the language spaghetti code is such a missed opportunity
@rancidrandis11 ай бұрын
I have no idea what's going on in the slightest
@scusson2310 ай бұрын
This is just a genuine question, and I’m not trying to be rude, but if everything in NoodleScript is written in C++, is it that much different?
@CodeNoodles10 ай бұрын
If by different, you mean the languages themselves, the yes. Not only are C++ and NoodleScript different in how they are run, but they also have very different syntaxes. I hope this answers your question.
@caballerosalasАй бұрын
Python doesn’t work that way. It compiles to a python internal bycode and then that code is executed by a virtual machine
@Germisstucklmao10 ай бұрын
Hmm why not use LLVM? I mean, it simplifies everything
@Kirby_Super10 ай бұрын
I did this in Scratch once. It was fun even if the final result was impractical
@EverTGX11 ай бұрын
now make a syntax highlighter for vscode of this language
@goobertnelius11 ай бұрын
Now make a package manager and or a way to create windows and draw to them
@note.swiper-main10 ай бұрын
aleight, let's learn this code and make the programming language using this if can
@efekos9 ай бұрын
now make a language server for it
@sggamesofficial9 ай бұрын
wait a minute. you’re making a coding language with a coding language made by another coding language that may or may not be made by another coding language and that is made by a coding language made by a coder who uses a coding language?
@CodeNoodles9 ай бұрын
Codeception
@m3mes42010 ай бұрын
I feel like everyone is making programming languages now ever since that guys tutorial dropped lol
@metaplayss7 ай бұрын
Time to make my own coding language. (Tried to for the 98th time.)