CS 502 : System Software Coverage plan for theory part : =============================== 1. Overview of System Software Types of system software The problem of Translation 2. Assembly language and essentials of assembly process Executable statements, Assembler directives 3. Lexical analysis - Tokens, keywords, identifiers, literals - C program for Lexical analysis - Finite automata and C program to implement it - Lexical analyser generator - LEX, FLEX 4. Assembler data structures, Symbol table 5. Single phase and multiple phase assembly process 6. Assembler macros and macroprocessors 7. Linkers and Loaders - Basic concepts of modular programs, linking of modules, and laoding. - Static and Dynamic linking - Shared libraries - case study of Sun Solaris and MS Windows - OLE, ActiveX - Loaders and Overlay 8. Debuggers - Types of debuggers, essential features - Break-points, controlled execution - examination of variables, stack, and internal registers - advanced features - user interface using source symbols, modification of values, logging of input sequences, etc. 9. Editors - Essential functionalities - Types of editors - Structure of editors - Advanced features - Case study of vi, MS Word 10. Unix Utilities - Make, RCS, sed, grep, awk, etc. 11. Compilers : - Basic features of High Level Languages and overview of the issues in translation of HLL programs. - Phases of a compiler. Approximate Schedule : ====================== Topics 1, and 2 2 weeks Topics 3, and 4 2 weeks Topics 5 1 weeks Topics 6 1 weeks Topics 7 2 weeks Topics 8 1 weeks Topics 9 1 weeks Topics 10 2 weeks Topics 11 1 weeks Note : One week is equivalent to 2 theory classes and 2 laboratory contact hours. Laboratory work : ================= 1. Familiarisation with UNIX environment : - User account, login, shell - Basic commands - Files and directories, access permissions - Environment variables - The vi editor - basic operations - Compiling and running programs - Getting help - man pages - 1 Class 2. Writing a program to perform very simple text processing. - 1 Class 3. Writing a lexical analyser program for a representative assembly language using C. - 1 Class 4. Lexical analyser generator - LEX, FLEX - 1 Class 5. Implementation of assembler data structures including Symbol table - 1 Class 6. Writing a simple assembler - 2 Class 7. Familiarisation with libraries in UNIX, Windows - 1 Class 8. Using a debugger in UNIX. - 1 Class 9. Unix utilities - make, rcs, grep, awk - 2 Class