Programming Linguistic

From wiki@horace.org
Jump to: navigation, search

Information

by David Gelernter and Suresh Jagannathan

Concepts

Fundamentals

  • What is a program?
    • not just algorithms.
    • a software machine
  • What is programming languages?
    • construction kit for software machinery
    • All general purpose programming language are "Turing-equivalent" (at least in theory)
  • What is the computer then?
    • Nothing really. It doesn't matter.

Linguistic

  • Naming environment
    • Dictionary that associates names with definitions or valus
  • Data Structures, Data Type and Data Values
    • A data structure is an organization scheme for data
    • A data type is the description of such a scheme
    • A data value is a data object to be organized
  • Self-Descriptiveness
    • e.g. we can write a dictionary and a grammar of English in English.
    • distinguish between pure mathematical structure (algorithm) and program (process linking)

Basic terms

  • Syntax: the form a program takes
  • Semantics: the meaning of the program
  • Formal parameter: the name given to the incoming data objects within the subroutine
  • Actual parameter: data objects passed from the invocation statement into subroutine
  • Compiler: translator of "source language" to "target language"
  • Interpreter: Maintain a growing set of definitions and values to allow construct programs incrementally.
  • Compile time vs Runtime
  • Parallelism
    • Speed advantage using parallel processor
    • Convenient in programming language when execution order is don't care.