MCA-20-24(i): Principles of Programming Languages
Type: Elective
Contact Hours: 4 hours/week
Examination Duration: 3 Hours
Mode: Lecture
External Maximum Marks: 75
External Pass Marks: 30(i.e. 40%)
Internal Maximum Marks: 25
Total Maximum Marks: 100
Total Pass Marks: 40(i.e. 40%)
Instructions to paper setter for End semester exam:
Total number of questions shall be nine. Question number one will be compulsory and will be consisting of short/objective type questions from complete syllabus. In addition to compulsory first question there shall be four units in the question paper each consisting of two questions. Student will attempt one question from each unit in addition to compulsory question. All questions will carry equal marks.
Course Objectives: The objective of this paper is to make the students familiar with different elements of programming languages such as data types/operators/statements/control constructs and their implementation with the understanding that it will help them in becoming a better programmer.
Course Outcomes (COs) At the end of this course, the student will be able to:
MCA-20-24(i).1 understand the programming language hierarchy and basics of compilation;
MCA-20-24(i).2 understand the different types of grammar;
MCA-20-24(i).3 understand the features of object oriented language and different methods of sequence control;
MCA-20-24(i).4 understand the implementation of different type of functions.
Unit – I
Preliminaries: History, Impact of Programming Paradigms, Role of Programming Languages, Good Language, Effects of Programming Environment, Translators and virtual architectures, Binding and Binding time, Language Syntax, Analysis of Program, Synthesis of Object program, Formal translation models: BNF Grammars, General parsing, Language translation, Recursive descent parsing.
Unit – II
Formal languages and automata: The Chomsky hierarchy of formal languages, regular grammars, Regular expressions, Finite State Automata, Context-free grammars, Pushdown automata, Ambiguous grammars.
Language Semantics: Attribute grammars, Denotational semantics, Program verification and validation, Data objects, variables, constants, data types, declaration, type checking, type casting, type promotion, Enumerators, Composite data types.
Unit – III
Object Orientated concepts: Structured data types, Abstract data types, Information hiding, Subprogram concepts, Good program design, Type definitions, Type equivalence, Inheritance, Derived classes, Abstract classes, Polymorphism, Inheritance and software reuse.
Sequence control: Implicit and explicit sequence control, Sequence control within arithmetic expressions, sequence control between statements, sequencing with non-arithmetic expressions, Subprogram Sequence control.
Unit – IV
Miscellaneous topics: Parameter passing techniques, Static & Dynamic Scoping, Storage of variables, Static storage, Heap Storage management, Distributed Processing, Exceptions and Exception handlers, Co-routines, Scheduled subprograms, Parallel programming, Processor design, Hardware and Software architectures, Network Programming, Evolution of scripting languages, Applets, XML.
Text Books:
⦁ Pratt T.W., Zelkowitz M.V., Gopal T.V., Programming Languages Design and Implementation, Pearson Education.
⦁ Sebesta W. Robert, Concepts of Programming Languages, Pearson Education.
Reference Books:
⦁ Appleby Doris &VandeKopple J. Julius, Programming Languages-Paradigm and practice, Tata McGraw Hill.
⦁ Sethi Ravi, Programming Languages: Concepts & Constructs, Pearson Education.
⦁ Scott M., Programming Language Pragmatics, Elsevier India.