Difference between revisions of "Programming Languages"

From HPC Wiki
Jump to navigation Jump to search
Line 8: Line 8:
 
* Assembler: human-readable (to somehow extent; many says 'for special humans'), but still very low-level. Allows the programmer to get the very ''last'' possible performance crumbs from the hardware, but in turn is hardware-dependent and very tedious to program. Highly-tuned libraries often contain ASM parts, often making this software less-portable. You should not start at assembler level when programming an application.
 
* Assembler: human-readable (to somehow extent; many says 'for special humans'), but still very low-level. Allows the programmer to get the very ''last'' possible performance crumbs from the hardware, but in turn is hardware-dependent and very tedious to program. Highly-tuned libraries often contain ASM parts, often making this software less-portable. You should not start at assembler level when programming an application.
  
== High-level programming languages: ==
+
== High-level programming languages ==
... readable by humans. The source code is a text file, to be modufie to an executable file by a [[Compiler|compiler]]. Portability
+
... are readable by humans. The source code is a text file, to be modufie to an executable file by a [[Compiler|compiler]] (we do not want to introduce the definition bush about compiled and [https://en.wikipedia.org/wiki/Interpreted_language interpreted languages] here).
 +
 
 +
 
 +
Portability
 
* Fortran, the 1st wide-used high-level programming, used in HPC since 1954 and will likely be used for a lomg time, as there are still many Fortran projects around. Fortran handles multi-dimensional arrays comfortably. Due to some restrictions i the language  
 
* Fortran, the 1st wide-used high-level programming, used in HPC since 1954 and will likely be used for a lomg time, as there are still many Fortran projects around. Fortran handles multi-dimensional arrays comfortably. Due to some restrictions i the language  
  

Revision as of 14:32, 5 May 2020


Among the decades, very many programming languages has been evolved. We list some most widely used in the context of HPC here.

Low-Level programming languages

  • Machine code: That are 10001001011110 your computer can understand. You likely not.
  • Assembler: human-readable (to somehow extent; many says 'for special humans'), but still very low-level. Allows the programmer to get the very last possible performance crumbs from the hardware, but in turn is hardware-dependent and very tedious to program. Highly-tuned libraries often contain ASM parts, often making this software less-portable. You should not start at assembler level when programming an application.

High-level programming languages

... are readable by humans. The source code is a text file, to be modufie to an executable file by a compiler (we do not want to introduce the definition bush about compiled and interpreted languages here).


Portability

  • Fortran, the 1st wide-used high-level programming, used in HPC since 1954 and will likely be used for a lomg time, as there are still many Fortran projects around. Fortran handles multi-dimensional arrays comfortably. Due to some restrictions i the language
  • C and C++
  • JAVA

Script / interpreted languages

  • Shell
  • Python
  • Perl

Other

  • MATLAB

References