Course Code: CS348
Course Name: Implementation of Programming Languages Lab
Prerequisites: CS204 and CS205
Syllabus: Assembly language programming: basic concepts of computer organization, instruction and data representation; Linux Assembly language; assembly language programming and simulation using X86; C-macro linker and loader; design of linkers and loaders in C: compile and go loader, absolute loaders, relocating loaders, direct linking loaders; programming assignments to build a compiler for a subset of a C-like programming language, using tools such as Lex / Flex / JLex and Yacc / Bison / CUP etc.
References: 1. S. Tanenbaum, Structured Computer Organization, Prentice Hall, 1999.
2. Britton, MIPS Assembly Language Programming, Prentice Hall, 2003.
3. J. Donovan, Systems Programming, 45th Reprint, Tata Mc-Graw-Hill, 1991.
4. Pal, Systems Programming, Oxford University Press, 2012.
5. Levine, Linkers and Loaders, MORGAN KAUFFMAN, 1999.
6. Brown, J. Levine, T. Mason, Lex and Yacc, 2nd Edition, O'REILLY Publications
7. N. Fischer, R. J. Le Blanc, Crafting a Compiler with C, Pearson Education, 2009.
8. V. Hall, Microprocessor and Interfacing, Tata McGraw Hill, Second Edition, 1999.