Simple Glossary of Programming

Glossary of programming.

Each field has its own terminology, sometimes inventing new words, sometimes borrowing words from the common language. Software development is no different. There are many (many) terms in the field of software development, which sound like common words, but their actual meaning is much different than what you think.

When you enter this field, it is daunting to understand all of this. So, to help people like me, I’m writing this article to list all the terms I know and their meanings. You can use it as a reference in the future as well.

Basic terms:

These are the terms which you will learn before typing any code, if you go to a class. But nowadays, more people are learning by themselves to program, so I’m putting all these terms here all the same. Naturally, it helps me as well, I get to go over material I haven’t read or thought about for a while.

  • Statement: this is the most basic part of the program. It describes an action to be carried out, such as creating a variable, initializing a variable, etc. for example, in C, you would create a variable like this: int x; and then initialize it like this: x = 5; but you can actually perform this action at once, and this is where we get to our next point.

  • Compound statement: this is the combination of statements. You can perform more than one action in just one statement, joining many statements in the process. for example, creating, and initializing a variable in the same statement: int x = 5;

  • Program: this is a collection of statements which I described above.

  • Software: a collection of programs. Though I do think program or software are the terms which are often used interchangeably, but don’t quote me on that.

Intermediate stuff:

This is where things get more involved.

  • Compiler: this converts your text code into an executable program which your computer can understand.

  • Interpreter: Unlike a compiler, this doesn’t convert the program into an executable. But it executes it line-by-line. Naturally, there is more to this, but for a beginner, this is enough to know.

  • Bugs: mistakes or unintended behavior in your program. They come in two varieties: compile time bugs, which are caught when the program is compiled, and runtime bugs, which are caught when the program is running.

Advance terms:

  • Machine code: the binary level of the program. Only zeros and ones exist at this level.

  • Assembly: a layer over the machine code. Assembly language is hardware specific, meaning it is not portable. If you wrote an assembly program for Intel CPU, for example, it won’t run on AMD. The program which converts Assembly to executable machine code is called Assembler.

  • High level, mid-level, or low level: these levels tell you how close the language is to the computer hardware. Low level is the closest, and high level is the furthest.

    • Low level: this is just above the machine code. The assembly language is a good example of low-level coding.

    • Mid-level: a step above assembly, these languages offer some high-level functionality while allowing you to handle the memory manually. Operating systems are written in these languages, because the OS must manage the hardware resources. These languages are usually compiled. C, C++ (they are different; there’s no such thing as C/C++!) and recently, Rust are examples of languages at this level.

    • High level: these languages don’t allow you to manage memory or access the hardware directly. They have a garbage collector which handles the memory for the programmer. These languages are usually interpreted. Python, JavaScript, and Java (Ug!) are examples of languages at this level.

  • Garbage collector: this is featured in the high-level programming languages. It claims the unused memory, freeing the programmer from the responsibility of freeing (Heh!) the memory. It runs automatically, though the language may offer you to invoke it manually.

Do note, in programming circles, the levels are debated heavily. Some people believe that there’s no such thing as a mid-level, while others believe that due to hardware changes and the evolution of CPUs, even assembly cannot be called a low level. If you’re a beginner, stay away from such arguments, they will just confuse you more. There’s a reason why people say you need a huge library to understand computers nowadays, while you could understand it in the old days just by a PC bible.

Tell me whether I missed some terms, check out my other blog, leave comments, especially if you see some mistakes, and I will see you in the next article.

Did you find this article valuable?

Support Tanish's technical blog by becoming a sponsor. Any amount is appreciated!