Types of Programming Language, Translators and IDE
High Level Programming Language
Closer to human language // closer to English
Independent of a particular type of computer/device/platform // portable language
A language such as Python, Java, Pascal, etc.
Advantages of High Level Programming Language
Easier/faster to write code as uses English-like statements
Easier to modify as uses English-like statements
Easier to debug as uses English-like statements
Portable language code
Low Level Programming Language
Close to the language processed by computers
May use mnemonics
Low level languages relate to the specific architecture and hardware of a computer
Can be machine code (binary), requires no translation
Can be assembly language, requires translation using an assembler
Advantages of Low Level Programming Language
Can be executed faster
No requirement for the program to be portable
Program will be more memory efficient
No requirement for a compiler/interpreter
Can use specialised hardware
**Why a compiler or an interpreter is needed when running a high-level
program**
Code is required to be converted into machine code/binary
Code needs to be produced that can be understood by the computer
Compiler
Translates high-level language to low level language
It translatesallcodebeforeit is executed
A list of errors in the code is created
It creates an executable
Describe how a Compiler reports errors
It creates an error report after trying to compile displayingallerrors in the code that require correction before execution can take place
Compiler Advantages
Executable files can easily be produced and distributed to users.
Once the executable file is produced, users do not need the compiler software.
Users cannot change or illegally use the original source code.
Faster execution of program
Compiler Disadvantages
The final object file is only produced when all errors in the source code have been located and fixed.
Uses a lot of resources. During the compilation process, memory contains the compiler software, source code, object code, memory for working storage.
Difficult to find errors so the procedure is time consuming with several runs of the compiler before all the errors are located.
Interpreter
Translates a program one line of code at a time
Machine code is directly executed // The interpreter is used each time the program/code is executed
Will identify an error as soon as it finds one in a line of code
Interpreters are commonly used for testing a program
Interpreter Advantages
Produces error messages as each instruction is translated so debugging is easier and faster.
An interpreter halts (stops) when it encounters a syntax error. So errors can be corrected in real time.
The programmer can attempt to run and test the program at any time including before all the code has been written.
The effect of any change made to the code can be seen immediately.
Interpreter Disadvantages
Execution is slower than compilers because no executable files are produced. Every time the program is executed it has to be first translated.
The interpreter software has to be present in memory every time an attempt is made to run the program.
No executable file produced: so all users must have the interpreter software available and the code is not protected therefore other programmers could make unwanted changes.
Assembler
Translates a low level language into machine code
An executable file of machine code is produced
One low-level language statement is usually translated into one machine code instruction
Assembled programs can be used without the assembler
An assembled program is usually distributed for general use
IDE (Integrated Development Environment)
What is an IDE?
Used by programmers to aid in the writing, editing and development of programs.
Provides a code editor
Provides translation for code with an Interpreter/Compiler