Programming Language Pragmatics
Course Description (Rationale)
Topics to be covered in this course include:
- formal aspects of syntax and semantics
- naming, scoping, and binding
- scanning, parsing, semantic analysis, and code generation
- control flow, subroutines, exception handling, and concurrency
- type systems, data structures, data abstraction, and storage management
- imperative, functional, logic-based, and object-oriented programming paradigms
- programming environments and tools
Students taking the course for graduate credit may have additional requirements on assignments and exams, and will be graded on a separate curve.
Student Learning Outcomes (Goals)
We will work hard to present the subject clearly, provide the student with examples. Programming, when feasible, is the method of choice. The student will be assigned homework and individual study. We expect the student to participate to discussions, ask questions and help the teacher and the class in achieving our objectives.
1.Evolution of the Major Programming Languages: An opportunity to review the evolution of computer technology and science. Discussion focuses on the requirements which drive the evolution, computer architecture, reliability and maintenance of programs.
2.Natural languages grammars, syntax and semantic concepts. Formal definition of syntax. Elements of Semantic definitions. Discussion on the rational to have these definitions used by users and designers of compilers. Provide examples of programs which include recursive definition of simple functions.
3.Names, Bindings and Scope, Data Types, Subprogram. Program and discuss details, Homework Assignments
4.Expressions, Assignments, Statements Control Structures, Abstract Data Types.
5.Object-Oriented Programming, Implementation of Constructs.
6.Concurrency and Exception Handling.
7.Language Evolution due to Internet.
8.Compare languages and evaluate them with respect of project requirements.
9.Research the field of programming languages and present the subject, manage a term project.
This course is not part of the CPSC 46000. Instead, this course will work as extra study material for CPSC 46000 at Department of Computer and Mathematical Sciences at Lewis University.
Required Instructional Materials
List books and materials with ISBN numbers if available.
Programming Language Pragmatics, Fourth Edition 4th Edition
by Michael L. Scott (Author), ISBN-13: 978-0124104099, ISBN-10: 0124104096
(Paperback is available)
For Course at Lewis University, please find its web site. If you want to get university credits, please go and register for their program. We do not promote their course, nor do we recommend their courses there. We just list their web site information for your reference.
On their system, you will need to have access to the Blackboard Education. List technology, including hardware & software requirements: general purpose PCs at home and in class, and Blackboard Hardware Requirements
Eric Chou, Ph.D.
He obtained his MS and PhD degree from the University of Southern California, Los Angeles, CA, USA. His technical fields is focused on smart sensory information processing, machine learning, optimization theory, communication and VLSI design.Currently, He is an adjunct faculty member in the On-line M.S. Computer Science/Data Science Programs at Lewis University, IL. He is also running a start-up company.
He love computational research and its application to real world. i have involved in many large-scale computer/communication product research development in many world-leading company such as HP, Micrel, and many startups. I also involved in founding a startup company. I also enjoy sharing my ideas through teaching. I hold many US and international patents in technical fields such as software development, mobile computing, IC design and communication receiver design. I am also a certified coach in Taekwondo in both UAST and AAU.
PreviewWhy study programming languages? (7:49)
PreviewThe programming Language Spectrum (9:37)
PreviewVon neumann Programming and other computing paradigms (11:22)
PreviewInterpretation versus compilation (8:03)
Start[Lab] CodeBlocks and GNU gcc Installation (10:38)
StartCompilation Strategies (Mixed Compilation/Interpretation) (10:40)
StartInterpretation Strategies (8:00)
StartProgramming Environment (6:12)
Start[Lab] Java BlueJ Installation (13:37)
StartAn Overview of Compilation I (6 phases) (11:34)
StartAn Overview of Compiler II (Analysis in Front-end Compiler) (6:50)
PreviewThe Development of a Programming Langauge (8:11)