programming languages - background concepts

Views:
 
Category: Education
     
 

Presentation Description

Background Concepts

Comments

Presentation Transcript

Programming Languages : 

Programming Languages Background Concepts By Haydee D. Limson,MIS

1.1 What is Programming Language? : 

1.1 What is Programming Language? First, let us look at some definitions that were used by other experts. 1. A programming language is a system for describing computation. 2. A system of signs used by a person to communicate a task/algorithm to a computer, causing the task to be performed.

A Bit History First : 

A Bit History First

1.2 A Bit History First : 

1.2 A Bit History First Models of computation during pre-computer era mathematical algorithms, lambda calculus, Turing machines and many others.

FORTRAN : 

FORTRAN The first successful programming language is FORTRAN, short for FORmula TRANslation, designed by John Backus in 1956.

FORTRAN : 

FORTRAN Over the years FORTRAN developed from FORTRAN-I to FORTRAN-II, FORTRAN-III, FORTRAN-IV, FORTRAN-66, FORTRAN-77, FORTRAN-90, FORTRAN-95, and to High Performance FORTRAN.

ALGOL-60 : 

ALGOL-60 ALGOL(short for ALGOrithmic Language) was defined by this committee as an attempt to improve FORTRAN. It was redesigned and improve with the final report written in the revolutionary concise BNF form (Backus Naur Form from the names of the two committee members John Backus and Peter Naur) in 1960 – hence the suffix of Algo-60

ALGOL-60 : 

ALGOL-60 Algo-60 is considered to be the most ingenious language definition effort in the early days of programming languages, but ironically it never gained widespread acceptance. Algo-60 is credited for introducing block structure, compound statements, recursive procedure calls, nested if, loops, arbitrary length identifiers, and many others

LISP : 

LISP Developed in the late 1950’s by John McCarthy, Lisp is still one of the most used programming languages, even beating the popularity of FORTRAN at present. Lisp was based on two existing languages during that time: mathematics and ideas of McCarthy himself The algebraic syntax of Lisp was borrowed from FORTRAN and the method of symbolic manipulation from Information Processing Language (IPL).

LISP : 

LISP McCarthy’s contribution were the use of list’s to represent information, the representation of program as data, and the creation of garbage collection to round up and make available memory locations that were no longer needed (Baron, 1986).

LISP : 

LISP Is the first major language to support list processing. Is the first major language to support recursion. Is the first functional language (to the extent that is functional). Uses variables (largely) to represent parameters, rather than storage. Uses the lambda notation.

COBOL : 

COBOL In 1960, a fabulous language called COBOL (Common Business Oriented Language) was designed by the Conference on Data Systems and languages (CODASYL).

COBOL : 

COBOL COBOL was designed from this assumption and hence they came up with a language that has the following features: Handles large files of data safely Moves data around safely Structures data explicitly No need for complex mathematical functions Easy to program

APL : 

APL APL (short for A Programming Languages) was designed during the late 1950’s by Kenneth Iverson of Harvard University. But its first implementation was not available until the early 1960’s. APL is unusual in many respects. Its unusual feature is that all operators have the same priority and multiple operators in an expression are evaluated from left to right.

SNOBOL : 

SNOBOL SNOBOL (short for String-Oriented Symbol Language) was designed in 1962 by a research group at Bell Laboratories as an aid to their own applications in symbolic formula manipulations. It later spinned off to SNOBOL3 in 1966 and SNOBOL4 in 1969.

SNOBOL’S features include: : 

SNOBOL’S features include: String manipulation operations - allows a string to be tested for contents and make replacements in the string Pattern matching – involves examining a pattern (substring), for the occurrences of the specified pattern in the string Dynamically typed – does not have type declarations and no restrictions on the data type of the value of any variable Interpretive language – enables the compiler to translate the program into a notation which the interpreter can easily execute

BASIC : 

BASIC Indeed many ideas were coming out during the early 1960’s. In 1963, Thomas Kurtz and John Kemeny of Dartmouth College designed BASIC, an easy-to-learn, interactive language. BASIC is an acronym for Beginner’s All Purpose Symbolic Instruction Code and was the most used language on microcomputers up to the late 1980’s.

BASIC : 

BASIC

BASIC : 

BASIC

BASIC : 

BASIC BASIC was a success in the classroom bec. it did not require from the programmer any technical or mathematical background. The simplicity of the language was the main reason it was learned by so many.

Deficiencies of BASIC : 

Deficiencies of BASIC BASIC, however, came under fire due to the lack of structured programming support. No declaration of variables, hence poor error checking Single character variable names No (or later versions, poor) support for subprograms Poor control structures Limited data structuring capabilities

ALGOL-W : 

ALGOL-W Nicklaus Wirth’s contribution Algol-68 is Algol-W. designed in the mid-1960s and is another spin-off from Algol-60. Although Algol-60 and Algol-W are not compatible, they are closely related. Algol-W is already block structured, recursive and parameters are no longer passed by name.

JOVIAL : 

JOVIAL Jovial is another attempt to improve Algol-60 It is an acronym for ‘’Jules’Own Version of the international Algorithmic Language.’’ This improvement to Algol-60 Jules Schwartz impressed the U.S. Air Force (USAF) which chose Jovial as its preferred standard language. Jovial though is known by one of its bizarre syntax rules – the requirement of declaring all subroutines after their referencing statements.

JOVIAL : 

JOVIAL Jovial was used in programs embedded in aircrafts avionics, tactical and strategic missiles, munitions, and space systems.

PL/I : 

