What's a programming language?
This might look like a dumb question (and it is) but it is difficult to answer.
What do we do when we have dumb questions that are difficult to answer?
We make our lives more difficult by using mathematics!
Let us say that a programming language is any system such that some subset of the set of all computable functions is representable in it.
This is actually a very informal definition - what is a "system"? what is "representable"?
From out intuition, we know that intuitive abstract concepts are "represented" in languages somehow. This might involve bit-manipulation magic (for floating point arithmetic), virtual tables (for runtime dispatch), among other things.
So we need a mapping that acts as this representation maker.
A computable function can be converted to the form
We say that a denotation (notation :
This is extremely abstract and might be confusing at first.
I'll try to give an intuitive breakdown of the formula above. Let's say we have a computable function