1.2. What is a Programming Language?¶
The programming language you will be learning is C++. It is a high-level language.
As you might infer from the name “high-level language,” there are also low-level languages, sometimes referred to as machine language or assembly language. Loosely-speaking, computers can only execute programs written in low-level languages. Thus, programs written in a high-level language have to be translated before they can run. This translation takes some time, which is a small disadvantage of high-level languages.
But the advantages are enormous. First, it is much easier to program in a high-level language; by “easier” I mean that the program takes less time to write, it’s shorter and easier to read, and it’s more likely to be correct. Secondly, high-level languages are portable, meaning that they can run on different kinds of computers with few or no modifications. Low-level programs can only run on one kind of computer, and have to be rewritten to run on another.
Due to these advantages, almost all programs are written in high-level languages. Low-level languages are only used for a few special applications.
There are two ways to translate a program; interpreting or compiling. An interpreter is a program that reads a high-level program and does what it says. In effect, it translates the program line-by-line, alternately reading lines and carrying out commands.
A compiler is a program that reads a high-level program and translates it all at once, before executing any of the commands. Often you compile the program as a separate step, and then execute the compiled code later. In this case, the high-level program is called the source code, and the translated program is called the object code or the executable.
As an example, suppose you write a program in C++. You might use a text
editor to write the program (a text editor is a simple word processor).
When the program is finished, you might save it in a file named
program.cpp
, where “program” is an arbitrary name you make up, and the
suffix .cpp
is a convention that indicates that the file contains C++
source code. The cpp
suffix is not universal.
Others you might encounter include cc
, cxx
, or others.
In this text, I will use cpp
.
Then, depending on what your programming environment is like, you might leave the text editor and run the compiler. The compiler would read your source code, translate it, and create a new file named program.o to contain the object code, or program.exe to contain the executable.
The next step is to run the program, which requires some kind of executor. The role of the executor is to load the program (copy it from disk into memory) and make the computer start executing the program.
Although this process may seem complicated, the good news is that in most programming environments (sometimes called development environments), these steps are automated for you. Usually you will only have to write a program and type a single command to compile and run it. On the other hand, it is useful to know what the steps are that are happening in the background, so that if something goes wrong you can figure out what it is.
Q-1: A(n) translates a high-level program line by line, executing commands as they come. A(n) translates a high-level program all at once, before executing any of the commands!
- Almost all programs are written in high-level languages.
- High-level languages are efficient and easy to understand, an obvious choice for writing a program!
- Programs written in a high-level language must be translated before they can be run.
- All programs in high-level language must be translated to a low-level language before the computer can execute them!
- It's easier to program in a low-level language than a high-level language.
- Actually, its much the other way around!
- Computers can only execute programs written in high-level languages.
- Computers actually can't understand high-level languages as they are written.
- High-level programs can only run on one kind of computer (you'd have to rewrite the program if you wanted to use a different machine).
- High-level programs are portable, meaning they can run on different kinds of computers with little to no modification.
Q-2: Multiple Response Which is true about a high-level programming language?
- To translate the program line by line.
- This is the role of an interpreter!
- To copy the program from disk to memory and make the computer run the program.
- The role of an executor is to carry out, or execute, the program!
- To translate the program all at once.
- This is the role of a compiler!
- To give an error message if something is preventing the code from being translated.
- This happens automatically when we try to compile/interpret our program.
Q-3: What is the role of an executor?
-
Q-4: Match each term to an example of it!
Try again!
- source code
- our program written in C++
- object code
- translated version of our program that the computer can understand and execute
More to Explore
From cppreference.com