IT3230-Compiler Design Lab-HANDOUT-2024
IT3230-Compiler Design Lab-HANDOUT-2024
IT3230-Compiler Design Lab-HANDOUT-2024
A. Introduction: This course is meant to provide an understanding of design of abstract models of computation, the
language translation patterns by designing different automata machine say finite automata, PDA, Turing machine. Also
try to understand the implementation aspects of regular expression, regular language and context free language.
Students would learn to use two language processing tools LEX and YACC.
Vision:
To achieve global excellence in higher education, research, and human development by adapting innovations
in IT domain.
Mission:
1. To become the most inspirational department among the students and engineering aspirants who want to pursue
their career in the field of Information Technology.
2. To foster academic, research, and professional excellence within the domain of Information Technology.
3. To transform young minds into competent IT professionals imbibing strong moral values.
PEO1: Confidently demonstrate the required logical and technical problem-solving skills and technical
competence to work in the field of IT and IT enabled services.
PEO2: Specify, analyse, design, and implement prototypes and working solutions for a wide range of real-
life problems within the specified constraints.
PEO3: Pursue higher studies, grow in the direction of research and development, pave a way forward in the
field of entrepreneurship while demonstrating remarkable professionalism, confidence, and a sense of
responsibility.
PEO4: Engage in life-long learning, communicate effectively, and exhibit leadership skills.
PEO5: Demonstrate sensitivity towards ethical and environmental issues, and social responsibilities.
D. PROGRAM OUTCOMES AND PROGRAM SPECIFIC OUTCOMES
[PO.1]. Engineering knowledge: Apply the knowledge of mathematics, science, engineering fundamentals, and an
engineering specialization to the solution of complex engineering problems.
[PO.2]. Problem analysis: Identify, formulate, research literature, and analyze complex engineering problems
reaching substantiated conclusions using first principles of mathematics, natural sciences, and engineering
sciences
[PO.3]. Design/development of solutions: Design solutions for complex engineering problems and design system
components or processes that meet the specified needs with appropriate consideration for the public health
and safety, and the cultural, societal, and environmental considerations
[PO.4]. Conduct investigations of complex problems: Use research-based knowledge and research methods
including design of experiments, analysis and interpretation of data, and synthesis of the information to
provide valid conclusions.
[PO.5]. Modern Tool Usage: Create, select, and apply appropriate techniques, resources, and modern engineering
and IT tools including prediction and modeling to complex engineering activities with an understanding of the
limitations.
[PO.6]. The Engineers and Society: Apply reasoning informed by the contextual knowledge to assess societal,
health, safety, legal, and cultural issues and the consequent responsibilities relevant to the professional
engineering practice
[PO.7]. Environment and Sustainability: Understand the impact of the professional engineering solutions in
societal and environmental contexts, and demonstrate the knowledge of, and need for sustainable
development.
[PO.8]. Ethics: Apply ethical principles and commit to professional ethics and responsibilities and norms of the
engineering practices.
[PO.9]. Individual and Teamwork: Function effectively as an individual, and as a member or leader in diverse
teams, and in multidisciplinary settings.
[PO.10]. Communication: Communicate effectively on complex engineering activities with the engineering
community and with society at large, such as, being able to comprehend and write effective reports and
design documentation, make effective presentations, and give and receive clear instructions.
[PO.11]. Project Management and Finance: Demonstrate knowledge and understanding of the engineering and
management principles and apply these to one’s own work, as a member and leader in a team, to manage
projects and in multidisciplinary environments.
[PO.12]. Life-long Learning: Recognize the need for and have the preparation and ability to engage in independent
and life-long learning in the broadest context of technological change.
[PSO.1]To apply creativity in support of the design, simulation, implementation and inference of existing and advanced
technologies.
[PSO.2]To participate & succeed in IT oriented jobs/competitive examinations that offer inspiring & gratifying careers.
[PSO.3]To recognize the importance of professional developments by pursuing postgraduate studies and positions.
E. Assessment Plan:
Total 100
F. Syllabus
Implementation of FA, PDA, TM for given languages, Identification of left factoring and left recursion from given CFG.
Identification of regular expression and string pattern. Basic Introduction: Preliminary Scanning Applications;
Lexical Analysis: Design and Implementation of Lexical Analyzer; Parsing: Design and Implementation of Parser,
Implementation of Code Generator; Lex and YACC: Programs using LEX, Programs using YACC.
G. Textbooks
T1. An Introduction to Formal Languages and Automata – Peter Linz, Jones and Bartlett Student Edition, Fifth
Edition, 2010.
T2. Compilers: Principles, Techniques and Tools – A. Aho, J. Ullman, M. S. Lam, R. Sethi, Pearson Education,
2nd Edition, 2007.
H. Reference Books
R1. Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Compilers Principles, Techniques and Tools, (2e),
Pearson Education India, 2013.
R2. D. M. Dhamdhere, Systems Programming and Operating Systems, (2e Revised), Tata McGraw Hill, 2009.
R3. Kenneth C. Louden, Compiler Construction - Principles and Practice, (1e), Thomson Press India, 2007.
I. Online Lecture Plan:
3 Identify the type of a given grammar according to Understand Chomsky Hierarchy of languages Lab 3230.1 Continuous Evaluation
Chomsky Hierarchy of languages Mid Term Examination
End Term Examination
3-6 Introduction and simulation of the behaviours of Implementing the behaviour of DFA Lab 3230.2 Continuous Evaluation
some sample DFA, Mealy machines and Moore Mid Term Examination
machines End Term Examination
Design and implementation of Push Down Designing of PDA and Understand the Lab 3230.2 Continuous Evaluation
7-8 Automata. Implementation of the behaviour of behaviour of left recursion and left factoring. 3230.3 Mid Term Examination
End Term Examination
left recursion and left factoring.
9 Implementation of Turing Machine. Implementing the behaviour of Turing Machine Lab 3230.3 Continuous Evaluation
3230.4 End Term Examination
10-12 Demonstrate the use of LEX and YACC Demonstrate lexical analysis and syntax analysis Lab 3230.5 Continuous Evaluation
using tools. End Term Examination
J. Course Articulation Matrix: (Mapping of COs with POs)