ASN1 is the encoding method for X509 certificates. No, it is not. It is a very high level programming language. https://en.wikipedia.org/wiki/...
It looks a bit like a mixture of Pascal with EBNF.
It usually gets compiled into C or C++
Read the wiki you linked. It is a way to serialize data structures. It defines how the data is moved between machines and it is terrible for parsing. It is {type, length, value} triples on steroids where your values can be be a series of further {type, length, value} triples. Now think of how you would write a parser. You are going to recursively parse the triples. Now what happens when the outer length doesn't match the sum of the inner triples lengths? Depending on how you wrote your parser you will either use the outer length or the inner one. (some triples can be variable length so this does get confusing). The result is different parsers are now parsing differently. I could then create a cert that to a CA looks harmless, have them sign it but my target might parse it differently and give me an incorrect permission.
According to the latest official figures, 43% of all statistics are totally worthless.