RU beehive logo ITEC dept promo banner
ITEC 380
2011fall
ibarland

most recent semester

lect01a
Why study programming languages?

You can never understand one language until you understand at least two.
—Geoffrey Willans
The limits of my language are the limits of my world.
—Ludwig Wittgenstein
Why study programming languages?
  learn other approaches; lets you understand your native tongue better;
  practice at learning new technologies/ideas; 
  makes you think about: when is language helping, and when getting in the way;
    e.g. sorting: scheme vs Java
  Help you choose a language appropriate to the task


A history overview:
  name  yr  family  feature(s)/notables  (descendents/related)  example
  TM, lambda calculus 
  machine / hardware switches (incl. Babbage's Analytic Engine)
  assembly
  Lisp; Scheme, ML, Haskel, F#
  Fortran; PL/I; Algol; 
  SmallTalk; C++, java, C#
  Ada; 
  sh, csh, Tcl/Tk, perl, python, ruby
  rpn; postscript (printer is the interpreter; req'd M68000, not 8088,6502); pdf
  prolog (Japanese "4th wave")
  Basic (Apple II ROM; line#s; goto;'gosub' but no params (only globals) (recursion?!)), 
     http://www.jenutech.com/images/HomeSweetGoto10.gif
     http://theinfosphere.org/File:Gotohell.jpg
  Pascal (teaching; nested procedures)

  language popularity index
  poster: programming languages history
  The hello world collection

- examples: enscript -o foo.ps       (wimpout.ps)
      Example: enscript -o foo.ps ; cat foo.ps ; open foo.ps
      Example: cat wimpoutBoard.ps ; open wimpoutBoard.ps
   also, sh: Example: cd ~/Unix 
                      find . -name \*.ps -print
                      find . -name \*.ps -print | grep -i wimpout

- other notables:
  * postscript
  - C, Ada, Fortran, Pascal, Rexx, ...
  - Smalltalk, Java, C++, C#, ...
  - APL; Mathematica; Matlab
  
  - javascript, perl, etc;   html ?  -- no; data.  But, .css.
  - sh/csh, .bat, applescript; scriptable photoshop?
     Example: cd ~/Unix 
              find \*.ps
              find \*.ps | grep -i wimpout
     Note that we are calling functions.  (How are arguments passed?)
  - a *programmable* calculator.
  * MS Word "macros" and mailing-list scripts
  - abacus-instructions ?

Link: "A new language for phone networks" (declarative; based on F#)
?a=f

most recent semester


©2012, Ian Barland, Radford University
Last modified 2012.Aug.27 (Mon)
Please mail any suggestions
(incl. typos, broken links)
to ibarlandradford.edu
Powered by PLT Scheme