A comprehensive academic resource for System Programming and Compiler Construction (SPCC) and System Software Laboratory (SSL), covering language processors, assembler design, macro processors, linker/loader functionality, and compiler design phases.
Overview · Contents · Reference Books · Personal Preparation · Assignments · Classwork · Quizzes · Laboratory · Mock Test · Internal Assessment Test · Semester Exam · Question Papers · Submission Report · Syllabus · Usage Guidelines · License · About · Acknowledgments
System Programming and Compiler Construction (CSC602) and System Software Lab (CSL602) are core subjects in the Third Year (Semester VI) of the Computer Engineering curriculum at the University of Mumbai. These courses provide a deep dive into the software that supports the execution of application software, including assemblers, loaders, linkers, and the various phases of a compiler.
The curriculum encompasses several key domains in System Programming and Compiler Construction:
- Introduction to System Software: Language processors, fundamentals of language processing, data structures for language processing.
- Assemblers: Design of one-pass and two-pass assemblers, symbol table management.
- Macros and Macro Processors: Macro definition and expansion, nested macro calls, design of macro processors.
- Linkers and Loaders: Basic functions, relocation and linking concepts, design of direct-linking loaders.
- Compilers: Lexical analysis, syntax analysis (parsing techniques), intermediate code generation, and code optimization.
- Compiler Construction Tools: Using LEX and YACC for developing scanners and parsers.
This repository represents a curated collection of study materials, reference books, lab experiments, and personal preparation notes compiled during my academic journey. The primary motivation for creating and maintaining this archive is simple yet profound: to preserve knowledge for continuous learning and future reference.
As a computer engineer, understanding how source code is transformed into executable machine instructions is fundamental. This repository serves as my intellectual reference point: a resource I can return to for relearning concepts, reviewing methodologies, and strengthening understanding when needed.
Why this repository exists:
- Knowledge Preservation: To maintain organized access to comprehensive study materials beyond the classroom.
- Continuous Learning: To support lifelong learning by enabling easy revisitation of fundamental system programming concepts.
- Academic Documentation: To authentically document my learning journey through System Programming and Compiler Construction and System Software Laboratory.
- Community Contribution: To share these resources with students and learners who may benefit from them.
Note
All materials in this repository were created, compiled, and organized by me throughout my undergraduate program (2018-2022) as part of my coursework, laboratory assignments, and project implementations.
This collection includes comprehensive reference materials covering all major topics:
| # | Resource | Focus Area |
|---|---|---|
| 1 | SPCC Techmax | Complete syllabus coverage |
| 2 | SPCC - TechMax (Alt) | Additional syllabus-oriented reference |
| 3 | SPCC Techmax (Full Title) | Comprehensive Techmax guide |
| 4 | SPCC Reference Book | Targeted reference material |
| 5 | System Programming by Donovan | Classic textbook for system software |
| 6 | SPCC Easy Solutions | Solved questions and exam-oriented summaries |
| 7 | SPCC - Easy Solutions | Additional solved questions |
| 8 | SPCC Last Moment Tuitions | Concise review for exam preparation |
| 9 | SPCC Question Bank | Practice questions and important topics |
| 10 | SPCC - IMCQ | Important MCQs for entrance and exams |
| 11 | SPCC VIVA | Viva preparation guide |
| 12 | SPCC VIVA Questions | Frequently asked viva questions |
| 13 | SPCC Presentation | Linker and Loader presentation slides |
| 14 | BH Plan | Study planning and strategy |
Study materials and planning resources for effective exam preparation:
| # | Resource | Description |
|---|---|---|
| 1 | Blueprint | SPCC exam blueprint and marking scheme |
| 2 | Semester 6 Timetable | Academic schedule for Semester VI |
| 3 | Computer Semester 6 Timetable | Detailed computer engineering timetable |
Academic assignments for comprehensive learning and practice:
| # | Assignment | Description | Date | Marks |
|---|---|---|---|---|
| 1 | Assignment 1 | System Programming Fundamentals, Error Recovery, Operator Precedence, Code Optimization, DAG | April 10, 2021 | 10/10 |
| 2 | Assignment 2 | Forward Reference, Assemblers (Pass-I & Pass-II), Loaders, Direct Linking, Macro Processors | April 20, 2021 | 10/10 |
| 3 | Assignment 3 | Case Study on Compiler Construction Tools (LEX and YACC) | April 30, 2021 | 10/10 |
Topics Covered: System Programming Fundamentals · Error Recovery Techniques · Operator Precedence Parsing · Code Optimization · DAG Representation · Forward Reference Problem · Assembler Pass-I and Pass-II · Loaders and Direct Linking · Macro Processors · Compiler Construction Tools (LEX and YACC)
Important
Special thanks to Mega Satish and Hasan Rizvi for their meaningful contributions, support, and wisdom that helped shape this work.
A comprehensive presentation on Linker and Loader covering the translation hierarchy and program execution flow in system software. The presentation explores:
- Translation Hierarchy: Compiler, Assembler, and the flow from high-level language to machine code
- Linker: A program that links and merges object files to create an executable, performing symbol resolution and determining memory locations
- Loader: A program that loads linked modules into main memory for execution, replacing virtual addresses with physical addresses
- Functions of Loader: Allocation, Linking, Relocation, and Loading
- Loading Schemes: Compile & Go Loading Scheme vs General Loading Scheme
- Types of Loaders: Absolute Loaders and Relocatable Loaders
Note
Research Impact: This presentation was published on ResearchGate and is available for academic reference.
Educational presentations and collaborative work:
| # | Resource | Description |
|---|---|---|
| 1 | SPCC Presentation | Linker & Loader architecture and functionality |
| 2 | PPTX | Original presentation file (PowerPoint) |
| 3 | Presentation document version |
SPCC-specific quizzes conducted during the course:
| # | Quiz | Topics | Date | Marks |
|---|---|---|---|---|
| 1 | Quiz 1 | Introduction to System Softwares | April 13, 2021 | 10/10 |
| 2 | Quiz 2 | Assemblers and Symbol Table Management | — | 10/10 |
| 3 | Quiz 3 | Macro Processors, Linkers and Loaders | — | 10/10 |
| 4 | Quiz 4 | Compilers - Lexical Analysis | — | 10/10 |
| 5 | Quiz 5 | Compilers - Syntax Analysis and Parsing | — | 10/10 |
| 6 | Quiz 6 | Compiler Construction and Optimization | — | 10/10 |
The laboratory component (CSL602) focuses on hands-on implementation of system software components including assemblers, lexical analyzers, and parsers using C and tools like LEX/YACC.
Tip
Lab Concept: System software development requires a strong grasp of data structures like Symbol Tables and Literal Tables. When working with LEX and YACC, always ensure your regular expressions and grammars are well-tested before integration.
| # | Experiment | Date | Marks | Report |
|---|---|---|---|---|
| 1 | Develop a program to implement lexical analyzer using Finite Automata | February 05, 2021 | 9/10 | View |
| 2 | Implement Lexical Analyzer for given language using Lex tool | February 26, 2021 | 7/10 | View |
| 3 | Implement program to remove left recursion from grammar and find first and follow | March 05, 2021 | 8/10 | View |
| 4 | Implement any parsing technique | March 26, 2021 | 8/10 | View |
| 5 | Implement any code optimization techniques | March 30, 2021 | 8/10 | View |
| 6 | Generate target code | April 09, 2021 | 8/10 | View |
| 7 | Design and implement first pass of a two pass assembler for IBM 360/370 Processor | April 30, 2021 | 8/10 | View |
| 8 | Design and implement second pass of a two pass assembler for IBM 360/370 Processor | April 30, 2021 | 7/10 | View |
| 9 | Design and Implement two pass Macro Processor | May 07, 2021 | 8/10 | View |
| 10 | Write a LEX-YACC specification program for 3-address intermediate code generation | May 07, 2021 | 10/10 | View |
Experiment 1: Lexical Analyzer using DFA (1 Program)
| Program | Category | Description | Code |
|---|---|---|---|
| DFA_Implementation.c | Lexical Analysis | Implementation of DFA-based lexical analyzer in C | View |
Experiment 2: Lexical Analyzer using LEX (3 Programs)
| Program | Category | Description | Code |
|---|---|---|---|
| Lex_Lexical_Analyzer.l | LEX Tool | Lexical analyzer specification using LEX | View |
| Manual_Lexical_Analyzer.c | Lexical Analysis | Manual implementation of lexical analyzer in C | View |
| sample_input.c | Test Input | Sample C program for testing lexical analyzer | View |
Experiment 3: FIRST and FOLLOW Sets (2 Programs)
| Program | Category | Description | Code |
|---|---|---|---|
| First_Follow_Implementation.c | Parsing | Implementation of FIRST and FOLLOW set calculation | View |
| grammar.txt | Input Data | Grammar definition file for parsing | View |
Experiment 4: Recursive Descent Parser (1 Program)
| Program | Category | Description | Code |
|---|---|---|---|
| RD_Parser_Implementation.c | Parsing | Implementation of Recursive Descent Parser | View |
Experiment 5: Code Optimization (1 Program)
| Program | Category | Description | Code |
|---|---|---|---|
| Code_Optimization.c | Optimization | Implementation of code optimization techniques | View |
Experiment 6: Target Code Generation (1 Program)
| Program | Category | Description | Code |
|---|---|---|---|
| Target_Code_Generator.c | Code Generation | Implementation of target code generator | View |
Experiment 7: Assembler Pass-I (4 Programs)
| Program | Category | Description | Code |
|---|---|---|---|
| Assembler_Pass1.c | Assembler | Implementation of Pass-I of two-pass assembler | View |
| INPUT.txt | Input Data | Assembly language input file | View |
| OPTAB.txt | Data Table | Operation code table | View |
| SYMTAB.txt | Data Table | Symbol table output | View |
Experiment 8: Assembler Pass-II (1 Program)
| Program | Category | Description | Code |
|---|---|---|---|
| Assembler_Pass2.c | Assembler | Implementation of Pass-II of two-pass assembler | View |
Experiment 9: Macro Processor (1 Program)
| Program | Category | Description | Code |
|---|---|---|---|
| Macro_Processor.c | Macro Processing | Implementation of two-pass Macro Processor | View |
Experiment 10: LEX-YACC Tools (2 Programs)
| Program | Category | Description | Code |
|---|---|---|---|
| Integer_Recognizer.l | LEX Tool | LEX specification for integer recognition | View |
| Arithmetic_Counter.l | LEX Tool | LEX specification for arithmetic operations | View |
| # | Resource | Description |
|---|---|---|
| 1 | Lab README | Detailed navigation guide with program descriptions |
Technical mock test conducted for placement preparation:
| # | Resource | Description |
|---|---|---|
| 1 | Technical Mock Test | Campus Corners Mock Test for Terna Engineering College |
Internal assessment evaluations conducted during the course:
| # | Resource | Description | Marks |
|---|---|---|---|
| 1 | Question Paper | SPCC Internal Assessment Test 1 Question Paper | — |
| 2 | Answer Sheet | SPCC Internal Assessment Test 1 Answer Sheet | 18/20 |
| 3 | MCQ | SPCC Internal Assessment Test 1 MCQ | 10/10 |
| # | Resource | Description | Marks |
|---|---|---|---|
| 1 | Answer Sheet | SPCC Internal Assessment Test 2 Answer Sheet | — |
Additional Resources:
| # | Resource | Description |
|---|---|---|
| 1 | Answer Sheet Template | IAT Answer Sheet Template |
Important
COVID-19 Impact: This coursework was completed during the COVID-19 pandemic. All examinations and assessments were conducted in a digital format.
Final semester examination submission:
| # | Resource | Description | Date |
|---|---|---|---|
| 1 | MCQ | SPCC Semester Exam MCQ Paper | June 04, 2021 |
| 2 | Question 2 | SPCC Semester Exam Answer Sheet | June 04, 2021 |
| 3 | Question 3 | SPCC Semester Exam Answer Sheet | June 04, 2021 |
Additional Resources:
| # | Resource | Description |
|---|---|---|
| 1 | Answer Sheet Template | Semester Exam Answer Sheet Template |
| 2 | SPCC Questions | SPCC Exam Questions Document |
| 3 | Attendance Proof | Exam Attendance (June 04, 2021 at 11:35 AM) |
University of Mumbai examination papers from 2012-2019:
| # | Exam Session | Syllabus | Resource |
|---|---|---|---|
| 1 | May 2019 | CBCGS | View |
| 2 | December 2019 | CBCGS | View |
| 3 | May 2018 | CBCGS | View |
| 4 | December 2018 | CBCGS | View |
| 5 | May 2017 | CBCGS | View |
| 6 | December 2017 | CBCGS | View |
| 7 | May 2016 | CBCGS | View |
| 8 | December 2016 | CBCGS | View |
| 9 | May 2015 | CBGS | View |
| 10 | December 2015 | CBGS | View |
| 11 | May 2014 | CBGS | View |
| 12 | December 2014 | CBGS | View |
| 13 | May 2013 | CBGS | View |
| 14 | December 2013 | CBGS | View |
| 15 | May 2012 | CBGS | View |
| 16 | December 2012 | CBGS | View |
Course completion documentation:
| # | Document | Description |
|---|---|---|
| 1 | Submission Report | Final coursework submission report |
Official CBCGS Syllabus
Complete Third Year Computer Engineering syllabus document from the University of Mumbai, including detailed course outcomes, assessment criteria, and module specifications for System Programming and Compiler Construction and System Software Laboratory.
Important
Always verify the latest syllabus details with the official University of Mumbai website, as curriculum updates may occur after this repository's archival date.
This repository is openly shared to support learning and knowledge exchange across the academic community.
For Students
Use these resources as reference materials for understanding system software architecture, compiler phases, and preparing for examinations. All content is organized for self-paced learning.
For Educators
These materials may serve as curriculum references, lab examples, or supplementary teaching resources. Attribution is appreciated when utilizing content.
For Researchers
The documentation and organization may provide insights into academic resource curation and educational content structuring.
This repository and all linked academic content are made available under the Creative Commons Attribution 4.0 International License (CC BY 4.0). See the LICENSE file for complete terms.
Note
Summary: You are free to share and adapt this content for any purpose, even commercially, as long as you provide appropriate attribution to the original author.
Created & Maintained by: Amey Thakur
Academic Journey: Bachelor of Engineering in Computer Engineering (2018-2022)
Institution: Terna Engineering College, Navi Mumbai
University: University of Mumbai
This repository represents a comprehensive collection of study materials, reference books, assignments, and personal preparation notes curated during my academic journey. All content has been carefully organized and documented to serve as a valuable resource for students pursuing System Programming and Compiler Construction & System Software Laboratory.
Connect: GitHub · LinkedIn · ORCID
Grateful acknowledgment to Mega Satish for her exceptional support and collaboration during the laboratory experiments and classwork presentations of this course. Her constant support, patience, and clarity as we learned the fundamentals of System Programming and Compiler Construction together made a real difference. Working alongside her was truly enriching; her ability to simplify complex concepts and her steady encouragement turned challenging experiments into meaningful learning moments. This repository reflects the growth that came from our shared curiosity and mutual dedication to mastering the subject. Thank you, Mega, for being such an outstanding partner to learn with and for all the knowledge we shared along the way.
Grateful acknowledgment to Hasan Rizvi for his valuable contributions and support during the classwork presentations of this course. His insights and collaborative spirit made the learning process more engaging and effective. Working with Hasan brought fresh perspectives to complex topics, and his willingness to share knowledge and discuss ideas openly enriched the overall learning experience. Thank you, Hasan, for being such an outstanding partner to learn with and for all the knowledge we shared along the way.
Grateful acknowledgment to the faculty members of the Department of Computer Engineering at Terna Engineering College for their guidance and instruction in System Programming and Compiler Construction. Their clear teaching and continued support helped develop a strong understanding of language processors and system software.
Special thanks to the mentors and peers whose encouragement, discussions, and support contributed meaningfully to this learning experience.
Overview · Contents · Reference Books · Personal Preparation · Assignments · Classwork · Quizzes · Laboratory · Mock Test · Internal Assessment Test · Semester Exam · Question Papers · Submission Report · Syllabus · Usage Guidelines · License · About · Acknowledgments
Computer Engineering (B.E.) - University of Mumbai
Semester-wise curriculum, laboratories, projects, and academic notes.



