Programming Language Principles - Walden University NCSC 6121 Spring 2007

Introduction

I'm taking this course in the January of 2007 through a distance learning, masters in computer science program at Walden University. — Doug Daniels (Dev Journal) 2006/11/23 19:31

The course objectives are:

  • Understand the central issues and principles governing the design of modern programming languages.
  • Understand the fundamental differences between the four major programming language paradigms.
  • Understand the value of operational and denotational semantic specifications of programming language constructs.
  • Implement a syntax analyzer for any reasonable programming language.
  • Understand the process of translation of a program in a high-level language to a low-level language.

Java RPAL AST Generator

For the course project I wrote an Abstract Syntax Tree generator for the RPAL language.

Course Topics

Listed below are the various topics that were covered in the course. (I'm going to try and provide some additional details such as homework assignments and practical code samples for some of them. — Doug Daniels 2006/12/20 22:00

  1. Generating Abstract Syntax Trees
  2. Introduction to the RPAL language
  3. Building AST's for RPAL programs
  4. Name binding and object lifetimes
  5. Scope rules
  6. Binding of reference environments
  7. Functional graphs and evaluation algorithms
  8. Attribute grammars
  9. An attribute grammar for binary numbers
  10. A Tiny language, its syntax, target machine, and attributes
  11. An attribute grammar for Tiny
  12. Extending Tiny
  13. Expression evaluation
  14. Control flow, selection, and iteration
  15. Recursion
  16. Type systems and type checking
  17. Records and arrays
  18. Pointers and recursive types
  19. Stack layout, static links, and displays
  20. Parameter passing
  21. Generics and exceptions
  22. RPAL tree standardization
  23. Lambda expressions and the subst function
  24. Lambda calculus
  25. The RPAL CSE machine
  26. Optimizations of the CSE machine
  27. Recursion
  28. Semantic domains and semantic functions
  29. Denotational semantics of Tiny
  30. The RPAL denotational description of Tiny
  31. Adding new expressions and statements
  32. Adding the for statement in C and Pascal
  33. Expanding Tiny into Medium
  34. C++ as a better C
  35. Object-oriented programming in C++
  36. Logic Programming
 
articles/programming_language_principles_ncsc_6121.txt · Last modified: 2009/04/30 22:56 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki