Family of Programming Languages

Слайд 2

Слайд 3

Programming Languages When computers were first invented they had to be

Programming Languages

When computers were first invented they had to be programmed

in their own natural language, i.e. binary machine code.
Later, programmers developed more sophisticated systems to make programming easier and more efficient.
Assembly languages were developed as the 2nd generation of languages.
High-level languages (3rd & 4th generation) later made programming even more productive.
Слайд 4

Слайд 5

The Generations

The Generations

Слайд 6

These are the only kind of instructions the CPU can directly

These are the only kind of instructions the CPU can directly

understand and execute.
Stream of binary bit patterns that represent the instructions that are to be carried out.
The binary bit patterns are decoded by the processor’s logic circuits.
They are then acted upon or executed, one after another.
Machine code is a type of low-level code.

Machine Code

Слайд 7

Machine Code Writing programs in machine code is difficult and time-consuming.

Machine Code

Writing programs in machine code is difficult and time-consuming.
It’s

difficult to remember all the bit patterns and what they do.
Each operation of the processor has to be defined.
Each machine instruction causes the processor to carry out just one operation.
Nearly all machine code instructions consist of two parts:
An opcode, which tells the processor what to do
An operand, which tells the processor what to do it to.
Слайд 8

This is the full set of machine code instructions, which the

This is the full set of machine code instructions, which the

CPU “understands” and can execute directly without translation.

Instruction Set

Слайд 9

Assembly Languages The commands are still the basic CPU instruction set,

Assembly Languages

The commands are still the basic CPU instruction set, but

in an easier-to-read form.
One assembly language instruction corresponds to one machine code instruction.
Assembly language instructions have to be translated into machine code by an Assembler before the CPU can execute them.
Слайд 10

Assembly Languages Low-Level Language As with machine language, each instruction causes

Assembly Languages

Low-Level Language
As with machine language, each instruction causes just one

processor operation
These use mnemonic instructions (op-codes) instead of binary codes and hex or decimal in operands.
These make programming less error prone and more productive than programming in pure binary code.
Слайд 11

High-Level Languages High-Level languages do not have the same one-to-one correspondence

High-Level Languages

High-Level languages do not have the same one-to-one correspondence between

commands and machine code instructions as an assembler.
A high-level command may represent several machine code instructions:
In a high-level language we can multiply two numbers together in one command.
At machine level this is not possible and it has to be done by repeated addition.
Слайд 12

High Level Languages High level commands have to be turned into

High Level Languages

High level commands have to be turned into binary

instructions the machine can understand; this is translation.
There are two basic ways of translating high-level code
Complier: converts the whole code into machine code before running it
Interpreter: converts the code one instruction at a time, running each instruction before translating the next.
Слайд 13

High-Level Languages Source code is the code written by the programmer.

High-Level Languages

Source code is the code written by the programmer.
A compiler

translates this source code into an object code in machine language. Object code runs independently of the source code and translator.
An interpreter does not create object code so the source code has to be translated each time it is run.
This means interpreted languages need the source code and translator present every time the code is run.