[racket] the definition of 'form'?

From: Norman Ramsey (nr at cs.tufts.edu)
Date: Fri May 23 16:15:54 EDT 2014

 > If you refer to the "Syntax Model" section of the reference 
 > (http://docs.racket-lang.org/reference/syntax-model.html), you'll see 
 > that Racket syntax is defined by two passes, called "read" and "expand".
 > 
 > The grammar you gave in your message is what I would call a 
 > "term"---it's anything that the read pass can turn into a syntax object. 
 > In other words, terms are what syntax objects represent.

Thanks; this helps.

 > The word "form" generally means any of the non-terminals of the Racket
 > language that the macro expander cares about, such as "expression forms"
 > and "definition forms". There are also "module-level forms", which include
 > require and provide. There's a list of these nonterminals in the subsection
 > "Fully Expanded Programs"

OK, great.  So when I think "form" I might want to think "syntactic
category." 

Is the word "form" also used to talk about individual productions,
e.g., "the `cond` form", "the `define` form", and so on?
If not, what is the correct way for me to talk about individual
productions?


(And for Sam and the others who wondered why I'm asking, I'm trying to
write something for students who have learned the BSL and ISL teaching
languages and must now move to a language with a very irregular
syntax.  So I'm trying to find a way to talk to students who are not
steeped in the terminology of context-free grammars.)


Norman


Posted on the users mailing list.