Sei sulla pagina 1di 30

Concepts in Programming Languages

By: Ms. Michelle Ramirez

What is Programming Language?

a system of signs used by a person to communicate a task / algorithm to a computer, causing the task to be performed. is more of a set of commands that is formulated by the user and executed by the computer.

Brief History of PL

FORTRAN

First successful PL Short for FORmula TRANSlation. Designed by John Backus in 1956 Some Characteristics:

DO Loops Block if statements Improve array notation

Brief History of PL

ALGOL-60

Short for ALGOrithmic Language John Backus and Peter Naur improve ALGOL in 1960- hence the suffix of Algol-60, written in their final report called BNF form (Backus and Naur Form) Considered to be the most ingenious language definition efforts in the early days of PL Characteristics:

Block Structure Compound statements Recursive procedure calls Nested if

Brief History of PL

Lisp

Developed in the late 1950s by John McCarthy It is still one of the most used even beating the popularity of FORTRAN at present. Some characteristics:

Is the first major language to support lists processing Is the first major language to support recursion Is the first functional language Use variables to represent parameters, rather than storage. Use the lambda calculus notation.

Brief History of PL

COBOL

Stands for Common Business Oriented Language Designed by the Conference on Data Systems and Languages (CODASYL) in 1960 Characteristics:

Handles large files of data safely Moves data around safely Does not have any need for complex

Brief History of PL

APL

Short for A Programming Language Designed during the late 1950s by Kenneth Iverson of Harbard University but the first implementation was not available until the early 1960s Characteristics:

All operators have the same priority Multiple expression are evaluated from left to right

Brief History of PL

SNOBOL

Short for String-Oriented Symbol Language Designed in 1962 by a research group at Bell Laboratories as an aid to their own applications in symbolic formula manipulations Characteristics:

String manipulation operations Pattern matching Dynamically typed

Brief History of PL

BASIC

Designed by Thomas Kurtz and John Kemeny of Dartmouth College in 1963 as an easy-to-learn, interactive language. An acronym for Beginners All Purpose Symbolic Instruction Code. Major deficiencies:

No declaration of variables, hence poor error checking Single character variable names No support for subprograms Poor control structures Limited data structuring capabilities

Brief History of PL

Algol-W

Nicklaus Wirths contribution toward Algol-68 is Algol-W. Already block structured, recursive and parameters are no longer passed by name Acronym for Jules Own Version of the International Algorithmic Language Was used in programs embedded in aircraft avionics, tactical and strategic missiles, munitions, and space systems.

Jovial

Brief History of PL

PL/I

PL/I = FORTRAN + COBOL +Algol Named after FORTRAN-VI Included the nested block structure and recursion of ALgol-60, the file and record structures and error handlers of COBOL, and the formatted I/O of FORTRAN.

Brief History of PL

SIMULA-67

Short for SIMUlation Language, was designed and implemented by Ole-Johan Dahl and Kristen Nygaard at the Norwegian Computing Center between 1962 and 1967. Designed originally as a language for discrete event simulation It was the first introduced object-oriented programming concepts like classes and objects, inheritance and dynamic binding.

Brief History of PL

Algol-68

One main contribution of Algol-68 is the forced closure which eliminates the ambiguity problems cause by dangling else statements. It had no abstract data types or separate compilation. Designed by Nicklaus Wirth in 1969 Designed to be small and primarily for teaching programming. Important features: case statement, user-defined

Pascal

Brief History of PL

C
* CPL (Cambridge Programming Language) * BPCL (Basic Combined Programming Language) Dennis Ritchie transformed B into C in 1972 by restoring some of the CPL features. There are several types like int, float, char etc.. Has been the basis of most object-oriented languages like C++ and Java

Brief History of PL

Prolog Stands for Programming Logic Was largely developed by Robert Kowalski at Edinburgh, Maarten van Emden at Edinburgh and Alain Colmeraueur at Marseilles. A powerful language for artificial intelligence and non-numerical programming in general. Considered the highest level programming language in use today. Features: Use of logic to represent a world Use of a resolution theorem prover to reason about that world Restriction to a class of formula for which the theorem prover is efficient Use of logical/mathematical variables, rather than variables representing storage Emphasis on list-processing data structures

Brief History of PL

Smalltalk

