[REBOL] Re: [subject: first-class language]
From: gerardcote:sympatico:ca at: 11-Mar-2002 21:26
Hello Patrick,
Like you I was asking for the true meaning of "First-Class Anything", the
Anything being one from the many offered choices :
Datatype, Function, Object, Class, Language, etc...
After some search on the Net for each one of these combinations, I found
some satisfactory answers covering them all.
Here is the summary and follows the List of articles Where I found some
useful information : First, the term "First-Class" includes two related but
different concepts, as far as I understood the enclosed reference material.
The first one relates to the design and the implementation phase of a
particular programming language to define how it can be used to describe
itself using its own constructs to do so. So in this case the authors speak
of reflexivity, meta-language and first-class environment. I don't know if
these terms are completely equivalent however but they seem to be related in
some way.
The second view relates to the way a programmer can use any object and/or
function that are enclosed in a particular programming language as if it was
a native datatype. Authorized to do so with some programming languages, a
programmer can then use, for example, a function in some way that other
languages can't even accept, like assign as a value to a newly defined
variable a newly defined function, or pass a function as a parameter to
another one.
This is what I understood and it is sufficiently clear to me without boring
with the details for the moment. If someone else want to clarify or correct
any misunderstood or badly presented conncept, please do so. I will benefit
from this too. I just hope NOT being to far from the truth...
Here are some of the few consulted references :
1. http://lists.w3.org/Archives/Public/www-rdf-logic/2000Oct/0072.html
2.
ttp://www.cc.gatech.edu/computing/classes/cs2360/fall95/handouts/lab3.html
(Look under the First-Class functions paragraph)
3. http://compilers.iecc.com/comparch/article/92-02-092
P.S. Sorry for the length of my explanations and/or the poor quality of my
written English. I'm a French native speaker from Canada.