Concepts of Programming Languages

Concepts of Programming Languages
(CSCI 3303)
Prerequisites:

  • Programming language(1)
  • Programming language(2)
  • C++(O.O.P )
  • Web programming.

Course Overview:
Discussion of the important issues in the specification, design and implementation of programming languages with emphasis on imperative programming. The objective of the course is not to master a set of programming languages but rather the emphasis is on evaluating alternative ways of providing various programming language features, and studying the trade-off involved. The topics covered will include syntactic specification, data types, abstraction mechanisms (abstract data types, packages, classes), sequences control (iteration, branching, exceptions, procedures), data control (global data, shared data, parameter transmission), storage management, functional programming and introduction to program verification. We will use Pascal(Delphi), C, C++, C# , ( some concepts of F#) Java, JavaScript, Php Script to illustrate programming language concepts covered in the course. Preliminaries , Evolution of the major programming languages, describing syntax and semantics , names, bindings, type checking and scopes , data types , expressions and the assignment statement , statement-level control structures , subprograms ,implementing subprograms ,abstract data types , exception handling , O.O.P languages
Strategy:
3hours per week
2hours practical per week.
Grading:
20 % mid-term exam.
25 % practical.
5 % assignments.
50 % final exam.
Aim of course:
The aim of this course is to provide the students with the tools necessary for the critical evaluation of existing and future programming languages and constructs. An additional goal is to prepare the students for study of compiler design and construction, it uses for answer the questions why are there so many different programming languages? How and why were they developed? In what way are they similar? What are their differences? What kinds of programming languages may be developed and used in the future. Understanding programming language paradigms, features, and trade-offs. The ability to chose the right language for the job. Appreciation and understanding of the reasons for the diversity of programming languages.
Book :
Concepts of Programming languages by ROBERT W . SEBESTA. 9th Edition