A FORMAL REBOL SPECIFICATION Re:
[1/5] from: bobr:dprc at: 1-Oct-2000 15:39
I would prefer to see a specification of
what is available now and also make sure it clearly
covers what is in /core first.
It is fine if the elements are hyperlinked
(IE the document does not have to be linear - we are after all
citizens of the web ;)
Publishing it to this list is ok
but putting it out as a true website that others can
reference is better.
It is also fine (AFIK) for the document to be in nearly constant flux
and never quite complete. So long as people can use it as a reference
for -WHAT IS-. Lets leave forward looking statements to carl and dan.
where to start?
here is a shopping list, some of it is more
guidelines for what to pick from:
- anything already available via 'help *
is either copyright or a duplication of effort.
- at the end of the formal specification for the language elements
one should be able to write a parser
(resist, if you can, writing it in rebol for as long as you can)
which can at least tell the difference between a
syntactically well formed script and a badly formed one.
This will be based on a set of start-conditions since, with dialecting,
you can define a whole new environment for performing a parse.
- you will eventually [need to] settle on a terminology set to
describe things. Draw from standard sources when you can
(such as RFCs) and as a second use other on-web references.
If you like I will explain why but I bet you can figure it out.
- There will be multiple perspectives and meta perspectives where
terms in one family can be matched up with terms from another.
Things like "structure" and "field" vs "block" and "/word".
In some cases RT will have coined a term that is more precise
but less well known. Decide what your audience will be
and stick with that target. Trying to explain terms using both
families is analogous to translating a Russian dictionary
to French and Japanese in the same document.
It is very distracting to see the juxtaposition
of terms from separate term-families.
Consider that the document instead could have "modes" or "lingua"
which will use terms all from the same family.
Let others who are good at language translation provide the content
for those other modes.
- A formal specification usually starts with a few lowest level or
foundation terms, ones that a parser would be most immediately checking for
... like comments in code vs code in comments.
"not a ; half comment" ; but this is a comment "and this is not unclosed
- You are not out to make another users guide. How to use something
is not a goal of a formal specification.
- After syntax is done, you can go on to semantics or the coupling
and logistics of putting one thing before/after another and what
behavior will be implied by the result. Fair warning: describing all
possible behaviors is a infinite task. The only behaviors that
must be covered are ones which as a result of their execution, modify
future syntax [and semantics].
At 07:24 AM 9/30/00 +1200, [Al--Bri--xtra--co--nz] wrote:
>Mark Dickson wrote:
> > For my own interests I require to write a formal specification for REBOL
<<quoted lines omitted: 7>>
>http://members.xoom.com/AndrewMartin/
>-><-
;# mailto: [bobr--dprc--net]
[2/5] from: al:bri:xtra at: 1-Oct-2000 15:24
Bob R wrote:
> I would prefer to see a specification of what is available now and also
make sure it clearly covers what is in /core first.
It should be possible using Rebol's reflection of words to be able to
automatically scan all of system/words, and write a small HTML page for each
word, that contains basically what 'help and 'source provide. Then, working
from the inputs to each word/function link to a few pages describing each
data-type then back (using reverse links) to other words that work with that
data type. For example:
clear.html - describes the 'clear function
Inside %clear.html would be something like:
USAGE:
CLEAR series
DESCRIPTION:
Removes all values from the current index to the tail. Returns at tail.
CLEAR is an action value.
ARGUMENTS:
series -- (Type: series port)
Source:
clear: native [
{Removes all values from the current index to the tail. Returns at
tail.}
series [series! port!]
]
Clicking on the hyperlink on "series!" takes you to page:
series!.html - which describes what a series is like:
>> help series!
No information on series! (word has no value)
But a bit more informative. There would also be a series of back links
on the _same_ html page that refer to all the words that take a series,
like:
clear
head
tail
Clicking on any of these words takes you to the HTML page for that word.
For example, clicking on "tail" takes you to:
tail.html - which describes what 'tail does:
USAGE:
TAIL series
DESCRIPTION:
Returns the series at the position after the last value.
TAIL is an action value.
ARGUMENTS:
series -- (Type: series port)
Source:
tail: native [
{Returns the series at the position after the last value.}
series [series! port!]
]
This way, a truly informative document of any Rebol version and loaded piece
of rebol script that has words defined in system/words can be documented in
one rebol object/component, fully automatically and including any additions
that have been installed into %user.r. It's also fully updateable at any
time.
Andrew Martin
ICQ: 26227169
http://members.nbci.com/AndrewMartin/
http://members.xoom.com/AndrewMartin/
[3/5] from: news:ted:husted at: 27-Nov-2000 11:49
--=====_9753437746334=_
Content-Type: text/plain; charset="ISO-8859-1"
On 10/1/2000 at 3:24 PM [Al--Bri--xtra--co--nz] wrote:
> It should be possible using Rebol's reflection of words to be able to
automatically scan all of system/words, and write a small HTML page for
each
word, that contains basically what 'help and 'source provide.
Attached is a script Andrew Grossman used to build the Wiki Dictionary
on REBOL.ORG. Like POST.R it seemed to break under later releases.
-Ted.
--=====_9753437746334=_
Content-Type: text/plain; name="qrd-index.r"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="qrd-index.r"
IyEvaG9tZTIvaHVzdGVkL3d3dy9jZ2ktYmluL3JlYm9sIC1jcw0KUkVCT0wg
Ww0KCXRpdGxlOgkiZGljdCBtYW55cGFnZSBnZW5lcmF0b3IiDQoJYXV0aG9y
OgkiQW5kcmV3IEdyb3NzbWFuIg0KCWRhdGU6CTEyLVNlcHQtOTkNCl0NCnJl
czogcmVhZCBodHRwOi8vd3d3LnJlYm9sLmNvbS9kaWN0aW9uYXJ5Lmh0bWwN
CnJlczogZmluZC90YWlsIHJlcyB7PC9DRU5URVI+fQ0KcmVzOiBmaW5kL3Rh
aWwgcmVzIHs8L0NFTlRFUj59DQp3b3JkczogbWFrZSBibG9jayEgW10NCm91
dHB1dDogbWFrZSBzdHJpbmchICIiDQp3aGlsZSBbdHJ1ZV0gWw0KCWVpdGhl
ciBmb3VuZD8gcmVzOiBmaW5kL3RhaWwgcmVzIHs8Q0VOVEVSPn0gWw0KCQlw
YXJzZSByZXMgW2NvcHkgd29yZHRhYmxlIHRvIHs8Q0VOVEVSPn0gc2tpcCB0
byBlbmRdDQoJCXBhcnNlIHdvcmR0YWJsZSBbc2tpcCB0aHJ1IHs8Qj48Rk9O
VCBDT0xPUj0iYmxhY2siPn0gY29weSB3b3JkIHRvIHs8L0ZPTlQ+fSBza2lw
IHRvIGVuZF0NCgkJcGFyc2Ugd29yZCBbCSIqKiIgCSh3b3JkOiBjb3B5ICJz
dGFyc3RhciIpCXwNCgkJCQkJCSIqIiAJKHdvcmQ6IGNvcHkgInN0YXIiKQkJ
fA0KCQkJCQkJIi8iCQkod29yZDogY29weSAic2xhc2giKQl8DQoJCQkJCQki
KyIJCSh3b3JkOiBjb3B5ICJwbHVzIikJCXwNCgkJCQkJCSItIgkJKHdvcmQ6
IGNvcHkgIm1pbnVzIikJfA0KCQkJCQkJIiZsdDs9IiAod29yZDogY29weSAi
bGVzc3RoYW5vcmVxIikgCXwNCgkJCQkJCSImbHQ7IiAJKHdvcmQ6IGNvcHkg
Imxlc3N0aGFuIikJfA0KCQkJCQkJIiZndDs9IiAod29yZDogY29weSAiZ3Jl
YXRlcnRoYW5vcmVxIikJfA0KCQkJCQkJIiZndDsiIAkod29yZDogY29weSAi
Z3JlYXRlcnRoYW4iKQ0KCQkJCQldDQoJCW9wOiBtYWtlIHN0cmluZyEgY29w
eSB3b3JkdGFibGUNCgkJb3AyOiBtYWtlIHN0cmluZyEgIiINCgkJcGFyc2Ug
d29yZHRhYmxlIFtjb3B5IG9wIHRvIHs8UD48ST5SZWxhdGVkfSBza2lwIHRv
IHs8L1REPn0gY29weSBvcDIgdG8gZW5kXQ0KCQl3cml0ZSB0by1maWxlIHdv
cmQgam9pbiB7PENFTlRFUj5eL30gW29wIG9wMl0NCgkJYXBwZW5kIHdvcmRz
IHdvcmQNCjsJCXByaW50IHdvcmQNCgldIFticmVha10NCl0NCmZvcmVhY2gg
d3JkIHdvcmRzIFsNCglhcHBlbmQgb3V0cHV0IHJlam9pbiBbezxhIGhyZWY9
Indpa2ktcXJkLnI/d2lraT19IHdyZCB7Ij59IHdyZCB7PC9hPiA8Yj4tPC9i
PiBeL31dDQpdDQo7Zm9yIG4gMSA3IDEgWw0KOyAgICByZW1vdmUgYXQgb3V0
cHV0IGxlbmd0aD8gb3V0cHV0DQo7XQ0KDQpvdXRwdXQ6IGpvaW4gezxjZW50
ZXI+PGZvbnQgZmFjZT0iQXJpYWwsIEhlbHZldGljYSIgc2l6ZT00PjxiPiBS
RUJPTC5vcmcgV2lraSBhbmQgUXVpY2stUmVmZXJlbmNlIERpY3Rpb25hcnk8
L2I+PC9mb250PjwvY2VudGVyPl4vPGJyPjxicj48Zm9udCBmYWNlPSJBcmlh
bCwgSGVsdmV0aWNhIiBzaXplPTM+fSBbb3V0cHV0IHs8L2ZvbnQ+fV0NCndy
aXRlICVpbmRleCBvdXRwdXQNCg==
--=====_9753437746334=_--
[4/5] from: acme::wco::com at: 21-Feb-2001 18:25
Hi Mark,
Just a newbie here going thru email archives... did you complete this, yet?
If so, is it freely available? (I can't easily find any other references to
it.)
Thanks "in advance"!
--Ken.
At 04:33 PM 9/29/00 +0100, you wrote:
>For my own interests I require to write a formal
>specification for REBOL as a language & technology.
<<quoted lines omitted: 17>>
>Your comments would be appreciated.
>Mark Dickson
___________________________________ ___________________________________
Ah, you hate Microsoft too! So comrade, ven do vee plan to defect?
[5/5] from: robbo1mark:aol at: 22-Feb-2001 3:00
Ken,
no this isn't done yet, or started to be honest.
I do have tons of source material for this though
If you want to help speed this up, there is only finite
time for me to this as well as learn all I can about
REBOL internals and do coding too.
let me know if you want to help.
Mark
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted