2024-2025 Undergraduate Catalog

CS 360 Comparison of Programming Languages

This course will survey the major programming language paradigms of imperative, functional, object-oriented and logic languages. Theoretical coverage of underlying principles of programming languages will be studied and then demonstrated through practical examples from languages representative of each paradigm. 

Credits

3

Prerequisite

CS 170

Offered

Fall, even years

Student Learning Outcomes

  1. Students will be able to discuss the situations where developing a domain-specific language or library are appropriate
  2. Students will define a programming language including the lexical and syntax feature of the language, as well as its semantics
  3. Students will explain the role of lexical analysis as the compiler reads source code
  4. Students will explain how syntax errors are reported and how tools enable programmers to debug problems
  5. Students will construct syntax trees following language grammar rules
  6. Students will construct symbol tables and define variable scope and lifetime in relationship to the syntax tree
  7. Students will explain how the complier performs type checking on base types
  8. Students will explain how variable structures such are arrays and method calls are type checked
  9. Students will demonstrate how the compiler turns the syntax tree into intermediate code instructions
  10. Students will be able to define how bytecode interpreters work and support new high-level languages
  11. Students will explain how native code is required to achieve language performance requirements
  12. Students will explain how memory management is accomplished in modern programming languages