Aug 25, 2003 ------------- - Introuction to 3304 - handout - logistics - What the course will be about - What is a programming language? - a notational system for describing computation in human-readable and machine-readable form - Idea in CS 3304 - compare and contrast languages according to broad concepts - will develop a vocabulary for comparative study - Analogies - Autos: Honda Civic and Toyota Corolla - Species Evolution - Central theme of course - "Languages evolve" - recap. struggle for existence - recap. survival of the fittest - thus, learn broad themes and concepts rather than specifics - E.g., incrementing a number - COBOL: ADD 1 to X GIVING Y - C: Y = X +1 - FORTH: X 1 + Y LOAD - Stakeholders in the study of programming languages - language designer - language user - language implementor - Some intriguing thoughts - why can't comments nest in C? - why must an identifier start with a letter? - Advantages of this course of study - can be a well-rounded CS person - can better appreciate the historical context - can pick up new technologies as they come along - be able to not focus on details - be able to "bluff" your way! - Programming paradigms - imperative: FORTRAN, Pascal, ALGOL, C - OO: Smalltalk, C++, Java - support for data modeling and abstraction - logic: Prolog, POP - support for reasoning - functional: Scheme, LISP, ML, Haskell - brings programming closer to mathematics - scripting: Perl, Tcl, Python, REXX, sh - command and control oriented - Quiz - what about HTML?