Classification of Programming Languages
Overview
CraigNDave
https://www.youtube.com/watch?v=yORSZkhNpZ4&index=1&list=PLCiOXwirraUDJYD-VxmztyhsDP0QM2BHW
Computer Science Tutor
https://www.youtube.com/watch?v=HtUQzhTt3gE&list=PL04uZ7242_M6O_6ITD6ncf7EonVHyBeCm&index=15
TRC Video
https://www.youtube.com/watch?v=YsRmX3Lnb6M
Low Level vs High Level
https://www.youtube.com/watch?v=tl-96ZypmpQ&list=PLCiOXwirraUDJYD-VxmztyhsDP0QM2BHW&index=2
Low Level Languages
Machine Code
Machine code is the basic binary information required for a computer to perform a function. It is classified as a 1st generation programming language. Each command is binary pattern, ie 100001 might be load, or 100010 might be add or 100011 might be store.
This is essentially writing a program by coding the binary. This provides direct access to the hardware and all programs are converted to machine code at some point.
Assembly Language
Assembly language is a low level, 2nd generation programming language, purposed towards fast execution and complete control over hardware. It replaces a binary pattern with a more readable mnemonic, ie a command word.
One assembly language instruction is equivalent to one machine code instruction, and an assembler is used to convert the assembly language to machine code.
Relationship Between Machine Code & Assembly Language
One machine code instruction will create one assembly language instruction. Remember assembly language is essentially replacing a binary pattern with a command word.
Terms
Mnemonics
An identifiable text label for a particular command (rather than requiring a programmer to write instructions in binary).
Source Code
The source code is a program as written by the programmer.
Object Code
The object code is generated by the interpreter, compiler or assembler.
Benefits of Low Level Languages
- Programs developed using low level languages are fast and memory efficient.
- Programmers can utilise processor and memory in better way using a low level language.
- There is no need of any compiler or interpreters.
- They provide direct manipulation of computer registers and storage.
- It can directly communicate with hardware devices.
High Level Languages
The main characteristics of a high level language are:
- It is easier for the programmer to identify what a command does (English words)
- High level languages need to be translated
- One command in a high level language represents many lines of code in assembler or machine code
- They are portable between systems
- More straight forward to program
- Wider variety of data structures
Imperative
Your code focuses on creating statements that change program states by creating algorithms that tell the computer how to do things. It closely relates to how hardware works. Your code will make use of sequence, selection, and repetition.
Imperative, or procedural, programming languages break down processes into functions or methods, which are all given command words.
A single statement of an imperative language is converted to multiple machine code instructions by a language translator (such as an interpreter or compiler), which are then executed in sequence.
Imperative languages are part of the 3rd generation of programming languages. Examples of imperative languages include C++, Python and Visual Basic.
Declarative
Often referred to as 4th generation Languages, Declarative languages allow the programmer to specify what they want to produce, without having to say how to achieve it.
For example SQL is declarative, you say what you want to select, where to select it from, and what conditions apply. The SQL server will then execute your request according to its coding and provide you with the results.
Benefits of High Level Languages
- They are programmer friendly (easy to write, debug and maintain).
- Higher level of abstraction, one command equates to many machine code instructions.
- It is machine independent language.
- Easy to learn.
- Less error prone, easy to find and debug errors.
- Better programming productivity