Week 03 - 2 - Encapsulation, Inheritance, Types, Overloading, Overriding, Polymorphism, and Abstract

This preview shows page 1 - 13 out of 128 pages.

Yann-Gaël Guéhéneuc This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 3.0 Unported License SOEN6461: Software Design Methodologies Encapsulation, inheritance and types, polymorphism (overriding/overloading), abstraction and types
2/128 Programming Languages (1/4) Programming languages have been around since the 1800s – In 1801, Joseph Marie Jacquard invented a “code” to represent sewing loom arm movements on punch cards
3/128 Programming Languages (1/4)
4/128 Programming Languages (1/4)
5/128 Programming Languages (2/4) – In 1842-43, Ada Lovelace designed a “code” to compute Bernouilli numbers on Charles Babbage's Analytical Engine
6/128 Programming Languages (3/4) – In 1936, Alan Turing invented the Turing machine and a “code” to program it – In the 1950s, the first modern programming language appear FORTRAN in 1955 by John Backus et al. LISP in 1958 by John McCarthy et al. COBOL in 1959 by Grace Murray Hopper – Since then, many more have been created…
7/128 Programming Languages (3/4) – In 1936, Alan Turing invented the Turing machine and a “code” to program it – In the 1950s, the first modern programming language appear FORTRAN in 1955 by John Backus et al. LISP in 1958 by John McCarthy et al. COBOL in 1959 by Grace Murray Hopper – Since then, many more have been created…
8/128 Programming Languages (4/4) The design and implementation of the newer programming languages all attempt – To solve problems (real or perceived) in previous languages – To rise the level of abstraction and hide away the hardware systems – To provide constructs that are closer to the domain model or adapt better to hardware
Programming Languages (4/4) The design and implementation of the newer programming languages all attempt – To solve problems (real or perceived) in previous languages – To rise the level of abstraction and hide away the hardware systems – To provide constructs that are closer to the domain model or adapt better to hardware Civilization advances by extending the number of important operations that we can perform without thinking about them. —Alfred North Whitehead (1911)
10/128 Structured Programming Before 1968, (modern) programming languages were mostly unstructured – No explicit loops ( for , while …) – Instruction goto + line number / labels
11/128 Structured Programming Before 1968, (modern) programming languages were mostly unstructured – No explicit loops ( for , while …) – Instruction goto + line number / labels Problem: lack of structure Solution: structures
12/128 Structured Programming Before 1968, (modern) programming languages were mostly unstructured – No explicit loops ( for , while …) – Instruction goto + line number / labels Main (most famous) criticism by Edsger Dijkstra in “Go To Statement Considered Harmful”, CACM, 1968 Problem: lack of structure Solution: structures

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture