SCD - 1.2.4 - Types of Programming Language
- Created by: Freddie Frame
- Created on: 26-06-20 15:06
T3 - Programming Paradigms
- Prodecural - Python, Basic, Pascal, C#
- Object-Oriented - Java, C++, Visual Basic, .NET, (Python)
- Declarative - SQL, Prolog, HTML
- Functional - Haskell, JavaScript, Logo
A paradigm is a way of programming (how the languages tell the computer what to do)
Imperative Approach - HOW you are going to get to the endpoint, e.g. steps to take a seat at a cinema
- Series of instructions that tell the computer what to do with the input to solve the problem making imperative highly structured
- Structured is a type of imperative programming which uses constructs (sequence, selection, iteration, recursion rather than "goto" statements)
Declarative Approach - WHAT the endpoint is, e.g. what you want, not how you are going to do it
- Internal processes of the language finds the best way of solving a problem (e.g. SQL is used to create, amend and query databases
Logic Programming + Prolog
Logic - Form of declarative programming, it expresses the logic of a computation without expressing its control flow
- Consists of logocal statements that express facts and rules about the program within a system of formal logic
- Rules are written as logical clauses with a head and body e.g. "H is true if B1,B2 and B3 are true
Prolog is an example of logic with statements written in the form of facts (unconditionally true) and rules (true depending on a given condition) [Order of these are not important] e.g.:
- likes(tom, jenny). /tom likes jenny/
- eats(ben, apples). /ben easts apples/
These can then be queried - ?- eats(ben, bananas). No /Does not match a fact in the database/
Variables in prolog are distingued with an uppercase letter - ?- eats(ben, Fruit) and then as Fruit=apples the answer returned is yes
Rules in prolog are expressed in the form of IF a is true, THEN b is true
Backtracking, applications of declarative and OOP
Backtracking is used in prolog which selects a route through the maze of facts and rules until it finds a dead end and then backtracks until the goal is achieved or there are no more routes - this is an important feature of declarative programming
Declarative programming is well suited to expert systems which embodies the facts and rules about a particular field of knowledge e.g. medical diagnosis, oil exploration, tax regulation, processing natural language
Object-Oriented Programming (OOP) are used to abstact details of implementation allowing code to be reused and easy to maintain, this is done by viewing the world as a collection of an object, such as: Person, Animal, Event, Data Structure
OOP programming consists of objects which each have their own attributes and methods
e.g. a program to keep records of bank accounts
- Object – Account
- Attribute – Account number, name of holder, type of account, balance
- Method – Deposit money, withdraw money
More on Object Oriented Programming
Class - Blueprint for an object, defines attributes and methods capturing common characteristics and behaviours of an object (e.g. class vehicles with attributes wheels and method move forward), a constructor is ued to create objects based on the class, example:
- Turtle class has a position, heading, colour, etc. , each turtle has methods such as forward, left, right
- A new turtle object can then be created with statement - Raphael = new Turtle (x1, y1, 0, blue), as it inherits the methods then Raphael.forward(20) can then be used to move it
Encapsulation - A fundamental principle of OOP where attributes and methods are wrapped into a single entity
Information can be hidden in OOP:
- Object's attributes are hidden (Private) and only accessed and changed through the object's methods
- Methods are required to set (Setters) and retrieve (Getters) an object's attributes
- To interact with an object, its methods must be accessable (Public)
Classes and Inheritance
A class is defined by specifing the methods and attributes that belong to it in a class definition
Inheritance - A relationship among classes where a sub-class shares all of the methods and attirbutes of a parent class e.g. classes cat and mouse will inherit the attributes and methods of the Animal class ontop of their own attributes and methods - Inheritance can be determined using the "Is a" rule - "Is object A an Object B?" e.g. is a cat an animal?
Polymorphism & Inheritance Diagram
An inhertited class may have methods and attributes not defined in the parent class, it may in addition, redefine methods that are defined by the parent class, this is called polymorphism
Example - Parent class bird has method eat
- subclass Parrot may define this as eating seeds
- subclass Eagle may define this as eating meat
- subclass Chicken may define this as eating seeds & meat
Inheritance diagram shows what methods and attrubutes classes have and inherit
T4 - Assembly Language
Assembly is an example of a Low-level language and used mnemonics to represent operation codes with typically 2-4 character codes used to represent all the machine code instructions
Each processor has its own assembly language which is translated using an assemler into machine code for execution
The Little Man Computer is an imaginary computer with a limited instruction set, with instructions such as:
- ADD - adds the contents of memory address ** to the accumulator
- SUB - subtracts the contents of the memory address ** from the accumulator
- STA - stores the value in the accumulator in the memory address **
- LDA - loads the accumulator with the cocntents of the memory address **
Data can be entered by a user and stored in memory using INP - INP, STA x (stores the input in variable called x
Varaibles are declared and shown using the DAT statement e.g. x DAT
All calculations are carried out in the accumulator and an output statement OUT displays the contents of the accumulator
The Instruction Set, Machine Code Format and Addre
The LMC only contains 11 instructions and the imaginary computer on which it runs only has 100 memory locations, on a real computer there will be many more instructions (multiply, divide, shift left, shift right, ect.)
Machine code is held in 16 bits and can look like this:
The last 2 bits of the operation 'op' code specify the addressing mode which specifies whether the operand represents certain values, the addressing nodes are:
Immediate addressing - Operand holds an actual value
Direct addressing - Operand holds the address of the value (This is what the LMC does)
Indirect addressing - Operand is the location holding the address of the value
Index Addressing
Index Addressing
Using indexed addressing - address of the operand is obtained by adding a constand value to the contents of the general register (called the index register)
Used to access and array whose elements are in successive memory location by incrementing the value in the index register, successive memory locations can be accessed, in the example below, the start point (31) is a fixed value and R0 is the value that increments by 1 each time:
Related discussions on The Student Room
- CIE A Level Computer Science Sucks! »
- Amazon SDE apprenticeship »
- Best Programming Language to learn? »
- A Level Computer Science »
- Extra Curriculars »
- Software engineering degree apprenticeship. »
- How do you practice programming java for beginners? »
- Software engineering apprenticeship help »
- Choosing a Software MSc »
- What should my main focus be if i want to go onto software engineering? »
Comments
No comments have yet been made