Vignan’s Institute of Technology & Aeronautical Engg



Download 342.38 Kb.
Page1/16
Date28.01.2017
Size342.38 Kb.
#9046
  1   2   3   4   5   6   7   8   9   ...   16

Vignan’s Institute of Technology & Aeronautical Engg.

Deshmukhi, Nalgonda – 508 116.


COURSE MATERIAL

PRINCIPLES OF PROGRAMMING LANGUAGES

(B.Tech CSE II Year /II Sem)

DEPT OF COMPUTER SCIENCE & ENGINEERING


SYLLABUS

UNIT-I: Preliminary Concepts->Reasons for studying concepts of programming languages, Programming domains, Language Evaluation Criteria, influences on Language design, Language categories, Programming Paradigms – Imperative, Object Oriented functional Programming, Logic Programming. Programming Language Implementation – Compilation and Virtual Machines, programming environments

UNIT-II: Syntax and Semantics->general Problem of describing Syntax and Semantics, formal methods of describing syntax – BNF, EBNF for common programming languages features, parse trees, ambiguous grammars, attribute grammars, denotational semantics and axiomatic semantics for common programming language features

UNIT-III: Data types->Introduction, primitive, character, user defined, array, associative, record, union, pointer and reference types, design and implementation uses, related to these types, Names, Variable, concept of binding, type checking, strong typing, type compatibility, named constants, variable initialization

UNIT-IV: Expressions and Statements->Arithmetic relational and Boolean expressions, Short circuit evaluation mixed mode assignment, Assignment Statements, Control Structures – Statement Level ,Compound Statements ,Selection, Iteration, Unconditional Statements, guarded commands

UNIT-V: Subprograms and Blocks->Fundamentals of sub-programs, Scope and lifetime of variable, static and dynamic scope, Design issues of subprograms and operations, local referencing environments, parameter passing methods, overloaded sub-programs, generic sub-programs, parameters that are sub-program names, design issues for functions user defined overloaded operators, co routines

UNIT-VI: Abstract Data types->Abstractions and encapsulation, introductions to data abstraction, design issues, language examples, C++ parameterized ADT, object oriented programming in small talk, C++, Java, C#, Ada 95, Concurrency->Subprogram level concurrency, semaphores, monitors, massage passing, Java threads, C# threads

UNIT-VII: Exception handling->Exceptions, exception Propagation, Exception handler in Ada, C++ and Java, Logic Programming Language->Introduction and overview of logic programming, basic elements of prolog, application of logic programming

UNIT-VIII: Functional Programming Languages->Introduction, fundamentals of FPL, LISP, ML, Haskell, application of Functional Programming Languages and comparison of functional and imperative Languages

UNIT – I

CHAPTER - I

Preliminaries

Reasons for studying concepts of programming languages




  • Increased ability to express ideas.

    • It is believed that the depth at which we think is influenced by the expressive power of the language in which we communicate our thoughts. It is difficult for people to conceptualize structures they can’t describe, verbally or in writing.

    • Language in which they develop S/W places limits on the kinds of control structures, data structures, and abstractions they can use.

    • Awareness of a wider variety of P/L features can reduce such limitations in S/W development.

    • Can language constructs be simulated in other languages that do not support those constructs directly?




  • Improved background for choosing appropriate languages

    • Many programmers, when given a choice of languages for a new project, continue to use the language with which they are most familiar, even if it is poorly suited to new projects.

    • If these programmers were familiar with other languages available, they would be in a better position to make informed language choices.




  • Greater ability to learn new languages

    • Programming languages are still in a state of continuous evolution, which means continuous learning is essential.

    • Programmers who understand the concept of OO programming will have easier time learning Java.

    • Once a thorough understanding of the fundamental concepts of languages is acquired, it becomes easier to see how concepts are incorporated into the design of the language being learned.




  • Understand significance of implementation

    • Understanding of implementation issues leads to an understanding of why languages are designed the way they are.

    • This in turn leads to the ability to use a language more intelligently, as it was designed to be used.




  • Ability to design new languages

    • The more languages you gain knowledge of, the better understanding of programming languages concepts you understand.




  • Overall advancement of computing

    • In some cases, a language became widely used, at least in part, b/c those in positions to choose languages were not sufficiently familiar with P/L concepts.

    • Many believe that ALGOL 60 was a better language than Fortran; however, Fortran was most widely used. It is attributed to the fact that the programmers and managers didn’t understand the conceptual design of ALGOL 60.

    • Do you think IBM has something to do with it?


Download 342.38 Kb.

Share with your friends:
  1   2   3   4   5   6   7   8   9   ...   16




The database is protected by copyright ©ininet.org 2024
send message

    Main page