Concepts of Progr.

 

 

What is the main purpose for this course?

Concepts of Programming Languages introduces students to the main constructs of contemporary programming languages and provides the tools needed to critically evaluate the existing and future programming languages. Students gain a solid foundation for understanding the fundamental concepts of programming languages through the course presentation of design issues for various language constructs, the examination of the design choices for these constructs in some of the most common languages, and critical comparison of the design alternatives. In addition, the course provides an in-depth discussion of programming language structures, presents a formal method of describing syntax, and introduces approaches to lexical and syntactic analysis.

The purpose of this course is to

  1. Provide students with better understanding of significance of implementation.
  2. Acquaint students with the ability to learn new languages.
  3. Introduce students to various programming language concepts including binding, scope, lifetime, parameter passing etc.
  4. Enable students to be efficient in their work.

 

List of Topics

 

No. of

Weeks

Contact Hours

1.Preliminaries: Reasons for Studying Concepts of Programming Languages, Programming Domains, Language Evaluation Criteria, Influences on Language Design, Language Categories, Language Design Trade-Offs, Implementation Methods, Programming Environments.

2

8

2.Evolution of the Major Programming Languages : Zuse’s Plankalkül, Pseudocodes, Fortran, LISP, ALGOL 60, COBOL, BASIC, Object-Oriented Programming,  C++, Java, Scripting Languages, .NET Language: C#, Markup / Programming Hybrid Languages .

1

4

3.Describing Syntax and Semantics: Introduction, the General Problem of Describing Syntax, Formal Methods of Describing Syntax, Attribute Grammars, Describing the Meanings of Programs, Dynamic Semantics.

3

12

4.Names, Bindings, and Scopes: Introduction, Names, Variables, The Concept of Binding, Scope, Scope and Lifetime, Referencing Environments, Named Constants.

 

2

8

5.Data Types: Introduction, Primitive Data Types, Character String Types, User-Defined Ordinal Types, Array Types, Associative Arrays, Record Types.

2

8

6.Expressions and Assignment Statements: Introduction, Arithmetic Expressions, Overloaded Operators, Type Conversions, Relational and Boolean Expressions, Short-Circuit Evaluation, Assignment Statements, Mixed-Mode Assignment.

2

8

7.Statement-Level Control Structures: Introduction, Selection Statements, Iterative Statements, Unconditional Branching, Guarded Commands, Conclusions.

 

2

8

8.Subprograms: Introduction, Fundamentals of Subprograms, Design Issues for Subprograms, Local Referencing, Environments, Parameter-Passing Methods.

 

1

4

9.Expressions and Assignment Statements: Introduction, Arithmetic Expressions, Overloaded Operators, Type Conversions, Relational and Boolean Expressions, Short-Circuit Evaluation, Assignment Statements, Mixed-Mode Assignment.

1

4

 

 

Learning Resources

  1. List Required Textbooks :
    • Robert W. Sebesta, Concepts of Programming languages, Addison-Wesley edition 10, 2013.
  2. List Essential References Materials :
    1. David A. Watt, Programming Language Design Concepts, Wiley (May 31, 2004).
    2. Sara Baase and Allen Van Gelder, Computer Algorithms: Introduction to Design & Analysis, Third Edition. by, 2000.
  3. List Recommended Textbooks and Reference Material  :
    1. Journal of Computer Languages.
  4. List Electronic Materials  :
    1. http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-821-programming-languages-fall-2002/index.htm
    2. http://nptel.ac.in/courses/106102067/
  5. Other learning material :
    1. Video and presentation are available  

 

 

Downloads

Contact Info.

Tel.: 016 404 4029
Ext. : 4029
Email: [email protected]

Room : S177

إحصائية الموقع

عدد الصفحات: 28

البحوث والمحاضرات: 0

الزيارات: 9453