San Jose State University : Site Name

Navigation

Main Content

Goals of the course, JPL

Ronald Mak

Department of Computer Science
Department of Applied Data Science
Fall Semester 2026

Office hours: Up to one hour in person after Thursday classes
Online by appointment
Office location: Working from home
E-mail: ron.mak@sjsu.edu

CS/SE 153 Concepts of Compiler Design


Section 1: TuTh 1:30 - 2:45 PM room MH 422


Assignments

# Date Due Assignment
Aug 20 Aug 24 Submit proof of prerequisites to Canvas:
Assignments/Miscellaneous/Course prerequisites
Aug 20 Aug 26 Submit project team info (one submission per team) to Canvas:
Assignments/Miscellaneous/Project team info

Lectures

Week Date Content
1 Aug 22 Slides: Goals; course learning outcomes; project teams; grading; postmortem assessment report; types of programming languages; it's all about translation; language classes during translation; Pascal; example translations: conversion, execution, debugging, compilation

Example Pascal program: SquareRootTable.pas
Example language conversion (Pascal to Java): SquareRootTable.java
Example object code (Jasmin): SquareRootTable.j

Goals of the course

This course will concentrate on practical aspects of compiler construction, programming language design, and engineering a large, complex software application.

This is a challenging course that will demand much of your time and effort throughout the semester.

Course Learning Outcomes (CLO)

Prerequisites

Department policy is to enforce
all course prerequisites strictly

CS 47 Introduction to Computer Systems
or CMPE 102 Assembly Language Programming
grade C- or better
CS 146 Data Structures and Algorithms grade C- or better
CS 154 Formal Languages and Computability grade C- or better

Required book

The Definitive ANTLR 4 Reference, 2nd edition
Terence Parr
Pragmatic Bookshelf, 2012
ISBN: 978-1934356999
http://www.antlr.org/

Online Pascal tutorials

We will use Pascal as the example source language.
Pascal Tutorial  looks very good. It has an online Pascal compiler.
Learn Pascal  also looks good, although it doesn't appear to cover set types.

Online Pascal development sites

You can edit, compile, and run Pascal programs online.
http://rextester.com/l/pascal_online_compiler
https://www.tutorialspoint.com/compile_pascal_online.php
https://www.jdoodle.com/execute-pascal-online

Other useful tutorials.

Install the ANTLR 4 plug-in for Eclipse, etc.
The Java Virtual Machine Instruction Set

Software to Install

You should install and use an interactive development environment (IDE) such as Eclipse or IntelliJ. To develop translators for your language, you will need to download and install the ANTLR 4 package and its Eclipse or IntelliJ plugin, and then modify them to generate the necessary compiler components in Java. Instructions for ANTLR 4 will be provided when the time comes.

Project teams

You will form small project teams. Team membership is mandatory for this class. The teams will last throughout the semester. Once the teams are formed, you will not be allowed to move from one team to another, so form your teams wisely!

Course Requirements and Assignments

You must have good Java programming skills and be familiar with development tools such as Eclipse or IntelliJ.

Team-based lab assignments will provide practice with compiler design techniques and give you experience adding new features to a large legacy code base. Each student on a team will receive the same score for each team assignment.

Each team will submit its assignments into Canvas, where the rubric for scoring each will be displayed. Late assignments will lose 20 points and an additional 20 points for each 24 hours after the due date.

This is a challenging course that will demand much of your time and effort throughout the semester.