Wednesday, 25 December 2019

Performance of Programming Languages

Generations of programming languages:
  1. Generation 1(A): Punched card (Binary)
  2. Generation 2(B): Assembly (Text)
  3. Generation 3(C): High-level (Text, eg. C, Pascal)
  4. Generation 4(D): High-level with OOP (Text, eg. C++, Pascal)
  5. Generation 5(E): High-level with OOP and markup (Text, eg. Qt-over-C++)
Performance of programming languages, the later the slower:
  1. Assembly (top performance, but labourious development)
  2. Typed languages, run natively on CPU (eg. C/C++) - Performance
    1. Compiler/JIT compiler (faster)
    2. Interpreter (slower)
  3. Typed languages, run on VM (eg. Java) - No points
    1. Compiler/JIT compiler (faster)
    2. Interpreter (slower)
  4. No-type languages, run natively on CPU (eg. Node.js, Cython) - Convenient
    1. Compiler/JIT compiler (faster)
    2. Interpreter (slower)
  5. No-type languages, run on VM (eg. Python) - AI and ML
    1. Compiler/JIT compiler (faster)
    2. Interpreter (slower)
There's most likely no languages nowadays that has interpreter to process code files directly; interpreters compile code files to bytecode, for example: .pyc is Python compiled bytecode to be run in Python virtual machine.

No comments:

Post a Comment