programming languages: design principles, implementation constructs 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
1. programming languages: design principles, implementation constructs << | >>

  1. why, how, what to study

    iii. programming environments

    - programming environment tools

    "Note that I am NOT suggesting that Unix is a state-of-the-art programming environment. There are many that are better, but this is the one we're using." M. Scott.

                                                Unix examples
        editors (structure?)                        vi, emacs ...
        pretty printers                             cb, indent ...
        pre-processors
            esp. macros                             cpp, m4, watfor ...
        debuggers (needs symbol table)              adb, sdb, dbx, gdb ...
        style checkers                              lint, purify, ...
        module management                           make
        version management                          sccs, rcs
        assemblers                                  as
        link editors, loaders                       ld, ld-so
        perusal tools                               more, less, od, nm ...
        program cross-referencing                   ctags
        
        The better, state-of-the-art environments have more integration to them.
        For example,
            Cedar, Smalltalk, Interlisp at Xerox PARC
            Common Lisp on Symbolics
            Sabre C on Unix
            MPW on Macs
            Visual Studio on PCs
    
        integration means
            if you get a syntax error message from the compiler your editor
                window pops up with the cursor at the mistake, for you to fix
            if your program gets a subscript error you pop up in the debugger
                without doing anything special
            the compiler has something like 'make' built in; it won't let you
                link together incompatible versions of things
            type checking works across separately-compiled modules
            the editor has automatic access to cross-referencing information
                on your program, so if you want to see all the places you call
                'foo' it's easy
            etc.
    

contents << | >> programming language syntax
dr. salih yurttas | computer science