25
Programming: A Brief History

Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Embed Size (px)

Citation preview

Page 1: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Programming: A Brief History

Page 2: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Introduction• Five Generations of Programming Languages• Gets closer to representing data in human terms• Requires additional translation • Higher generations tend to be slower.

Page 3: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

First Generation• Machine Language Pre-1950 programming in Binary

Code. means speaking directly to the computer in the language of 1s and 0s it understands.• Machine language is fast because no translation is

required on the computer's part.• However, it is almost impossible to learn--imagine having

to enter a string of hundreds of binary digits just to tell the computer to perform a basic operation like adding numbers.• Nevertheless, this is how the first computers were

programmed.

Page 4: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

An Example of Binary Code 00000001 11111110 10101010

00000011 11111100 0101010100000111 11111000 0000111100011111 00111111 0111111111111110 00101010 0001010100001010 00000101 0000001111000000 11100000 1111000011111000 11111100 11111110

Page 5: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Second Generation

Assembly Language - Early 1950sAssembly language provided English abbreviations for computer

operations.The advantage of this type of reasoning is that little translation needed to be done to get to machine language, so assembly still retained much of its speed.

Page 6: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

An Example of Assembly LanguageThe abbreviations were cryptic, such as:

CMP A, B "Compare the values of A and B."

Page 7: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Third Generation: High-Level Languages - Late 1950s –1999A group of scientists/engineers at IBM, wanted a language

that would take care of the mathematical operations automatically and that would provide for formatting of output (for example, formatting dollar amounts to two decimal places).

They created a language called FORTRAN (FORmula TRANslator)

However, considerable translation was needed to get to machine language the computer could understand.

Page 8: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

IF A.gt.7

THEN This is the programming code for greater than.

An Example of FORTRAN

Page 9: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Third Generation continued

Third generation (high-level) still rules todayFORTRAN did not include data management and

reporting tools business people needed. COBOL (COmmon Business Oriented Language)

was the solution, and although it has recently been made obsolete by modern database management systems, it is still widely used. (Y2K example)

BASIC (Beginner's All-Purpose Symbolic InstruCtion Language) also developed in 1964 and was somewhat easier to use.

Page 10: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

GRACE HOPPER Programmer

• Co-invented COBOL• Coined the term

“Debug”

Page 11: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

John Kemeny & Thomas Kurtz

BASIC was invented at Dartmouth College in 1964 to give students a simple programming language that was easy-to-learn... The official languages (then, Fortran and Algol; now, C, C++ and Java) were designed for professionals.

- Thomas E. KurtzJohn Kemeny

Thomas E. Kurtz

Page 12: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

BASIC - Beginners All-purpose Symbolic Instructional CodeAn example of BASIC:

CLS IF G$ = “M” THEN PRINT “ISN’T PROGRAMMING GREAT!” ELSE PRINT “YOU’RE A PROGRAMMER!” END IF END

Page 13: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

FRENCH VS. SWISS

Pascal/WirthPASCAL was introduced in 1971 by a Swiss computer scientist

named Niklaus Wirth.Designed to show the proper way to implement a programming

languageBased on structured programming and is therefore an excellent

teaching language

Page 14: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Third Generation continued into the 70sModular Programming

C. This language, written in the 1970s, has two advantages: First, it encourages a modular style to programming, meaning that each chunk of code performs one and only one function; programs are built by linking these chunks of code together.Second, C was designed to retain much of the speed found in Assembly Language. These advantages made it highly popular for developing PC and Mac software.

Page 15: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

And then into the 80s

Object-oriented programmingC++ which attempts to give program data models based on real life. For example, a type of object called Person could be defined. This object has attributes hair color, eye color, and age, among others. The object also has methods which make it operate, like walk, talk, and eat.

Page 16: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Brian Kernighan , Dennis Ritchie & Bjarne Stroustrup

Brian Kernighan Dennis Ritchie Bjarne Stroustrup

Check out http://www.research.att.com/~bs/ for more information on Bjarne Stroustrup (his home page).

Page 17: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Internet

JAVA This language, developed in the 1991, and is similar in style to C++.

Java does not depend on particular hardware and software being present.

This makes it a good development tool for applications which run over the Internet, since there are many different types of machines wired into the Internet.

Employers often look for Java applications on resumes.

Page 18: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Fourth Generation

4th Generation LanguagesFourth-generation languages do not require the

programmer to tell the computer how to solve a problem. He/she simply has to specify the input and describe the desired output, and it is up to the computer to figure out how to get there.

Many database query languages would fall under the fourth-generation heading.

Page 19: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

An Example of a Query in MS AccessIf I query a database and say, "Give me the names

of all full-time professors in the History Department who make over $90,000 a year," I don't have to tell the computer how to search the database; I just tell it what I want. FULLTIME DEPARTMENT SALARY Y History >90000

Page 20: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

WINDOWS

1995 and BeyondVISUAL BASIC When GUI-based operating systems

like Windows got popular in the early 1990s, Microsoft saw a chance to introduce programming to a new generation. Visual Basic is a visual programming language which manages GUI elements like windows, menus, and buttons for you. It makes up for the power that the original BASIC lacked, and it is quickly gaining on C++ for the title of most popular language.

Page 21: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

HTML and Authoring EnvironmentsHTML (HyperText Mark-up Language)

Macromedia DreamweaverAny text editor (eg. Notepad)HTML

Page 22: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Fifth Generation

Artifical Intelligence and Expert SystemsThe ultimate goal of programmers is to be able to

tell the computer what to do in their native language. These systems are intended to think and anticipate the needs of their users, instead of just executing commands.

Fifth-generation programming has not evolved past the experimental stage.

Page 23: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Classifications of Programming LanguagesCompiled vs. Interpreted

Compiled programming languages (such as C) check the code you type in before they will run it.They look for any syntax errors, and if they find one they will stop and tell you to fix it. If the code is syntactically correct, they will compile it, or turn it into a machine-executable form, using only the instructions the machine needs to run the program. By using only a subset of the available instructions in this way, the program is sped up.

Page 24: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Classifications of Programming LanguagesThe opposite is an interpreted language (such as

BASIC). These languages are happy to run the code without checking it first. If they come across a line they don't understand, they break out of the program and report an error. This makes debugging easier.Interpreted languages tend to be slower because they have to have the entire set of instructions available. T

he H

isto

ry o

f P

rogr

amm

ing

Lan

guag

es

Page 25: Programming: A Brief History. Introduction Five Generations of Programming Languages Gets closer to representing data in human terms Requires additional

Standard vs. Event-DrivenMost programming languages execute their code in

sequence. Generally they execute the lines of code in order, from start to finish.

The advent of visual languages and GUIs caused a new style to be developed. In event-driven programming, the computer simply sits there and waits for an event to happen. This event could be a click of a mouse, typing on the keyboard, or whatever. Code is written to be executed for a specific event. For example, if the user clicks on a button marked "Exit," code will be executed which unloads the program from memory.