syntax languages

advertisement
1. Course number and name: CS 4850, Programming Languages
2. Credits and contact hours 3 cr. hrs, 3 contact hrs.
3. Instructor’s or course coordinator’s name: Dr. Wuwei Shen
4. Text book, title, author, and year: Programming Languages Principles and Paradigms,
2nd Edition by Allen Tucker and Robert Noonan. McGraw Hill, ISBN-10: 0-07-2866098.
a. other supplemental materials
None
5. Specific course information
a. brief description of the content of the course (Catalog Description)
This course will introduce some basic concepts related to programming
languages. First, students will learn how to describe the syntax of a programming
language. Based on the syntax, the type system and semantics of a programming
language will be covered. As a best way to learn these concepts, students are
going to apply these techniques in a C-like programming language. In addition,
students are going to learn the run-time organization for a programming language
andn in particularly some garbage collection algorithms will be introduced during
the class. Last, students will concentrate on the object-oriented programming
langauges and learn the advantages and disadvantages of object-oriented
programming languages when developing a software system.
b. prerequisites or co-requisites: Prerequisite: CS 3310
c. indicate whether a required, elective, or selected elective (as per Table 5-1) course
in the program: Required Course
6. Specific goals for the course
a. specific outcomes of instruction, ex. The student will be able to explain the
significance of current research about a particular topic.
1.
2.
3.
4.
5.
6.
7.
8.
9.
use BNF to define the syntax for a programming langauge
use some formal method to describe the semantics of a programming language
use parsing techniques to find syntax errors in a program based on the BNF notation
understand the memory management in a computer
understand the scope, type checking and name binding in modern programming
languages
understand some garbage collection algorithms used in modern programming languages
explain how a compiler is implemented and be ready to implement a compiler with the
aid of some tools
compare different paradigms of modern programming languages
describe and understand the advantages and disadvantages of the object-oriented
languages when developing a software system.
b. explicitly indicate which of the student outcomes listed in Criterion 3 or any other
outcomes are addressed by the course.
An ability to apply knowledge of computing and mathematics appropriate to the discipline
(a1-a6, a8)
(a)
(b)
An ability to analyze a problem, and identify and define the computing requirements
appropriate to its solution (a6, a7 and a9)
(c)
An ability to design, implement, and evaluate a computer-based system, process,
component, or program to meet desired needs (a6, a7 and a9)
(d)
An ability to function effectively on teams to accomplish a common goal (a7 and a9)
(e)
An understanding of professional, ethical, legal, security and social issues and
responsibilities (not applicable)
(f)
An ability to communicate effectively with a range of audiences (a7 and a9)
(g)
An ability to analyze the local and global impact of computing on individuals,
organizations, and society (a9)
(h)
Recognition of the need for and an ability to engage in continuing professional
development (a9)
(i)
An ability to use current techniques, skills, and tools necessary for computing practice. (a7)
(j)
An ability to apply mathematical foundations, algorithmic principles, and computer science
theory in the modeling and design of computer-based systems in a way that demonstrates
comprehension of the tradeoffs involved in design choices. (a9)
(k)
An ability to apply design and development principles in the construction of software
systems of varying complexity. (a9)  be able explain how a compiler is implemented and be
ready to implement a compiler with the aid of some tools
 compare different paradigms of modern programming languages
 describe and understand the advantages and disadvantages of the object-oriented languages
when developing a software system.
1.
7. Brief list of topics to be covered
Syntax and semantics of Programming Langauges, Context free grammar, Regular
grammar, regular expression, name, scoping, runtime organization, object-oriented
programming languages, and the LSP principle etc.
Download