How To Make A True Coding Language: Part 1
CSharpIsGud (931)

Im making this tutorial series because almost every language i've seen posted to repl talk doesn't use parsing algorithms and I think it would be nice to see some that do. There are a couple flavors of these languages, typically they come in 2 forms
1) They use string splitting and regular expressions

Technically you can call this "parsing" or a language of some sort.
But you will very quickly discover you run into syntax limitations like having to have a separator for a lot of things.
set:var,Hello World;print:var

2) They do nothing at all but define some classes or variables

I don't know how people get away with this and then tell you to calm down when someone calmly separates what it is from what it isn't. Even when put in the best possible words as to not directly attack the repl itself.

Which is why I have decided to create a tutorial on making a programming language in hopes people start making ones that don't have the above flaws.

This tutorial is going to go bottom to top using no dependencies at all and will show creation of a lexer all the way up to the hand made recursive-descent parser!

The Lexer (or scanner, tokenizer, whatever you wish to call it)

Located in

The other components will get their own files as they are created.


You are viewing a single comment. View All
Spiered (6)

Whether it is a "true" or a "fake" language (as you call them), both are useless in the sense that, barring exceptions, nobody will use them (except maybe for fun), and I don't think we should blame people making this "fake" languages or "true" languages because both are very interesting to code, it is a question of skills: if you are skillful and experienced then make a "real" language, but if you are a beginner or if you don't have a lot of time (whatever) code a "fake" language, nothing bad with that.

Otherwise this tutorial sounds interesting :)

JaydenLiu1 (35)

@Spiered I agree... Some people accuse other people for saying something they didn’t say.

JaydenLiu1 (35)

@Spiered There’s nothing wrong with a ”fake” coding language. People should stop overreacting about a ”fake” and ”real” coding language because they have no point and make no sense.

CSharpIsGud (931)

@JaydenLiu1 People call them fake, because they don't have any real parsing done at all, cant do anything that a normal language can do easily.
And as to why everyone gets so annoyed every time someone posts one, is because they probably made one that actually took longer than an hour to do. Meanwhile someone posts 30 minutes worth of input if print print input print input if and people will defend that like its gods creation whenever someone realizes what it is. That's exactly what's wrong with them, they don't take much effort to make, some people have such a loose definition of what is a language around here that they don't have to care, and if someone does start to point out how it took less than 30 minutes to do they don't have to worry because most if not all of the people that bothered to even look at it are the ones that will just say they are "overreacting" or "hating"

Simply saying that fake vs real makes no sense, makes no sense when there is a very obvious line between what is a programming language using a well known parsing algorithm and what is a program reading a list of predefined commands from a terminal(hint: the underlying language its made in does all the work)

Here is a good example of what a "real" one looks like from DynamicSquid, specifically the syntax.
You can't just parse that with a bunch of input and if statements, and it functions like a language instead of a list of set in stone commands.

Whippingdot (573)

You know you are basically de-motivating everyone who tries to make a coding languages. If someone didn't read this para, they could have created an awesome language and could've gotten famous. @Spiered. Some people actually make good coding languages, and people actually use them. Example DynamicSquid's languages are very good.

Also, @JaydenLiu1 if you say, you made a programming language, it means you made a programming language. If you didn't put any work into it, they call it fake cause you didn't really make it that well. A fake programming language is just a programming language someone made which has no work put into it. Yours's is called fake cause it has no work put into it. A real programming language is one that has work put into it. A programming language is real by default. If you said I made a programming language, it means you made a real one. You cannot say you never said that you made a "real" programming language as when you said you made a programming language, it became "real" by default.

I don't know if this made sense, I hope it did.