CSE 756: Programming Projects
Project 1: simpleC Scanner
Project 2: simpleC Parser
Project 3: simpleC Pretty Printer with ROSE
- Project description
- See Resources for setup details
- Main: main.cpp. Use this for your project; do not change it, since it will be used for grading.
- Start with pretty.cpp — this code shows examples of a few AST nodes and their traversal. Read the code carefully and run it on a few examples.
- Read the following notes on AST nodes.
- Consult the web documentation
- Test programs: modfft1.c and modfft2.c, same as in Project 2.
- [ Results: median 50, max possible 50, distribution of scores ]
Project 4: Intermediate Code for Expressions
- Project description
- Main: main.cpp from Project 3; do not change it, since it will be used for grading.
- Test program: modfft1.c, same as in Project 2 and Project
3.
- [ Results: median 54, max possible 60, distribution of scores ]
Project 5: Intermediate Code for Statements
- Project description
- Main: main.cpp from Project 4; do not change it, since it will be used for grading.
- Test program: modfft1.c, same as in Projects 2, 3, and 4.
- [ Results: median 46.5, max possible 50, distribution of scores ]
Project 6: Control-Flow Analysis
- Project description submission deadline extended to May 22
- Main: main.cpp from Project 5; do not change it, since it will be used for grading.
- Example of the AST for the sample input program from the project
description: ast.jpg
- [Added 5/20] Test program:
cfg_test.c: five loops, three of them at depth
0, one at depth 1, and one at depth 2
- [Added 5/22] Visualization
of the CFG from above: cfg_test_graph.jpeg, cfg_test_graph.svg. Disclaimers:
(1) This example is courtesy of one of the students of the class; I
cannnot make any correctness guarantees; (2) The nodes and edges for
labels are purely for illustration purposes, and are not part of the
CFG.
- [ Results: median 45, max possible 50, distribution of scores ]
Project 7: Dataflow Analysis
- This is the last project for this class.
- Project description
- Main: main.cpp from Project 5; do not change it, since it will be used for grading.
- Test program: modfft1.c, same as in Projects 2, 3, 4, 5, and 6.
- [ Results: median ?, max possible ?, distribution of scores not ready]
Course Policies
-
There will be several programming projects, which must be submitted
electronically on stdsun by midnight on the due date, using the
submit command.
-
The projects should be done independently from other students in the
class. General discussion of the projects with others in the class is
allowed, but you have to do all the design, programming, and testing
independently. Projects that show excessive similarities will be taken
as evidence of cheating and dealt with accordingly.
-
The projects are due by 11:59 pm on the due day. Absolutely no exceptions will be made to this
deadline: if you submit at 12:00 am, your submission will be
considered to be late. The time stamp on the electronic submission
will be used as the submission time. A reduction of 10% per day will be applied to late
submissions. Submissions more than three days late will not be accepted.