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