Course File-Ppl
Course File-Ppl
(Autonomous)
Approved by AICTE, New Delhi & Affiliated to JNTUH, Hyderabad
Accredited by NBA & NAAC with A Grade
COURSE FILE
Program Name :Btech
Name of the Course : Principles of Programming Languages
Course Code : CS3112PE
Semester and Year : III - I
Faculty Name : G. sangeetha
S.NO CONTENTS
1 Vision, Mission, COs, POs, PSOs, PEOs
2 Academic calendar
3 Syllabus
4 CO/PO mapping
6 Time table
7 Lesson Plan
11 Tutorial sheets
• POs:
PO1. Engineering knowledge: Apply the knowledge of basic sciences and
1 fundamental engineering concepts in solving engineering problems.
PO5. Modern tool usage: Select or create and apply appropriate techniques and IT
5 tools for the design & analysis of the systems.
PO6. The engineer and society: Apply reasoning informed by the contextual
knowledge to assess societal, health, safety, legal and cultural issues and the
6
consequent responsibilities relevant to the professional engineering practice.
PO8. Ethics: Apply ethical principles and commit to professional ethics and
8 responsibilities and norms of the engineering practice.
PO11. Project management and finance: Demonstrate and apply engineering &
11 management principles in their own / team projects in multidisciplinary environment.
PO12. Life-long learning: Recognize the need for, and have the ability to engage in
12 independent and lifelong learning.
PSOs:
1. PSO1: To provide effective and efficient real time solutions using acquired knowledge in
various domains to crack problem using suitable mathematical analysis, data structure and
suitable algorithm
2. PSO2: To develop environmental and sustainable engineering solution having global and
societal context using modern IT tools.
3. PSO3: To exhibit professional and leadership skills with ethical values dealing diversified
projects with excellent communication and documentation qualities.
• PEOs:
1. PEO-I: To provide students with a solid foundation in mathematics, engineering, basic
science fundamentals required to solve computing problems and also to pursue higher studies
and research.
2. PEO-IITo train students with good Computer Science and Engineering breadth so as to
comprehend, analyze, design and create innovative computing products and solutions for real
life problems.
3. PEO-III To inculcate in students professional and ethical attitude, communication skills,
teamwork skills, multi-disciplinary approach and an ability to relate computer engineering
issues with social awareness.
3.SYLLABUS
• Course Objectives
• Introduce important paradigms of Programming Languages
• To Provide conceptual understanding ofhigh-level language design and implementation
• Topic include programming paradigms;syntax and semantics,data types, Expressions
and statements;subprogramsand blocks;abstract data types,concurrency;functional and
logic programming languages;and scripting languages.
• Course Outcomes
• Acquire the skills for expressing syntax and semantics informal notation.
• Identify and apply suitable programing paradigm for a given computing application.
• Gain knowledge of and able to compare the features of various programming language.
MODULE-I
MODULE-II
Names, Bindings, and Scopes: Introduction, names, variables, concept of binding, scope,
scope and lifetime, referencing environments, named constants
Data types: Introduction, primitive, character, string types, user defined ordinal types, array,
associative arrays, record, tuple types, list types, union types, pointer and reference types,
type checking, strong typing, type equivalence
MODULE-III
MODULE-IV
Object Oriented Programming: Design issues for OOP, OOP in Smalltalk, C++, Java, Ada
95, Ruby, Implementation of Object-Oriented constructs.
Concurrency: introduction, introduction to subprogram level concurrency, semaphores,
monitors, message passing, Ada support for concurrency, Java threads, concurrency in
functional languages, statement level concurrency.
Exception Handling and Event Handling: Introduction, exception handling in Ada, C++,
Java, introduction to event handling, event handling with Java and C#.
MODULE-V
TEXT BOOKS:
REFERENCE BOOK:
Classify, Compare, Contrast, Explain, Illustrate the use of formal description for a
C415.1 programming language and different programming paradigms
Apply, build, Develop, Model, and Construct syntax and semantics to different
C415.2
programming languages
Choose, Define, Find, What, Why the basic concepts of Variables, Storage, Binding
C415.3
and Scope rules of different languages
Compare, Evaluate, Explain, Justify, Determine the basics of Prolog and ML,
C415.5
Haskell, Python languages
PO PO[ PO[ PO[ PO[ PO[ PO[ PO[ PO[ PO[1 PO[1 PO[1
1 2] 3] 4] 5] 6] 7] 8] 9] 0] 1] 2]
CO[1] 3 2 2 2 2 3 2 2 3 3 0 2
CO[2] 2 2 2 2 2 1 1 0 1 0 0 1
CO[3] 3 2 1 3 2 2 1 1 0 0 0 2
CO[4] 3 1 1 1 2 2 1 1 0 0 0 1
CO[5] 3 2 1 3 2 2 1 1 0 0 0 1
Avera 2.8 1.8 1.4 2.2 2 2 1.2 1 0.8 0.6 0 1.4
ge
CO[2] 1 1 0
CO[3] 1 3 1
CO[4] 1 1 0
CO[5] 1 0 0
M.SOWMYA
III-1 CSE
I II III IV V VI VII
Day
10.10 – 12.40 02.20
& 09.10 – 11.00 – 11.50 – 03.10 –
11.00 - 01.20 – 02.20 –
Time 10.10 11.50 12.40 04.00
01.20 03.10
MON DS CS PP LAB
TUE CS AIML AIML
WED DS PP LAB
THU AIML PP LAB DS
FRI AIML CS CS
SAT AIML DS CS DS
Metho
d of
Suggest
Tentative Topics as per JNTUH Topic Actually Teachi
S.No ed
Date Syllabus Covered ng
Book
BB/PP
T
UNIT I
PRELIMINARY CONCEPTS
1 23-08-2022 Reasons for studying Reasons for studying T1,T2 BB
languages
Programming domai
3 25-08-2022 Programming domains T2 BB
ns
Language Evaluation
4 26-08-2022 Language Evaluation Criteria T2 BB
Criteria
influences on
influences on Language
5 29-08-2022 Language design, T2 BB
design, Language categories
Language categories
Programming
Programming Paradigms –
6 30-08-2022 Paradigms – T2 BB
Imperative,
Imperative,
functional
8 01-09-2022 functional Programming, T2 BB
Programming,
Programming
Programming Language
Language
Implementation –
10 05-09-2022 Implementation – T2 BB
Compilation and Virtual
Compilation and
Machines,.
Virtual Machines,.
programming enviro
11 06-09-2022 programming environments T2 BB
nments
programs
UNIT - II
NAMES, BINDINGS AND SCOPES
concept of binding,
19 15-09-2022 concept of binding, scope scope T2 BB
20
16-09-2022 scope and lifetime scope and lifetime T2 BB
referencing
referencing environments,
21 19-09-2022 named constants environments, named T2 BB
constants
Introduction,
Introduction, primitive, primitive, character,
character, user defined, array, user defined, array,
22 20-09-2022 associative, record, union, associative, record, T2 BB
design and
design and implementation
23 22-09-2022 uses related to these types. implementation uses T2 BB
related to these types.
Names, Variable,
Names, Variable, concept of
24 23-09-2022 binding, type checking, concept of binding, T2 BB
type checking,
Arithmetic relational
Arithmetic relational and
27 29-09-2022 Boolean expressions, and Boolean T2 BB
expressions,
Short circuit
Short circuit
evaluation mixed
evaluation mixed mode
28 30-09-2022 assignment, Assignment mode assignment, T2 BB
Assignment
Statements
Statements
Unconditional
31 13-10-2022 Unconditional Statements, Statements, guarded T2 BB
guarded commands. commands.
UNIT - III
SUBPROGRAMS AND BLOCKS
Parameter passing
Parameterpassingmethodso
methods
35 20-10-2022 verloaded T2 BB
overloaded
subprograms
subprograms
UNIT - IV
introduction,
introduction, introduction to
introduction to
52 29-11-2022 subprogram level subprogram level T2 BB
concurrency
concurrency
semaphores,
semaphores,
53 01-12-2022 monitors, message passing, monitors, message T2 BB
passing,
concurrency
Java threads,
Java threads, concurrency in
55 05-12-2022 functional languages, concurrency in T2 BB
functional languages,
statement level
56 06-12-2022 statement level concurrency. concurrency. T2 BB
Introduction,
Introduction, exception
57 08-12-2022 exception handling in T2 BB
handling in Ada
Ada
C++, C++,
UNIT-V
FUNCTIONAL PROGRAMMING
Introduction,
Introduction, fundamentals of
60 12-12-2022 fundamentals of T1,T2 BB
FPL, LISP,
FPL, LISP,
application of
application of Functional Functional
Programming Languages and Programming
62 15-12-2022 T1,T2 BB
comparison of functional and Languages and
imperative Languages comparison of
functional and
imperative Language
s
Scripting
Scripting Language: Language:
63 16-12-2022 T1,T2 BB
Pragmatics, Key Concepts Pragmatics, Key
Concepts
Case Study: Python-
Case Study: Python- Values
64 16-12-2022 Values and Types, T1,T2 BB
and Types, Variables,
Variables,
Storage and Control, Storage and Control,
65 19-12-2022 T1,T2 BB
Bindings and Scope Bindings and Scope
Procedural
Procedural Absraction,
Absraction, Separate
66 19-12-2022 Separate Compilation, T1,T2 BB
Compilation, Module
Module Library.
Library.
Introduction, an
Introduction, an overview of
67 20-12-2022 overview of logic T1,T2 BB
logic programming,
programming,
basic basic
68 21-12-2022 T1,T2 BB
elements of prolog, elements of prolog,
deficiencies of
69 22-12-2022 deficiencies of prolog, T1,T2 BB
prolog,
TEXT BOOKS:
• Concepts of Programming Languages Robert .W. Sebesta 8/e, Pearson Education, 2008.
REFERENCE BOOKS:
• Programming Languages, 2nd Edition, A. B. Tucker, R. E. Noonan, TMH.
8.Assignment Questions
DEPARTMENT OF CSE
SUBJECT:PPL
• Describe the steps involved in the language evaluation criteria. [CO1, PO1]
• The levels of acceptance of any language depend on the language description. Comment on
this. [CO2,PO1,PO2]
• Describe in your own words, the concept of orthogonality in programming language design.
[CO2,PO1,PO2]
• Evaluate the two approaches for supporting dynamic allocation and deal location for
dynamic length strings. [CO3, PO1]
DEPARTMENT OF CSE
SUBJECT: PPL
• Write a recursive Python function that recursively computes sum of elements in a list of lists.
Sample Input: [1, 2, [3,4], [5,6] ] Expected Result: 21[CO3, PO1,PO2]
* * *
* *
*
• Describe about a function called oops that explicitly raises a Index Error exception when
called. Then write another function that calls oops inside a try/except statement to catch the
error. What happens if you change oops to raise Key Error instead of Index Error? Where do
the names Key Error and Index Error come from? [CO4,PO1,PO2]
• Write a Python program that creates a GUI with a textbox, Ok button and Quit button. On
clicking Ok, the text entered in textbox is to be printed in Python shell; on clicking Quit, the
program should terminate.[CO5,PO1,PO2]
• Illustrate the internal structure of a typical Python module with the suitable example.
[CO5,PO1,PO2].
DEPARTMENT OF CSE
SET - A
SUBJECT: PPL DATE:
MAX. MARKS: 10 TIME:
ANSWER ANY TWO QUESTIONS 2*5=10M
1. a) Explain about the preconditions and post conditions of a given statement mean in axiomatic
semantics. [2M][CO1PO2,,PO3]
b) What is type checking? Differentiate between static and dynamic type checking and give
their relative advantages. [3M][CO2,PO2]
2. a) Describe the steps involved in the language evaluation criteria.[3M][CO1,PO2]
b) What is aliasing? What are the problems associated with it?[2M][CO2,PO2]
3. a) Discuss about language recognizers and language generators. [2M][CO1,PO2]
b) Explain the different parameter passing methods with an example.
[3M][CO3,PO2,PO3]
4. a) Define an array? Explain how to initialize an array? Explain the different types of
arrays .[3M][CO2,PO2,PO3]
b) Explain about co routines.[2M][CO3,PO3]
SET - A
b) Explain the following with respect to LISP: data types, structures and LISP interpreter.
[3M][CO4,PO2,PO3]
4a) Write in lisp for implementing Fibonacci and factorial of ‘n’ number using functions
.[3M][CO4,P02]
2. https://en.wikipedia.org.
3.https://www.tutorialspoint.com.
UNIT: 2
SHORT QUESTIONS
• Distinguish static and dynamic scoping.
LONG QUESTIONS
UNIT: 3
SHORT QUESTIONS
LONG QUESTIONS
• What are the modes, the conceptual models of transfer, the advantages and disadvantages of
pass by value, pass by result, pass by value-result and pass by reference parameter passing
methods?
• Define Shallow and deep binding for referencing environment of subprograms that have
been passed as parameter?
• Write about Co routines?
• Explain the considerations for choosing parameter passing methods?
• What are the Generic characteristics of subprogram?
• Explain, how multi dimensional arrays can passed as arguments in Ada language?
UNIT: 4
SHORT QUESTIONS
• Define an exception
• Explain threads in C#
• Define concurrency.
• Define monitors.
• Define deadlock.
LONG QUESTIONS
• Explain the difference Physical and logical concurrency?
• What are three possible levels of concurrency in programs? Explain?
• What is the use of Friend function in C++, Explain with example?
• Write short notes on C# threads?
• What are different states a task can be? Explain?
• Explain In detail Cooperation synchronization?
• Explain detailed compassion of Exception handling capabilities of C++ and those of
Java?
• Explain the following with examples?
• Exception handler
• Disabling an Exception
• Continuation
• How are Exceptions bound to handlers in C++?
UNIT: 5
SHORT QUESTIONS
• Give the meaning of lazy evaluation
LONG QUESTIONS
1) Explain
• Common Lisp
• Haskell
• ML
2) Discuss the applications of functional languages?
3) Explain the difference between Imperative and functional languages?
4) Describe the semantics of COND and LET?
5. Explain the characteristics of scripting languages.
6. List the ways in which ML is significantly different from scheme.
7. Give example of Python code to find the roots of quadratic equation
R20
PART - A
(25 Marks)
PART - B
(50 Marks)
2.a) Explain about the preconditions and postconditions of a given statement mean in
axiomaticsemantics.
b) Describe the steps involved in the languageevaluationcriteria. [5+5]
OR
4.a) Explain about the mixed-mode assignments that are used in Ada and JavaLanguages.
b) Explain about the type compatibility withanexample. [5+5]
OR
5.a) What is type checking? Differntiate between static and dynamic type checking and
give their relativeadvantages.
b) Define an array? Explain how to initialize an array? Explain the different types of
arrays.[5+5]
6.a) Describe about the static and dynamic scope of variables with anexample.
b) Define sub program. What are the distinct categoriesofsubprograms. [5+5]
OR
7.a) Explain about the generic subprograms in Ada with an
b) example. Explain about the semantic models of parameter [5+5]
passing.
---ooOoo---
R20
PART - A
(25 Marks)
PART - B
(50 Marks)
OR
4.a) What do you mean by binding? Give examples of some of the bindings and their
bindingtimes.
b) Evaluate the two approaches for supporting dynamic allocation and deallocation for
dynamiclengthstrings.
[6+4
]
OR
OR
OR
OR
11.a) What are the three features of Haskell that makes very different fromschema?
b) What are the data types supported inPython?Discuss. [5+5]
Study Material.pdf
PPL PPT_1.pptx
Subject Notes.pdf
III-CSE
III-CSE
CO 4 3 0 3 2
CO 5 3 3 3 3
Attainment 2.27
III CSE
III CSE-C
Attainment
CO 1 3
CO 2 3
EXTERNAL CO 3 3
CO 4 3
CO 5 3
Attainment
CO 1 3
CO 2 3
EXTERNAL CO 3 3
CO 4 3
CO 5 3
III =I CSE-A
Attainment
CO 1 2
EXTERNAL
CO 2 2
CO 3 2
CO 4 2
CO 5 2
2
CO 3 2 CO 3 2.76
3 3 3 3 3 3 3
CO 3 2 CO 4 2.78
4 3 3 3
CO 3
5 3 3 3 2 CO 5 2.87
Attainment 3.00 2.00 Final
Weightage 25% 75% Indirect
2.80
Direct Total Attainment 0.75 1.5 Course
final direct course attainment 2.25 attainment
Weightage 80% 20%
Total Attainment 1.80 0.56
Course Attainment 2.36
19.CO to PO Attainment
Course PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3
Code
C415 2.36 1.52 1.18 1.86 1.69 1.69 1.01 0.84 o.67 0.51 0.17 1.118 0.84 1.01 0.17