What is a programming language
One goal for this site is to examine some questions relating to programming languages:
- What is a PL?
- How are they created (constructed)? (Why is this so hard? Can it be easier?)
- What programming languages have interesting ideas, but aren't much used?
- etc
Let’s start with the first question
What is a programming language?
I think our first task should be to define what exactly a language is. There are a lot of complexities around how languages are implemented and how they tend to operate today. Our definition should be about the essence of what it means to be a language.
A language has four parts:
- abstract structure
- concrete syntax
- statics
- dynamics
TODO say a bit about each of these.
Of course, these four parts only encompass the pure analytical (academic?) heart of what a PL is. There are many more pragmatic (and more important) concerns when actually using a language:
- The core team building it
- documentation
- the ecosystem (the community (welcoming?, size), libraries)
- how it runs, which platforms
- is it compiled? interpreted? does it have a nice repl? editor integration?
These are important, but we don't have much to say about them in this post (we’ll come back to most of these in the future).