You're not a 0 at designing a programming language.
If you look at modern C++, you may think that it's impossible to design that language. TBH, I'd be incredibly surprised if the current standard is implemented on all of the major compiler platforms before the next standard is released.
Remember one of the most important rules in programming and problem solving in general.
If you can't see how to solve a problem, break it into n smaller problems. Repeat as needed until you have a problem you can see how to solve and solve that problem.
You don't need to know lex/yacc, ANTLR, LLVM, recursive descent, LALR(1), or any of that crap to design a language that will be useful for you. They'll give you leverage and have incredible value, but I assure you that you have the ability, today, to design and implement a programming language if you can program at all.
It may not be a general purpose language, but look at languages with minimal syntax, such as forth or a very simplified lisp/scheme. Start by recognizing strings, categorize those strings into your language keywords and program values, and make the computer do something based on the combination. Start with a program that can do something like "print hello" and work from there. You can even add comments by looking for a "#" and ignoring everything from there to the end of the line. You're on your way from there.
Do not hold yourself back by thinking any problem that other people can solve is intractable. The main advantage for more experienced developers is that they can think in abstractions and assemble those abstractions into a solution.
Sorry for the emotional intensity. Sorry also for ignoring the rest of your comment, as it's relevant.
But I care more about your mindset than the argument. You're better than a 0 even if it's just because you understand that you do not yet know something.
well... let's just say my 1985 PLT (programming languages and translators) class project didn't run after numerous all-nighters, and I got the grade that made the top 75% of the curve possible LOL. It's possible that another couple of weeks of all-nighters would have yielded something useful, or if I went back now I would get it...in a sense, any program with a few command line options defines a 'language'...still, pretty close to 0 in terms of a product that could be put in production or that someone would willingly pay for. Appreciate your comment though, nobody should consider themselves a zero at anything...with a just-do-it attitude you will always eventually create something useful...what one man can do another can do.
You're not a 0 at designing a programming language.
If you look at modern C++, you may think that it's impossible to design that language. TBH, I'd be incredibly surprised if the current standard is implemented on all of the major compiler platforms before the next standard is released.
Remember one of the most important rules in programming and problem solving in general.
If you can't see how to solve a problem, break it into n smaller problems. Repeat as needed until you have a problem you can see how to solve and solve that problem.
You don't need to know lex/yacc, ANTLR, LLVM, recursive descent, LALR(1), or any of that crap to design a language that will be useful for you. They'll give you leverage and have incredible value, but I assure you that you have the ability, today, to design and implement a programming language if you can program at all.
It may not be a general purpose language, but look at languages with minimal syntax, such as forth or a very simplified lisp/scheme. Start by recognizing strings, categorize those strings into your language keywords and program values, and make the computer do something based on the combination. Start with a program that can do something like "print hello" and work from there. You can even add comments by looking for a "#" and ignoring everything from there to the end of the line. You're on your way from there.
Do not hold yourself back by thinking any problem that other people can solve is intractable. The main advantage for more experienced developers is that they can think in abstractions and assemble those abstractions into a solution.
Sorry for the emotional intensity. Sorry also for ignoring the rest of your comment, as it's relevant.
But I care more about your mindset than the argument. You're better than a 0 even if it's just because you understand that you do not yet know something.