CS 342 Lecture -*- Outline -*- * Analysis ** Importance of the language environment (Unix) really helps make the langauge! -manual pages for library functions -well-integrated I/O facilities -command line arguments, shell environment -standard include files -linker/loader (ld) that permits separate compilation -other tools: lint, debuggers, pretty printers -non-language specific tools make ** Evolution of C ANSI Standardization -mostly clarifications and small improvements -more type checking e.g., can declare parameter type information (function prototypes) extern double sqrt(double x); extern int fprintf( FILE f, char *format, ...); (the dots are part of the syntax!) (there is another form too) -constants (as in Pascal) -standarization of C library C++ (1980, 1983, 1987 onwards) -most of the above, except C library standards -overloading of functions -call by reference -object-oriented features (classes, inheritance, message passing)