PL/I PL/I was introduce in 1966 to replace all previous programming languages. Basically PL/I includes features from all earlier languages. Some authors even has this equation PL/I = FORTRAN + COBOL + Algol to summarize the features of PL/I. Its main model during its early development years was FORTRAN, so much so that PL/I is upward compatible to FORTRAN. During this time, PL/I was even named FORTRAN-VI.

PL/I : 

PL/I PL/I included the nested block structure and recursion of Algo-60, the file and record structures and error handlers of COBOL, and the formatted I/O of FORTRAN.

SIMULA-67 : 

SIMULA-67 The programming language SIMULA, short for SIMUlation Language, was designed and implemented by Ole-Johan Dahl and Kristen Nygaard at the Norwegian Computing Center between 1962 and 1967.

SIMULA-67 : 

SIMULA-67 SIMULA was designed originally as a language for discrete event simulation, but was later expended to become a general-purpose programming language

SIMULA-67 : 

SIMULA-67 the language is credited for introducing: Coroutines – subprograms that can restart where they last stopped Objects – packaging together data structures and routines, with primacy to the data objects The class construct – describing a class of objects, so instances can be created at will Class inheritance – allowing a hierarchy of classes to be developed

ALGOL-68 : 

ALGOL-68 Algol-68 was designed from 1966 to 1968 Although it is called Algol-68, it is not a variant of Algol-60. It is a very complex language, difficult to compile and has intricate syntax rules. But otherwise, it is an outstanding language. One main contribution of Algol-68 is the forced closure which eliminates the ambiguity problems caused by dangling else statements. Though considered a great language, Algol-68 never gained wide acceptance in the programming world.

PASCAL : 

PASCAL After serving on the committee to develop Algol-68, Nicklaus Wirth in 1969 decided to create his own language. His objectives were to design a language that Can be used to teach proper programming techniques Is simple and logical for students Can enforce the principles of structured programming

PASCAL : 

PASCAL Pascal was designed to be small and primarily for teaching programming Besides cleaning up or leaving out some of Algol-68’s more obscure features, Pascal adds the capability to define new data types out of simpler existing ones. Some of the important features of Pascal are: case statement, user-defined types, sets, records, pointers, dynamic data structures. It is also highly portable.

C : 

C In the early 1960’s, there were only two types of languages: low-level assembly language and high-level languages. A joint committee from the University of London and Cambridge University sat down to design a language that was both high- and low-level. The resulting language was Combined Programming Language (CPL)

C : 

C CPL is typed and has four basic types; integer, real, complex and index. It also has a Boolean type and logical bit-string type. Structured types were limited to arrays and character strings, and no pointer type is defined.

C : 

C A smaller version of the language called Basic CPL (BCPL) attracted a sizable number of users. BCPL, designed by Martin Richards in 1967, is a level lower than CPL, having only one type, the bit string

C : 

C BCPL, designed by Martin Richards in 1967, is a level lower than CPL, having only one type, the bit string. Thus, there is no need for type declarations and type checking. Another design goal of BCPL was portability, or independence from any particular machine

C : 

C Dennis Ritchie later transformed B into C in 1972 by restoring some of the CPL features, such as the rich data typing, i.e., in C there are several types like int, float, char, etc.

Prolog : 

Prolog Prolog stands for Programming in Logic – an idea that emerged in the early 1970s. Prolog was largely developed by Robert Kowalski at Edinburgh (theoretical aspect) and Alain Colmeraueur at Marseilles (implementation).

Prolog : 

Prolog Prolog is a Programming Language centered around a small set of basic mechanisms, including pattern matching, tree-based data structuring and automatic backtracking. It is a powerful language for artificial intelligence and non-numerical programming, in general. Prolog is used for programming intelligent systems, expert systems, natural languages systems, and relational database systems.

Prolog : 

Prolog Prolog is considered the highest level programming language in use today. Its features are: Use of logic to represent a world Use of a resolution theorem prover to reason about that world Restriction to a class of formulas for which the theorem prover is efficient Use of logical/mathematical variables, rather than variables representing storage Emphasis on list-processing data structures

SMALLTALK : 

SMALLTALK Smalltalk is a language designed by the Learning Research Group at Xerox Palo Alto Research Center. Smalltalk is object-oriented and basically a graphical programming environment

Smalltalk Features : 

Smalltalk Features Some of its features are: Objects encapsulate methods and data structures Objects are defined as instances of classes Classes are organized in inheritance hierarchies Objects communicate via messages; this provides the calling method of smalltalk

Modula-2 : 

Modula-2 Nicklaus Wirth, again in 1980, published another outstanding language called Modula-2. Modula-2 is a descendant of its ancestors Pascal and Modula.

ADA : 

ADA The history of Ada goes back to 1974 when the US Department of Defense (DoD) realized it was spending too much on software, especially in the embedded systems area. The original version of Ada was called Ada 83.

C++ : 

C++ C++ was designed by Bjarne Stroustrup in the early 1980’s. C++ is basically C. Early versions of the language known as “C with Classes” were in use since 1980.

C++ : 

C++ C++ extends C in three ways by providing (Lippman,1991): Support for creating and using data abstractions. Support for object-oriented design and programming. Various nice improvements over existing C constructs.

Java : 

Java The language Java was designed in 1991 by a group of Sun Microsystems engineers led by James Gosling. Since Sun uses UNIX for their computers, the developers based their language on C++. They named their language Oak but later discovered that there was already a language using that name. Hence they changed the Oak to Java.

Java : 

Java Two basic types of application Standalone Applet

Assignment : 

Assignment Search the internet for information about C, C++ and Java. Give at least three differences between C and C++, and between C++ and Java. List the ancestors of C. What are the differences between C and its ancestors?

Any Question? : 

Any Question?