A language designed by the Learning Research Group at Xerox Palo Alto Research Center. A very strong in the telecommunication application. Has been used for business information systems, it is embedded in an oscilloscope and it has been used to manage telephone system of an entire country.

Brief History of PL

Modula-2

Descendant of its ancestors Pascal and Modula. Emerged to correct the errors of Pascal and extends Pascal with the important module concept and those of multiprogramming. In 1985 ADA 95 was introduced to satisfy the present and future needs of users from a whole variety of application areas. Four areas were given attention in ADA 95(barnes, 1996), namely: object oriented programming,

ADA

Brief History of PL

C++

Provide support for creating and using data abstractions Provides support for abject-oriented design and programming. Provides various nice improvements over existing C constructs Provides a collection of predefined classes, along with the capability of user-defined classes.

Brief History of PL

Java

Designed in 1991 by a group of Sun Microsystems engineers led by James Gosling. The original intention was to develop a language for consumer devices that is hardware-independent. There are two types of applications in Java:

The standalone application which run as a

Programming Language Paradigms

What is Paradigm?

pattern for modeling and solving problems.

Two language Paradigm (according to Wegner-1989)


Imperative Languages Declarative Languages

Programming Language Paradigms

Imperative Languages specify how a computation is performed by sequences of changes to the RAM. There are 3 types:

Block-structured languages the

procedure is the principal building block of the program. The state of computation are represented by the stack with the active procedure being found at the top. For example: Algol-60, Algol-68, Pascal and C

Programming Language Paradigms

Object-based paradigms describe

languages that employ objects. For example: ADA, modules of Modula and objects of Smalltalk

Distributed Programming Paradigms


refer to languages for loosely coupled systems that support a group of programmers working on a particular program simultaneously and communicating through message passing over a communication channel.

Programming Language Paradigms

Declarative Languages specify what is to be computed.

Logic Programming based on a subset


of predicate calculus. Example: Prolog Functional Languages operate only through functions which return one values given a list of parameters. Example: Lisp

Application of Programming Languages

For scientific computation

FORTRAN, Algol-60, Algol-68


COBOL

For data processing

For artificial intelligence

Lisp, Prolog
SNOBOL, ICON C, ADA, Modula PL/I

For text processing

For system programming

General-purpose

Generations of Programming Languages

First Generation Languages includes low-level languages like machine and assembly language Second Generation Languages composed mainly of languages designed during the early 1960s.

ALGOL-60, BASIC, COBOL and FORTRAN

Generations of Programming Languages

Third Generation Languages are those highlevel language that came out and perfected in the late 1960s up to the present

PL/I, Pascal, Modula-2, C, ADA, Lisp, APL, ML, Prolog, C++, Objective-C, Smalltalk, Object Pascal, Eiffel, ADA-95 and Java

Fourth Generation Languages domain specific languages

Visual programming environments VB, Delphi, Visual Age, Visual C++ Database Systems Natural, SQL, Access, FoxPro, dBase, AdaBase. Expert System shells OPS5, EMYCIN, CLIPS, EXSYS Spreadsheet Languages Excel, QuattroPro, Lotus 1-2-3

Evaluation Criteria of Programming Languages


Readability Writability Reliability Cost Simplicity Orthogonality Adequacy Syntax Abstraction Assertions Hierarchical decomposition Modular decomposition Sequencing Data Manipulation Redundancy

Levels of Programming Languages

Low-level

Machine Language lowest level since it is machine-specific and is not designed for a specific structure of a problem. Assembly Language a structurally similar to machine languages except that the sequences of 1s and 0s are replaced by mnemonic names for the operator part of the instruction and numeric and alphabetic symbols are used for the operands.

Middle-level High-level designed to facilitate the writing solutions to problems they are designed to solve.

Methods of Implementation

Compilation a method where the high-level language is translated into another implemented language usually assembly or machine language. (Compiler)

Interpretation a method where we simulate, through a program running on another host computer, a computer whose machine language is the high-level language. (Interpreter)

High-level language -> machine language High-level language-> assembly language -> machine language High-level language -> intermediate language -> assembly or machine language

Syntax, Semantics and Pragmatics

Syntax is the form in which programs are written Semantics the meaning given to the various syntactic constructs Pragmatics refers to the history and some implementation methodology specific to the language

Potrebbero piacerti anche