Evolution of programming languages
This presentation is the property of its rightful owner.
Sponsored Links
1 / 13

Evolution of programming languages PowerPoint PPT Presentation


  • 153 Views
  • Uploaded on
  • Presentation posted in: General

Evolution of programming languages. Machine language Assembly language Sub-routines and loop (Fortran) Procedures and recursion (Algol, Pascal, C) Modules (Modula-2, Ada) Objects (Simula, Smalltalk, C++,Java) Declarative programming languages (Prolog, CLP, Lisp, ML, Haskall).

Download Presentation

Evolution of programming languages

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Evolution of programming languages

Evolution of programming languages

  • Machine language

  • Assembly language

  • Sub-routines and loop (Fortran)

  • Procedures and recursion (Algol, Pascal, C)

  • Modules (Modula-2, Ada)

  • Objects (Simula, Smalltalk, C++,Java)

  • Declarative programming languages (Prolog, CLP, Lisp, ML, Haskall)

presented by Neng-Fa Zhou


Programming language spectrum

Programming language spectrum

  • Declarative

    • Logic and constraint-based (Prolog, CLP(FD))

    • Functional (Lisp/Scheme, ML, Haskell)

    • Dataflow (Id, Val)

    • Template-based (XSLT)

    • Database (SQL)

  • Imperative

    • von Neumann (C, Ada, Fortran, Pascal,…)

    • Scripting (Perl, Python, PHP,…)

    • Object-oriented (Smalltalk, Effel, C++, Java, C#)

presented by Neng-Fa Zhou


Imperative

Imperative

  • Features

    • Variables are mnemonics of memory locations

    • Assignment statements

    • goto

    • Iterative constructs

presented by Neng-Fa Zhou


Object oriented

Object-oriented

  • Features

    • Abstract data types

    • Inheritance and overriding

    • Polymorphism

    • Dynamic binding

presented by Neng-Fa Zhou


Functional

Functional

  • Features

    • Single assignment variables (no side effects)

    • Recursion

    • Rule-based and pattern matching (ML, Haskell)

    • High-order functions

    • Lazy evaluation (Haskell)

    • Meta-programming (Scheme)

presented by Neng-Fa Zhou


Stack in scheme

Stack in Scheme

(define stack_push

(lambda (s x) (cons x s)))

(define stack_peek

(lambda (s) (if (eq? s ())

(raise "empty stack")

(car s))))

(define stack_pop

(lambda (s) (if (eq? s ())

(raise "empty stack")

(cdr s))))

presented by Neng-Fa Zhou


Stack in haskell

Stack in Haskell

stack_push s x = (x:s)

stack_peek (x:_) = x

stack_pop (_:s) = s

presented by Neng-Fa Zhou


Append in haskell

Append in Haskell

append :: [a] -> [a] -> [a]

append [] ys = ys

append (x:xs) ys = x : append xs ys

presented by Neng-Fa Zhou


Stack in sml nj

Stack in SML/NJ

fun stack_push s x = (x::s)

fun stack_peek (x::s) = x

fun stack_pop (_::s) = s

presented by Neng-Fa Zhou


Evolution of programming languages

F#

let stack_push s x = x :: s

let stack_peek s =

match s with

| x :: _ -> x

let stack_pop s =

match s with

| _ ::s -> s

presented by Neng-Fa Zhou


Logic constraint based

Logic & constraint-based

  • Features

    • Logic variables

    • Recursion

    • Unification

    • Backtracking

    • Meta-programming

presented by Neng-Fa Zhou


Stack in prolog

Stack in Prolog

stack_push(S,X,[X|S]).

stack_pop([X|S],X,S).

presented by Neng-Fa Zhou


Append in prolog

Append in Prolog

append([],Ys,Ys).

append([X|Xs],Ys,[X|Zs]):-

append(Xs,Ys,Zs).

presented by Neng-Fa Zhou


  • Login