Saturday, April 30, 2011

Kinds of Computer Languages


  • Imperative
    • Specifies how a computation is to be done.
    • Examples: C, C++, C#, Fortran, Java
  • Declarative
    • Specifies what computation is to be done.
    • Examples: Haskell, ML, Prolog
  • von Neumann
    • One whose computational model is based on the von Neumann architecture.
    • Basic means of computation is through the modification of variables (computing via side effects).
    • Statements influence subsequent computations by changing the value of memory.
    • Examples: C, C++, C#, Fortran, Java
  • Object-oriented
    • Program consists of interacting objects.
    • Each object has its own internal state and executable functions (methods) to manage that state.
    • Object-oriented programming is based on encapsulation, modularity, polymorphism, and inheritance.
    • Examples: C++, C#, Java, OCaml, Simula 67, Smalltalk



    • Scripting
      • An interpreted language with high-level operators for "gluing together" computations.
      • Examples: AWK, Perl, PHP, Python, Ruby
    • Functional
      • One whose computational model is based on the recursive definition of functions (lambda calculus).
      • Examples: Haskell, Lisp, ML.
    • Parallel
      • One that allows a computation to run concurrently on multiple processors.
      • Examples
        • Libraries: POSIX threads, MPI
        • Languages: Ada, Cilk, OpenCL, Chapel, X10
        • Architecture: CUDA (parallel programming architecture for GPUs)
    • Domain specific
      • Many areas have special-purpose languages to facilitate the creation of applications.
      • Examples
        • YACC for creating parsers
        • LEX for creating lexical analyzers
        • MATLAB for numerical computations
        • SQL for database applications
    • Markup
      • Not programming languages in the sense of being Turing complete, but widely used for document preparation.
      • Examples: HTML, XHTML, XML

    No comments:

    Post a Comment