Syntax for Definition and Use Sites
Currently, we have the following syntax:
Foo(x, y, z): defines NS1 x refers to NS2 y (otherwise refers to NS2 y) refers to NS3 z
While one can argue that the whole term
Foo(x, y, z)
really definesx
, it does not refer toy
andz
. Actually,y
andz
themselves are the references.Thus, would be the following syntax more precise?
Submitted by Guido Wachsmuth on 8 March 2013 at 16:14Foo(x, y, z): x defines NS1 y refers to NS2 (otherwise to NS3) z refers to NS3
Issue Log
That would indeed be more precise. Some students during the CC lab were confused by the refers to thing.
Just a bunch of examples
Class(name, super, body) :
defines Class name
imports Field from Class superClass(name, super, body) :
defines Class name
refers to Class superType(x):
refers to Class xVarDef(x, t, e):
defines Variable x of type t in subsequent scopeVar(x):
refers to Variable xLet(bindings, e) :
imports Variable from bindings into eLetBind(x, e) :
defines Variable x in subsequent scopeLetRec(bindings, e) :
imports Variable from bindings into eLetRecBind(x, e) :
defines Variable x in current scopeConclusion: we stick with the SLE 2012 syntax.
Log in to post comments