Language Paradigms

Document Sample
Language Paradigms Powered By Docstoc
					Programming Language
Paradigms


ITSK2314
Lecture 3
Agenda

   What is a programming language
   Abstractions
   History
   Computational Paradigms
Programming Language Defined

   Notation system
       Symbols/grammar
   Describe computation
       Anything a computer can do (Turing)
   Machine-readable
       Unambiguous, finite algorithm
   Human-readable
       Abstraction mechanisms needed
Design Issues
   Efficiency
   Writability
   Readability
   Expressiveness
   Orthogonality
   Simplicity
   Extensibility
   Machine Independence
   Security
Abstractions
   Data abstractions
       Variables
       Structures
   Unit abstractions
       Abstract Data Types (classes)
       Packages
       Procedures, functions, methods
   Control abstractions
       Assignment
       Goto
       If-then, case/switch
       loops
History
   1830s/1840s
       Charles Babbage (Analytical Engine)
       Ada Lovelace
            First programmer
       Sequence of cards w/ data & operations
   1950s
       First programming languages
            COBOL, LISP, Algol
       First high-level language – FORTRAN
   1960s
       Special-purpose languages (> 100)
   1970s
       Simplicity, structure, efficient
       Pascal, C
   1980s
       Object-oriented languages
   1990s
       Libraries, scripting, distributed/network computing
Computational Paradigms
   Imperative/Procedural
       C, Pascal
   Functional (applicative)
       LISP, Scheme
   Logic
       Prolog
   Object-oriented
       C++, Java, C#, Smalltalk
   Parallel
       C, FORTRAN
   Distributed
FIN

				
DOCUMENT INFO