Programming Languages
Programming is the act of giving a set of instructions to a computer to execute. If you think of it like cooking using a recipe you can think of yourself as the computer and the recipe's author would be the programmer. The recipe book would be code and the language of the book would be the programming language. The more complex the recipe the more complex the final result will be.
Computers think in binary and programming languages allow us to translate the 1s and 0s into something that is more human readable. A programming language is just a series of symbols that serve as a bridge that allow humans to translate our thoughts into instructions that computers can understand.
The concepts that make up how these programming languages operator and differ from each other can be describe as programming paradigms.
Programming languages have evolved significantly over time, moving from fundamental machine specific code to complex languages that are simpler to write and understand. Nowadays there are considered to be 5 generations of these programming languages and they can be described as such:
First Generation Languages:
First generation languages often known as machine languages, are the simplest type of computer language there is. To interface directly with a computer's hardware, these languages use binary code. Because machine languages are designed to be particular to the architecture of the hardware, 1GL applications are machine-specific and will only execute on the hardware for which they were originally developed.
Second Generation Languages:
Second generation languages, known as assembly languages, introduced human-readable notations, such as mnemonics, that are easier to understand than binary code. These languages still require conversion to machine code through an assembler before execution. Assembly language is used primarily for writing operating systems and device drivers due to its close interaction with hardware.
Third Generation Languages:
Fourth Generation Languages:
Fourth-generation languages (4GL) are created to simplify programming by using syntax that is more similar to everyday human language. These languages allow users to focus on specifying what tasks need to be done, without needing to worry about the specific implementation details. They are widely used for tasks such as database handling, generating reports, and building graphical user interfaces (GUIs). Some well-known examples include:
Fifth Generation Languages:
Fifth-generation languages (5GL) represent the latest stage in programming evolution and focus on visual programming and artificial intelligence. These languages use visual tools and constraint-based logic to create programs. Instead of writing step-by-step instructions, the programmer defines goals, and the system generates the code to achieve them. Some examples of fifth-generation languages include:
- Prolog
- OPS5
- Mercury
Here are some of the programming languages I have covered so far organized by generation: