What do these terminologies mean in programming (or computer science) context?

This forum is about programming for languages that do not have own forums and anything about programming in a broad spectrum.
Post Reply
User avatar
Eli
Senior Expert Member
Reactions: 183
Posts: 5221
Joined: 9 years ago
Location: Tanzania
Has thanked: 75 times
Been thanked: 88 times
Contact:

#1

I often read or hear these terms/phrases in programming or computer science context in general:
  • Typed/untyped language;
  • Strongly typed/untyped language;
  • Statically typed language;
  • Dynamic language;
  • Scripting language;
  • High-level language;
  • Low-level language;
  • Machine language;
  • Assembly language;
  • Interpreted language,
  • Compiled language;
  • Procedural language;
  • Object-oriented language;
  • Functional language/programming;
  • Declarative language.
What do these terms mean in a simplistic sense?
0
TSSFL -- A Creative Journey Towards Infinite Possibilities!
User avatar
Robot
Super Administrator
Senior Expert Member
Reactions: 24
Posts: 124
Joined: 7 years ago
Has thanked: 7 times
Been thanked: 7 times

#2

Some of these terms are related to the differences in speed of execution (performance/efficiency) of codes written in different languages. For example, a well written code in C will always execute faster than the equivalent code written in Java or Python. C code compiles to machine code which is executed directly on the CPU. Both Java and Python compile to bytecode (an intermediate language designed to be executed on a virtual machine) which is then translated into a set of machine code instructions that can be executed immediately on the CPU.

One of the advantages Java has, is that it is a statically typed language -- which means that the compiler knows how every variable and every function/method is defined before the code is executed, so it does not search anything at runtime. On the other hand Python is a dynamically typed language, meaning that the compiler can’t identify what a name/variable/function/method represents until the code runs (and possibly, its interpreter parses/loads the program including all the required libraries for execution). As a result, Python executes a lot of searches at runtime, looking for variable/function and method names.

The notion that Python (here we are talking of pure Python cde that is not glued with C/C++ libraries such as Numpy, note also that there are actually compilers like Jython and Cython that compile Python programs, respectively, to Java and C bytecodes) is interpreted, but Java and C are both compiled, may have been correct in Python version 1 and early releases of Python 2, but it is currently incorrect. Later versions of Python 2, particularly from Python 2.6 and all versions of Python 3 compile to bytecode - which is then saved as a .pyc to make future execution faster. Such bytecode may be different to Java bytecode, but Python is still compiled, and its Virtual Machine executes that bytecode following the same basic principles as Java. Also read post #3 from simple-c-program-44
1
1 Image
Post Reply

Return to “Programming (General)”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 0 guests