BYU - Spring 2013 - CS 630 - 5/28 - Discussions

2 views
Skip to first unread message

Yu Huang

unread,
May 29, 2013, 7:33:42 PM5/29/13
to byu-cs-630-...@googlegroups.com
Title:
1, A Few Principles of Macro Design 
2, How to Write Seemingly Unhygienic and Referentially Opaque Macros with Syntax-rules

Summaries: For the first paper, We began with the discussion on how to identify different program in runtime. On way to accomplish it is from the code in Figure 1 that uses macro ident?. Another way is to mark identities with marking. For those hygiene conditions in Section 2, this paper only captures first one where a macro that introduces a binding that can capture references other than those introduced by this macro is not possible. As an example, the code in 2.2 defines a break in macro loop. In the codes shown in Racket, macro "pick" tries to evaluate the rest of the program  if the previous choice fails. Instead of using continuation, another macro "epick" is set as a function. In the discussion of the second paper, we first clarify the definition of alpha-renaming that renaming one variable should also replace all instances. In a short example, we can see that the programs are equivalent if the identifiers are different (x and y respectively).  We then compare the differences between jlet, jletrec and jetwreck. The key point is whether every elements in a list can view each other. 

Things I understand well: I understand well on alpha-equivalence by taking class and looking over Wikipedia after class.

Things I have trouble understanding: I am not clear about the syntax rules of jletwreck in the discussion. 

Reply all
Reply to author
Forward
0 new messages