Programming Language Pragmatics

Programming Languages, Compiler Design, C/C++, Java, C#, Ada, OCaml, Python, Javascript, Scala

Course Description (Rationale)

This course is an introduction to the design and implementation of programming languages. From the design point of view, we will study language features as tools for expressing algorithms. From the implementation point of view, we will study compilers, interpreters, and virtual machines as tools to map those features efficiently onto modern computer hardware. The course will touch on a wide variety of languages, both past and present, with an emphasis on modern imperative languages, such as C++ and Java, and, to a lesser extent, on functional languages such as Scala and LISP, and scripting languages such as Python, Javascript and PHP. Rather than dwell on the features of any particular language, we will focus instead on fundamental concepts, and on the differences between languages, the reasons for those differences, and the implications those differences have for language implementation.

This course listed here at eC Learning channel. It may be used as text video to support the course CPSC 46000 at Lewis University, IL.

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.

Course Liaison

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

Your Instructor

Dr. Eric Chou
Dr. Eric Chou

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.


Course Curriculum

  Chapter 2 Programming Language Syntax [Part 2] Parsing
Available in days
days after you enroll
  Chapter 3: Names, Scopes, and Bindings
Available in days
days after you enroll
  Chapter 6: Control Flow
Available in days
days after you enroll
  Chapter 10: Data Abstraction and Object Orientation
Available in days
days after you enroll
  Chapter 11: Functional Languages (Scala)
Available in days
days after you enroll
  Chapter 14: Scripting Languages (Python/Javascript/Shell Languages)
Available in days
days after you enroll
  Chapter 17: Code Improvement
Available in days
days after you enroll
  Appedix A: Extra Reading Materials
Available in days
days after you enroll
  Appendix B: CPSC 46ooo Programming Languages at Lewis University
Available in days
days after you enroll

Frequently Asked Questions

When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish.
How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.

Get started now!