Computers by and large have advanced rapidly in the last decade: Smaller transistors, better fabrication capabilities, newer technologies for storing and transmitting data, and many more such advances. Though these advances are great, they are forever tied to the chief driver of innovation of them all: programming languages. Without steady advances in programming languages, the achieved technical prowess of such machines would be for naught. But what is a programming language and what are the 3 keystones of programming languages? In this article, we’ll explore the definition of a programming language, as well as the 3 keystones of programming languages. A programing language is defined as: “an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.” – Source: Wikipedia
Now, as succinct as that definition was, I’ll provide you with a more conventional definition: A programming language is how you tell a computer to do or perform an action. This action could be something as simple as printing the words “Hello World!” on your screen, or as complex as listing every one of your friends on a social network, how you know them, and when you added them. The core premise of a programming language is telling a computer how to do something. From their modest beginnings, computers were designed to make tasks for their human creators easier and faster. Though the tasks given to computers are often mundane and boring, that doesn’t mean the person giving the tasks must be equally so. The challenge and excitement of programming languages lies not in the number of languages known or bells and whistles (features) used, but in the innovation of how the computer is instructed to perform a task relative to the efficiency of instructions given. You certainly could write an application that uses every known programming language, but would it be as efficient as the same program written in only one language? Would it also perform the most amount of work with the fewest instructions? Probably not, but therein lies the challenge and fun of programming languages! Now that we know what a programming language is, we may begin discussing the 3 keystones of programming languages. PHP, Java, ASP.Net, Ruby, Scala, JavaScript, just to name a few but they each share these 3 keystones.
Means of expression – each one of these languages has a way to create simple things within them. Strings(Text characters.), Integers (Numbers), Variables (Things whose value can change). The list goes on and is only limited by our imaginations.
Means of combination – each of these languages has a way to combine primitive expressions to form more complex ideas. You can add a string to another string, thus making an even longer one. You could even add, multiply, divide, or subtract two integers to create a new one whose value was held in a variable.
Means of abstraction – each of these languages has a way to abstract, or make unknown the inner and sometimes minor details of itself – suppose you wanted to know the result of a simple equation. You already know to create the numbers (primitive expressions), and to perform operations on them (means of combination), but what if you needed to perform this equation multiple times with different numbers? It would be unnecessarily tedious to type and re-type the same equation over and over again, but the key lies in using abstraction.
In each of these languages, you are able to create a “function” that accepts “parameters.” The neat thing is that instead of having to type each equation, you merely pass the different numbers to the “function” as “parameters” and the programming language handles the rest! Though there are as many languages available to use as the day is long, they all adhere to these 3 keystones. Despite the naming conventions, performance, or features, if you are able to understand and take to heart these 3 keystones, you will be well equipped to accept the challenge of, and revel in the fun of any programming language. We’ve covered quite a few intensive topics in this article so for now, I’ll leave you with only this: “Stay hungry, Stay foolish”
Source: Skynet Solutions
By: Jevarlow Boykins