CSCI 485 Programming Languages
by Hui Chen, Ph.D.
Overview
This courses introduces discrete and continuous simulation modeling and applications in computer science. See course syllabus for more information.
Textbook
Sebesta, Robert W., Concepts of Programming Languages, 10th Edition, 2012
Reference
Programming Languages by Dan Grossman via Coursera and related course material
Acknowledgment
Dr. David Walter who taught Concepts of Programming Languages numerous times provided many course materials
Class Schedule and Material
-
01/11 - 01/15 Preliminaries
-
01/20 Evolution
Reading:
- Chapter 2 of the textbook
- John Backus. 1978. Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs. Commun. ACM 21, 8 (August 1978), 613-641. DOI= http://dx.doi.org/10.1145/359576.359579
- Eric Schulte, Non-Von Neumann Computation (a survey) , 2010
Compilers and Interpreters:
- Gnu Fortran Compiler ; Intel Fortran Compiler ; Matlab and GNU Octave ; R ; Common Lisp ; Scheme ; Emacs Lisp ; SML ; Haskell ; GnuCOBOL ; Microsoft Visual Studio and Visual Basic ; Microsoft Office and Visual Basic for Applications (VBA) ; GNU Prolog ; GNU C/C++ ; Microsoft Visual Studio and Visual C++ ; Oracle/Sun Java ; OpenJDK Perl and The Comprehensive Perl Archive Network (CPAN) ; PHP ; Python ; Ruby ; Lua ; ECMAScript (JavaScript) and ECMAScript Engines ; .Net and C# ; F# ; Objective C ; Swift ; ASP ; JSP ; XSLT ;
Assignment:
-
01/22 - 01/29 Syntax and Semantics
Reading:
- Chapter 3 of the textbook
- Example applications of Context-Free Grammar: SQL Language (PostGreSQL documentation); Java Programming Language; C++ Programming Language; Extensible Markup Language (XML); XML Schema Definition Language; XSL Transformations (XSLT) and XPath
Assignment:
-
02/01 - 02/17 Lexical and Syntax Analysis
Reading:
- Chapter 3 of the textbook
- The simple lexical analyzer in pp. 173 - 177 in the textbook
- An reimplementation of the simple lexical analyzer in pp. 173 - 177 in the textbook using Lex
- The simple recursive descent parser in pp. 182 - 185 in the textbook
- The bottom-up parser implemented using Lex and Yacc for the example in pp. 182 - 185 in the textbook
Assignment:
- Homework 4
- Project 1
- Project 1: An example WebDriver application supporting the project
- Project 1: VSU undergraduate computer science curriculum sheet (page 254 in the catalog)
Resources:
- Debian Virtual Machine Image at Dropbox.com; Debian Virtual Machine Image at Onedrive.com; Setting Up Virtual Machines
- Tom Niemann, Lex & Yacc Tutorial , epaperpress.com
- Levine, John R., Tony Mason, and Doug Brown. Lex & yacc. O'Reilly Media, Inc., 1992.
- Lex: JFlex (The Fast Scanner Generator for Java); Flex (The Fast Lexical Analyzer); PLY (Python Lex-Yacc)
- Yacc: Yacc; Bison; Jacc; PLY (Python Lex-Yacc)
Remark:
- Class on February 15 was canceled due to inclement weather
-
02/19 - 02/22 Name, Binding, and Scope
Programming Environment for SML
Watch:
- SML: Expressions, Variables, and Binding by Dan Grossman, the University of Washington
- SML: Rules for Expressions by Dan Grossman, the University of Washington
- SML: REPL and Errors by Dan Grossman, the University of Washington
- SML: Shadowing by Dan Grossman, the University of Washington
Reading:
- Chapter 5 of the textbook
Assignment:
-
02/24 - 02/29 Data Types
Watch:
- You may need to complete all videos in the previous unit by Dan Grossman, the University of Washington, before proceed to the following.
- SML: Datatypes, Pattern Matching, Tail Recursion, and More by Dan Grossman, the University of Washington
Reading:
- Chapter 6 of the textbook
Project Checkpoint:
- How are you doing in project 1?
-
03/02 Midterm Exam
-
03/07 - 03/11 Spring Break; No Class
-
03/14 Project 1: Presentation and Report
Student Project:
-
03/16 - 03/18 Functional Programming Language
Watch:
- SML: First-Class Functions, by Dan Grossman, the University of Washington
- SML: Functions as Arguments by Dan Grossman, the University of Washington
- SML: Closures and Recomputation by Dan Grossman, the University of Washington
- You may need to complete all videos in unit 3 by Dan Grossman, the University of Washington
Reading:
- Chapter 15 of the textbook
Assignment:
-
03/21 - 03/25 Abstract Data Types and Encapsulation Constructs
Reading:
- Chapter 11
Watch:
- all videos in unit 4 by Dan Grossman, the University of Washington
Assignment:
-
03/28 - 04/01 Subprograms
-
04/04 - 04/08 Object-Oriented Programming
-
04/11 - 04/15 Exception Handling
Reading:
- Chapter 14
Watch:
- SML: Exceptions by Dan Grossman, the University of Washington
Assignment:
-
04/18 - 04/22 Concurrency
Reading:
- Chapter 13
-
04/25 - 04/29 Logic Programming Languages
Reading:
- Chapter 16
Remark: 04/29: last day of class
Project 2:
- Project Final Presentation
-
05/02 Reading Day
-
05/03 - 05/06 Final Examination Week
CSCI485 Final Exam:
10:30AM – 12:30PM, Tuesday, May 3, 2016, HM 14S