About the course
In this course, you will learn about the Principles of Programming Languages which introduce the major programming paradigms, and the principles and techniques involved in design and implementation of modern programming languages. To introduce frameworks for specifying and reasoning about programming languages.
The course aims to provide the means to better understand the essence of defining concepts of programming languages, so to allow critical choice about the level of abstraction, and consequently the language necessary to implement a particular system.
After completing this course, you will be able to:
- Improve the background for choosing appropriate programming languages for certain classes of programming problems
- Understand the significance of an implementation of a programming language in a compiler or interpreter
- Increase the ability to learn new programming languages
- Increase the capacity to express programming concepts and choose among alternative ways to express things
- Simulate useful features in languages that lack them
- Be able in principle to design a new programming language
The course can be taken by:
Students: Students: All students who are pursuing any technical/professional courses, and wish to enter application programming industry.
Teachers/Faculties: All computer science and engineering teachers/faculties.
Professionals: All working professionals from the IT industry.
Why learn Principles of Programming Languages?
Programming Languages is natural for computer science students to wonder how they will benefit from the study of principle of programming language. The study of principle of programming language is to provide the good knowledge about the fundamentals to design, implementation, and application of the programming languages.
- 24X7 Access: You can view lectures as per your own convenience.
- Online lectures: 10 hours of online lectures with high-quality videos.
- Updated Quality content: Content is latest and gets updated regularly to meet the current industry demands.
Test & Evaluation
There will be a final test containing a set of multiple choice questions. Your evaluation will include the scores achieved in the final test.
Certification requires you to complete the final test. Your certificate will be generated online after successful completion of course.
Topics to be covered
- UNIT I
Introduction : The Role of Programming Languages: Why Study Programming Languages, Towards Higher-Level languages, Programming paradigms, Programming environments Language Description: Syntactic structure, language Translation Issues: Programming language Syntax, Stages in translation, Formal translation Models
- UNIT II
Data, Data Types, and Basic Statements : Names , variables , binding, type checking, scope, scope rules ,lifetime and garbage collection, primitive data types, strings, array types, associative arrays ,record types, union types, pointers and references , Arithmetic expressions , overloaded operators, type conversions , relational and boolean expressions, assignment statements, mixed mode assignments, control structures, selection ,iterations, branching, guarded statements.
- UNIT III
Subprograms and Implementations : Subprograms ,design issues ,local referencing, parameter passing, overloaded methods, generic methods, design issues for functions , semantics of call and return ,implementing simple subprograms , stack and dynamic local variables, nested subprograms, , dynamic scoping.
- UNIT IV
Object-Orientation, Concurrency, and Event Handling : Grouping of data and Operations — Constructs for Programming Structures, abstraction Information Hiding, Program Design with Modules, Defined types, Object oriented programming — concept of Object, inheritance, Derived classes and Information hiding – Templates, Semaphores, Monitors, Message passing, Threads, statement level concurrency Exception handling (Using C++ and Java as example language).
- UNIT V
Functional and Logic Programming Languages: Introduction to lambda calculus, fundamentals of functional programming languages, Programming with Programming with ML, Introduction to logic and logic programming – Programming with Prolog.