classic computing technology programming paradigms

16
CLASSIC COMPUTING TECHNOLOGY CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

Upload: mabel-ami-garrett

Post on 14-Jan-2016

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

CLASSIC COMPUTING TECHNOLOGYCLASSIC COMPUTING TECHNOLOGY

Programming Paradigms

Page 2: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

THE DIFFERENCE ENGINETHE DIFFERENCE ENGINEEach cog contains printable

numbers which turn using forward and reversed teeth to turn

Funded initially by the British Government, the machine ran out

of finance as progress was too slow

Page 3: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

THE DIFFERENCE ENGINETHE DIFFERENCE ENGINE

Each cog contains printable numbers which has the ability

to store one decimal number in each column

Notice the tab between the 6 & 7 – this trips the machine to

return to 0 when 9 is passed

Page 4: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

THE PARODY - HEXTHE PARODY - HEX

The idea of an early computer is now so woven into society’s history that it is now seen in literature, films

and tv.

The parody of HEX introduced in Terry Pratchett’s Discworld series was based on the Difference Engine –

here ants were added “because all computers need bugs”

Page 5: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

THE DAWN OF PROGRAMMINGTHE DAWN OF PROGRAMMING

1800 – Weaving looms made use of ‘punched cards’ to weave patterns

1822 – Charles Babbage produces a computing machine named ‘The Difference Engine’ – Claimed to be the first computer

1843 – Charles Babbage creates a new machine called the ‘Analytical Engine’. This is widely agreed to be the first computer.

1890 – Herman Hollerith made the link between punch cards for patterns and data. The 1890 census was recorded on punch cards.

1936 – Alan Turing introduces his ‘Turing Machine’ which is a basic abstract symbol-manipulating devices which, despite their simplicity, can be adapted to simulate the logic of any computing algorithm.

Page 6: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

FORTRAN (FORmula TRANslation)FORTRAN (FORmula TRANslation)

1955 – John Backaus developed the FORTRAN language for IBM in the 1950s for scientific and engineering applications

FORTRAN is still in use today in some areas.

Look at the coloured cards – How do these relate to the early designs for programming we have just discussed?

Page 7: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

PROGRAMMING AS A CONCEPTPROGRAMMING AS A CONCEPT

John Backus – 1975:

"Much of my work has come from being lazy. I didn't like writing programs, and so, when I was working on the IBM 701 [an early computer], writing programs for computing missile trajectories, I started work on a programming system to make it easier to write programs."

Page 8: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

COBOL COBOL (COmmon Business-Orientated (COmmon Business-Orientated

Language)Language)1959 – Grace Hopper creates a language aimed at the financial sector

1969 – Due to her work with COBOL, Grace Hopper won the first ‘man of the year’ award given by the Data Processing Management Association

Initially COBOL did not support local variables, recursion, dynamic memory allocation or structured programming – these were all added later.

The language contains over 400 reserved words (or ‘keywords’)

Since the 1960s, COBOL has been the programming language favoured by the Military, Government and other State run organisations.

Page 9: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

BASICBASIC

1964 – BASIC was Designed by John Kennedy & Thomas Kurtz

BASIC was intended to address the complexity issues of older languages and allow those with less knowledge of maths into the field of programming.

Loosely based on Fortran, BASIC made use of ‘structured’ statements and had the ability to be used for a variety of purposes.

BASIC is the father of most modern programming languages – without basic, we would not have some of our more prominent languages today:

• Visual Basic (the clue is in the name!)• VB.Net• C• Pascal• Delphi

Keyword!!

Page 10: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

PASCALPASCAL

1970 – Pascal is published by Niklaus Writh with the aim of introducing one of the first procedural languages and increasing efficiency in programming

Important features of Pascal included were records, enumerations, subranges, dynamically allocated variables with associated pointers, and sets. This allowed programmers to create their own complex datatypes (think Generalisation.....)

This provided a basis for future procedural languages such as C.

Program HelloWorld(output);

begin

writeln('Hello, world!')

end.

Page 11: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

CC

1972 – C is released by Dennis Richie as an evolution of structured programming

C was hailed as one of the most efficient and manipulative languages available and as such was used worldwide for a variety of purposes.

One of the main benefits of C was it’s ability to compile for a very wide variety of computer platforms.

Remember, 1972 was the dawn of the PC, there was no single leader in technology – Apple and Microsoft were just beginning to build their empires.....

Page 12: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

C++C++1983 – C++ is released by Danish Born Bjarne Stroustrup

C++ is the first language of it’s kind because it no longer uses a structured language.

From C++ forward, languages make best use of memory by way of Object Orientation

FunctionFunction

FunctionFunction

FunctionFunction

ProgramProgram

Page 13: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

Object Orientated LanguagesObject Orientated Languages

C++ Brought with it efficiencies never thought possible with structured languages:

Polymorphism:

Best described out of context – An object which is changed to be best for purpose

Keyword!!

Page 14: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

Object Orientated LanguagesObject Orientated Languages

Polymorphism:

In programming, Polymorphism often refers to ‘function overloading’.

That is using the same named function to complete a different set of tasks – here the function is ‘+’:

1.1 + 2 = 3 (integer)2.3.14 + 0.0015 = 3.1415 (float)3.1 + 3.7 = 4.7 (int / float = float)4.[1, 2, 3] + [4, 5, 6] = [1, 2, 3, 4, 5, 6] (numeric array build) 5.[true, false] + [false, true] = [true, false, false, true] (string array build) 6."fu" + "bar" = "fubar” (string builder)

Page 15: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

C++C++

C++ is still widely used today in many industries

The dawn of internet technologies saw a decline in C++ programming as it’s use on a web page could spell disaster for users. Why?

It’s ability to directly access memory

However, within stand alone programs such as military and private aviation simulation, C++ still reigns supreme.

Bjarne Stroustrup, now a Dr – continues to have involvementwith developments within C++ and still teaches his theoriesin many universities around the world.

Page 16: CLASSIC COMPUTING TECHNOLOGY Programming Paradigms

PROGRAM EVOLUTIONPROGRAM EVOLUTION

From THIS To THIS

In 150 years. What Next?