“Programming Concepts” is a series that aims to introduce to you some main programming concepts like programming languages types, program structures, standard code writing formats. I hope you enjoy your time here and increase your knowledge.
** No prior programming experience or knowledge is needed.
Due to different purposes and problems we write our application for, different programming languages appeared to satisfy our needs and offer us suitable features.
At first, we classify languages according to their level , 3 levels can be distinguished:
- Machine Languages : set of instructions executed directly by a processor(lowest-level 1s and 0s).
- Assembly Languages : low level, one-to-one correspondence between the language and machine instructions, dedicated to a specific processor architecture.
- High-Level Languages(HLLs) : very near to natural language, it’s isolated from hardware details(e.g. computing, memory managements).
High-Level languages are the most used, as they simplify complex programming. Here we have a trade-off, we trade speed and optimization for simplicity. There are many types of HLLs, we classify them to different types according to different factors we introduce those to you, but you can search and find more.
According to execution (Compiled vs. Interpreted) :
- Compiled Languages : Your code is processed only one time and reduced to a set of instructions and saved as an executable file (e.g. C).
- Interpreted Languages(Scripting) : Your code is executed line by line, and it’s processed every time you run it. The code is saved in the save format as you write it and needs an engine to compile it (e.g. Python).
Scripting languages are mainly used when you prefer fast development over fast execution. It’s needed for rapid prototyping, web development and when you need to process files , mine data and feed them to databases. Computers are now very fast and you will not notice a big difference in speed specially with “dynamic high-level general-purpose language” such as Python, Perl and TCL.
For larger projects, better maintenance and debugging , powerful GUIs, fast processing and execution , you should use languages like (C/C++,C#,Java,VB,..).