Programming work bench is made up of a set of tools to support the process of program development.
1. Language compiler: Translates host programs to object code. As part of a translation process, an abstract syntax free and a symbol table is created.
2. Structured editor: Incorporates embedded programming language knowledge and edits the syntax representation of the program in the AST rather than is source code text.
3. Linker: Links the object code program with components which have already been compiled.
4. Loader: Loads the executable program into the computer memory prior to execution.
5. Cross referencer: Produces a cross reference listing showing where all program names are declared and used.
6. Petty printer: Scans the AST and prints the source program according to embedded formatting rules.
7. Static analyser: Analyses the source code to discover a anomoly such as uninitialised variables, unreachable code etc.
8. Dynamic analyser: Produces a source code listing annulated with the number of times each statement was executed when the program was run & generates information on program benches and loops and statistics of processor usage.
9. Interaction debugger: Allows the user to control the execution sequence and view the program state as execution processes.