evolution of programming languages
Download
Skip this Video
Download Presentation
Evolution of programming languages

Loading in 2 Seconds...

play fullscreen
1 / 13

Evolution of programming languages - PowerPoint PPT Presentation


  • 240 Views
  • Uploaded on

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).

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Evolution of programming languages' - nevada-mcfarland


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

slide10
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

ad