I want to create my own programming language. I know absolutely nothing about it, and after extensive browsing of the interwebz on the topic, I have gained no knowledge and have come to the conclusion that these existing “tutorials” are meant for people significantly more intelligent than Steven Hawkings. How does this apply to Unity? I not only want to make a language, I want to make it so that it works extensively with Unity, like UnityScript and C# do with MonoDevelop-Unity. Perhaps if I do a good job It could be a default part of Unity in the future (I intend to make it very simple to use.) My question is, does anyone know anything on the topic or have halfway decent links that dummies can understand? I know a little bit of C# already, I know this or another common language is necessary to make a language.
-EDIT- I deleted what was previously written here because I made a childish comment and I shouldn’t have said what I did.
You need to learn how to create CIL code (Common Intermediate Language), which is what all languages used by Unity compile to. Here’s a tutorial about creating a custom language and writing a CIL (AKA MSIL) compiler for it in F#. (The Unityscript compiler in Unity is written in Boo, hence why certain errors reference Boo.Lang.)
Honestly, and I’m not trying to be rude with this, but get a Computer Science degree when you get to college. I would suggest going post-grad with it as well, then you might have the knowledge you need to accomplish this. The reason what you’re seeing looks like it’s meant for Stephen Hawking is because you’re expecting a simple answer, and sadly, that’s not what you’re ever going to get on this question. The answer you’re looking for takes multiple textbooks and years of study, which is why it’s not going to be sufficiently answered here. I see you mention members of your family build computers and plays with a Raspberry Pi, but those are trivial skills the average techy can learn with some weekend tinkering compared to this. Learning how to make a programming language…I would say requires mastering several programming languages first before you actually even think about getting into computer language theory. I’m not denying your passion, I too thought in a similar way in High School, but just know your passion will take dedication and time. Stay curious though!
First off you will need to learn assembly. Then you will also need to know the correct interrupts to call and what needs to be in your registers when you call them. Now that really isn’t too hard to be honest, what IS hard is that you will need to know the system architecture of every machine you plan to have this language work on. What this means is you will likely need to support 64bit and 32bit registers(along with the different interrupts between system types not just the 32/64 part). You will need to write a lot of code to just figure out what you are running on. Now assembly is not for the faint of heart. You will have to code VRAM access and the dynamic allocation of memory on the heap. You know what that is? If not then you are way over your head. You are looking at multiple years of coding just to get something that might work some of the time. Then you are going to be looking at debugging for a very long time then trying to figure out if it is a bug in the programming language or in the implementation of the language. So in short the answer should be it isn’t a single person endever to make a programming language normally very large groups of people work on things like that for YEARS.