Im on the platform again waiting for a train, so in the mean time before I can't move my hands due to getting pretty personal with some strangers, let's talk parsers.

What is a parser?

Imagine you are 2 years old again, you may have asked questions to grown-ups from time to time, between you and said grownup, your parents may have needed to step in to translate your unintelligible and very cute pseudo words into language that said grown-up can understand. Your parent just parsed something admittedly simple into something way more complex.

Are we 2 year olds talking to computers?

Most definitely, the computer doesn't understand your B, C, D, Java or JavaScript, we need a way to parse this stuff. There are 2 main ways to do this, parse through compiling and parse through interpreted.

What is compiled?

As a 2 year old, you grab some crayons and attempt to write some words on the nearest furniture you can find, that resulting scribble is understood by your parents who then explain thier interpretation of your scribble to another grownup. There is still interpreted behaviour going on but it's parsed from hard evidence, eg the scibble on the sofa, but it remains there until somebody cleans it off and you scribble again.

What is interpreted?

As a 2 year old who has now had thier crayons confiscated 😈🖍️, your only option is to babble. This is on the fly and means that your parents must parse your language as it happens.

What is a language actually.

A language is your 2 year old self's now formalized vocabulary, as you grow, you learn new words that enable new features in your life. You start to confirm to a specification, in my case it would have been English. You have a primary way to express yourself, you may prefer scribbles or bables. Although most children can do both, C++ has an interpreter, JavaScript has a compiler, bit still it's rare that a 2 year old is gifted enough to do both well.

Fast forward.