Advanced Programming Languages (Spring 2013)
This class is taught by Jay McCarthy.
We meet in 134 TMCB at TR 08:00-10:45.
Jay McCarthy’s office hours are 6am to 11am M-F in 3328 TMCB.
1 Introduction
This course covers advanced programming language topics.
This year’s theme is macro systems.
This course will be structured as follows: each day we’ll hear presentations on a paper from a student; before the meeting every student will turn in a review of the paper; after the meeting every student will turn in a summary of the discussion. If a paper is particularly confusing, I’ll take the time to go over some of the necessary theory. The presenter should consult with me to design their presentations.
2 Meetings
  | Date  | 
  | Paper  | 
  | Presenter  | 
  | 04/30  | 
  | Macro System Introduction & Tutorial  | 
  | Neil & Blake  | 
  | 05/02  | 
  | Hygienic Macro Expansion (1986), Syntactic Extensions in the Programming Language Lisp (1986) and Macro-by-example: Deriving syntactic transformations from their specifications (1987)  | 
  | Blake  | 
  | 05/07  | 
  | Expansion-Passing Style: A General Macro Mechanism (1988) and Syntactic Closures (1988)  | 
  | Andrew  | 
  | 05/09  | 
  | Macros that work (1991) and Writing Hygenic Macros in Scheme with Syntax-Case (1992)  | 
  | Matthew  | 
  | 05/14  | 
  | Attend TFP 2013  | 
  | |
  | 05/16  | 
  | Attend TFP 2013  | 
  | |
  | 05/21  | 
  | 
  | Jay  | |
  | 05/23  | 
  | 
  | Blake  | |
  | 05/28  | 
  | How to Write Seemingly Unhygienic and Referentially Opaque Macros with Syntax-rules (2002) and A Few Principles of Macro Design (2008)  | 
  | Jay  | 
  | 05/30  | 
  | 
  | Andrew  | |
  | 06/04  | 
  | Debugging Hygienic Macros (2009) and Fortifying Macros (2010)  | 
  | Matthew  | 
  | 06/06  | 
  | 
  | Andrew  | |
  | 06/11  | 
  | Macros that Work Together: Compile-Time Bindings, Partial Expansion, and Definition Contexts (2012)  | 
  | Kimball  | 
  | 06/13  | 
  | Honu: Syntactic Extension for Algebraic Notation through Enforestation (2012)  | 
  | Matthew  | 
This schedule may change.
3 Turn In Policy
Reviews are to be emailed to byu-cs-630-spring-2013@googlegroups.com. You must also subscribe to this mailing list by going to http://groups.google.com/group/byu-cs-630-spring-2013.
Paper reviews are due by 5pm the day before the meeting. Discussion reviews are due by 5pm the day after the meeting.
The subject line must be: "BYU - Spring 2013 - CS 630 - date - kind", where date is the date of the meeting and kind is either Paper or Discussion.
Only one email should be sent. If more than one is sent, I will grade the oldest one.
The only file formats that will be accepted are inline text.
Reviews that do not have the correct format will receive no credit.
4 Paper Review Format
Your review should summarize the paper, identify its primary contributions, describe something you understood well, and describe something you had a hard time understanding. You should plan on writing approximately a page and a half of prose.
5 Discussion Review Format
Your review should summarize the discussion, identify the main things you learned from it and/or thought deeply about, and describe what lingering questions (if any) you still have about the material. You should plan on writing approximately a page and a half of prose.
6 Exams
There are no exams in this course.
7 Grading
Each review is graded with a number between 0 and 1.
8 Your Final Grade
Your final numeric grade is the average of the reviews due.
I will then run the following function to convert it to a letter:
> (define (convert-to-letter ng) (cond [(> ng 0.93) "A"] [(> ng 0.9) "A-"] [(> ng 0.86) "B+"] [(> ng 0.83) "B"] [(> ng 0.8) "B-"] [(> ng 0.76) "C+"] [(> ng 0.73) "C"] [(> ng 0.7) "C-"] [(> ng 0.66) "D+"] [(> ng 0.63) "D"] [(> ng 0.6) "D-"] [else "F"])) 
Examples:  | ||||||||||||||||
  |