Update README.md

Signed-off-by: David Rotermund <54365609+davrot@users.noreply.github.com>
This commit is contained in:
David Rotermund 2024-01-17 12:03:51 +01:00 committed by GitHub
parent 90b53bb54a
commit 0730dc6f66
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -39,10 +39,10 @@ The term **Software** encompasses both computer programs and the data used by th
A programming language subserves the function of transmitting commands to the computer and providing a well defined sequence in which these commands are to be executed.
At this point, we want to distinguish between three generations of programming languages. The first generation consists of the machine languages. A machine language is made up of simple commands that are represented as binary numbers. For every computer type, more precisely for its CPU, a special code is necessary. The direct programming in a machine language is nowadays rarely done any more.
At this point, we want to distinguish between three levels of programming languages. The first generation consists of the machine languages. A machine language is made up of simple commands that are represented as binary numbers. For every computer type, more precisely for its CPU, a special code is necessary. The direct programming in a machine language is nowadays rarely done any more.
The second generation are the assembler languages. Inspite of binary numbers, coding is done by symbols. An assembler directive is translated 1:1 to a machine command. Thus, also assembler programs are specific to the type of processor.
The third generation of programming languages is machine independent, i.e. can be executed on every CPU. These **higher programming languages** utilize more complex commands and program structures, allowing for problem-oriented working and reducing possible errors and lack of clarity to which machine oriented languages are prone. However, also programs written in such higher programming languages have to be ultimately translated to machine language. The programs supplying the translation are called compiler respectively interpreter. Examples for higher programming languages are Pascal, Fortran, C and C++. An interpreter, on the other hand, interprets and directly executes every command. Here, examples are Basic and Lisp. Interpreter programs are easier to write, since debugging is more straight forward. However, the execution of these programs is slower.
The third generation of programming languages is machine independent, i.e. can be executed on every CPU. These **higher programming languages** utilize more complex commands and program structures, allowing for problem-oriented working and reducing possible errors and lack of clarity to which machine oriented languages are prone. However, also programs written in such higher programming languages have to be ultimately translated to machine language. The programs supplying the translation are called compiler respectively interpreter. Examples for higher programming languages are Pascal, Fortran, C and C++. An interpreter, on the other hand, interprets and directly executes every command. Here, examples are Python, Basic and Lisp. Interpreter programs are easier to write, since debugging is more straight forward. However, the execution of these programs is slower.
The higher programming languages have developed in various directions. Especially for the natural sciences, an interesting branch are the interactive calculation tools, like for example Matlab, Maple and Mathematica. These tools facilitate the computer based work on scientific problems and questions by providing mathematical partial solutions and graphical representation. It is distinguished between numerical (Matlab) and symbolic (Maple and Mathematica) calculation tools. The latter are also termed 'computer-algebra systems'.
The higher programming languages have developed in various directions. Especially for the natural sciences, an interesting branch are the interactive calculation tools, like for example Python, Matlab, Maple and Mathematica. These tools facilitate the computer based work on scientific problems and questions by providing mathematical partial solutions and graphical representation. It is distinguished between numerical (Python with Numpy or PyTorch and Matlab) and symbolic (Python with SymPy, Maple, and Mathematica) calculation tools. The latter are also termed 'computer-algebra systems'.