How do computers understand our commands, and how did programming languages evolve to become as easy as everyday language?

H

Programming languages have evolved as computers have understood and executed commands through the flow of electricity. From machine language and assembly language, modern languages have evolved into more accessible forms, making life easier for users and improving communication between computers.

 

A man quickly taps away at a keyboard, the monitor screen fills with unintelligible characters, and the computer does something. This is the kind of computer programmer we often see in movies and other media. In the modern world, computers have become a tool that anyone can easily use, but programming – the ability to give fundamental commands to computers – is still a difficult and complex world for the average person.
Understanding the relationship between computers and programming is like learning a new language. A language is not just a means of communication; it reflects the mindset and culture of the people who speak it. Similarly, programming languages are important tools that determine how computers and humans communicate. From this perspective, programming is more than just a technical skill; it’s a way of solving problems and looking at the world.
Programming languages are evolving with each passing day, and the latest developments are more like everyday language, making programming less of a barrier to entry over time. But how can a computer, which is nothing more than a mechanical device, understand the commands we give in everyday language?
To understand how computers understand our commands, we first need to understand the fundamentals of computers. At its core, a computer is an electronic device, and at its most extreme, there are only two signals you can give it. Either there is current flowing through the circuit or there is not. This is very simple information, but if you combine it in any number of cases, you can create a variety of different inputs, and the CPU (Central Processing Unit) of a computer has elements that can implement simple logic like AND, OR, and NOT, which, when combined well, can create a “function” that produces a specific output for any given input. Modern computers have tens of millions of these units, allowing them to perform complex tasks.
To make it easier to understand how computers work, early developers assigned a “1” to indicate that current was flowing and a “0” to indicate that it was not. This is what is meant by the phrase “computers are made of 0s and 1s,” which you’ve probably heard at least once, even if you don’t know much about computers. Early computers had to be rewired to provide different inputs. To improve this, computers evolved so that you could enter a series of zeros and ones through an input device, and the computer would recognize the arrangement and automatically send the corresponding current to perform the desired operation. This programming language of zeros and ones is called machine language.
But machine language was too long and not very readable. Even the simplest operations required programming on multiple sheets of paper full of zeros and ones, and of course, it was very difficult to understand what you were programming by looking at it. So a new programming language called assembly language emerged. Assembly language is a language made up of a one-to-one correspondence between machine language consisting of zeros and ones, and when you type assembly language, the computer executes the corresponding machine language according to that correspondence. What makes assembler different from machine language is that the corresponding phrases are made up of letters of the alphabet that represent their functions. In other words, the code is much easier to understand than machine language because it is made up of words that we use in everyday life.
The advent of assemblers has made programming simpler. However, assemblers were still long and difficult to use because they were a one-to-one correspondence to machine language. Furthermore, assemblers were very closely tied to the structure of computer hardware, requiring programmers to have a deep understanding of the inner workings of the computer. As a result, assemblers were often dependent on specific hardware and required modifications to the language whenever new hardware was introduced. Higher-level programming languages were developed to overcome these problems.
Inspired by assemblers, people began to develop ways to make programming easier for people. This led to a number of programming languages, which basically abstract away from assemblers to achieve simplicity. While assemblers have a one-to-one correspondence to the actual flow of current through the machine, so you need to know every little thing about how the hardware works, the newer programming languages can handle the processes that are intuitively necessary to perform their function in a single instruction, which means they have a many-to-one correspondence to the assembler code. These languages lowered the difficulty of programming by making it intuitive to program without understanding the hardware structure of the computer and by making code shorter. The programming languages developed in this way include C, C++, FORTRAN, and JAVA, and they have continued to evolve in a similar way to make them easier to use, and nowadays, more everyday languages such as JAVA Script, PHP, and PYTHON have appeared.
The evolution of programming languages has paralleled the evolution of hardware. As more powerful computers have become available, the need to write more complex programs has increased, and programming languages have evolved accordingly. Modern programmers have access to much more powerful tools than in the past, which makes it relatively easy to develop more complex and sophisticated programs.
Even though programming languages are closer to everyday language than they used to be, it’s still not an easily accessible field. However, programming languages are influenced by and evolve alongside advances in computers. From the early days of huge research and enterprise computers to the era of personal computers (PCs), we are now in the era of smartphones. As computers continue to evolve to make them more user-friendly, programming languages will evolve to make it easier for us to make them understand us.
After all, programming is a conversation with a computer. And it’s more than just giving commands and getting results; it’s about defining how the computer understands the world and how it will act on that understanding. Advances in programming languages are constantly changing the way we interact with computers, which in turn is changing the way we interact with the world. In the future, these changes may become so ingrained in our daily lives that communicating with computers will become as natural as everyday language.

 

About the author

Blogger

Hello! Welcome to Polyglottist. This blog is for anyone who loves Korean culture, whether it's K-pop, Korean movies, dramas, travel, or anything else. Let's explore and enjoy Korean culture together!