Final Exam Session
The End of the Compiler Story

Opening Exercise: Debriefing the Project

Most semesters, we open the final exam session by debriefing the project. With five teams this semester and each having a lot to say, we skipped the debriefing. Feel free to read these notes from the last time we taught the course. You can also jump past it to the rest of the session.

wisdom from MonkeyUser: the difference between compile- and run-time errors

First, I'd like each person to debrief the compiler project, answering the following questions:

Your answers can refer to programming practices, languages, tools, project management, teamwork, course content, ....

Be as specific as possible. I'd like to use your answers to improve the course next time around.

... discuss...

A couple of ideas from our class discussion:

Some of my ideas:

A couple of valuable suggestions from previous class discussions:

After working on a big project for the first time, or a big project in a new domain for the first time, we often realize how much we have to learn and figure out more about what to learn. Your feedback here is useful to me, but also to you.

Compiler Presentations

Each team presents its project and demos its compiler.

While watching the other team's presentations, please evaluate:

Overall, do you think that this presentation gave as favorable an impression of the project as possible, given the state of the compiler being presented? Why or why not? (Defend your answer!)

Follow-up after the final presentation: [ Well done. Your presentations improved nicely on those from recent semesters. ]

A Comparison of the Compilers

... in slides.

We looked at your compilers in terms of size, speed, and execution of some standards. I also include a couple of excellent compilers from past semesters, for context.

Three programs I like to use to demo the compilers every offering:

Do you remember short-circuit-evaluation?

or and and short-circuit evaluation when possible.

So:

Two programs I like to use to benchmark recursive functions:

A new program!

My Project Story

A phone call, April of my junior year. A team comes together.

Crunch time. A team falls down.

There are many ways for even a well-planned project to go wrong. Enjoy the moments when things go right. Life goes on either way.

Closing Exercise: Evaluating Your Team

I would like each person to comment on the contribution made by the members of his or her team:

Your answers can refer to contributions learning Klein and TM, designing the compiler, writing the compiler, writing test programs, documentation teamwork, ....

Be as specific as possible. I will use your answers as a part of my evaluation of the project and my assignment of grades. Your answers will be anonymous, so you needn't refrain from speaking openly.

A Few Compiler Moments to Close

You may want to create your own language.     How I Came to Write D

You may want to extend your language.            Adding a New Statement to Python

You may want to do something all your own.    Alda: A Music Programming Language for Musicians

You may want to help program the future.         Programming the Quantum Future

And now you can. I really enjoyed working with you this semester. You can be proud of the software you created and of how you created it. Go forth and use your powers for good.