On 3/12/12 1:46 PM, Rod Pemberton wrote:
> "Albert van der Horst"<
alb...@spenarnc.xs4all.nl> wrote in message
> news:m0rr5...@spenarnc.xs4all.nl...
>> [...]
>> Have you even read Starting Forth?
>
> Yeah, I think so. I'm not sure anymore. That would've been about '92, if I
> did ...
>
> I have looked at the online version. Unfortunately, it seems it's been
> updated to modern ANS Forth. So, testing examples from it in a Forth which
> is closer to fig-Forth is not good.
>
>> Have you even read through a glossary and wondered why BL is defined?
>>
>
> 1) So that hardcoded values for characters of a specific character set, say
> ASCII, are not present in the source?
Always good practice to avoid these. But it's easy to get visible
characters using CHAR, [CHAR], or their predecessors, in ways that are
self-documenting. "Invisible" characters are a lot harder.
> 2) Because various bootstrap character constants are required to implement a
> Forth interpreter.
Yeah, BL is one of them, but there are others: most of which are
non-printing characters. Giving them names makes them much easier to
specify. Some systems will treat all "white space" characters as blanks.
> 3) Because 'n' character syntax didn't exist as formal syntax, as Anton
> noted, until 2007 ...
Well, it's been around longer than that. But it's impractical for
non-printing characters.
> 4) Because CHAR and [CHAR] did not exist in a formal Forth specification
> prior to ANS, as I noted. Similar functionality was available in Forth83 as
> ASCII. It seems no equivalent functionality was present for Forth79 or
> fig-Forth.
Well, polyFORTH and its predecessors had ASCII (interpretive) and
[ASCII] as compile-only. And there were other approaches around as well.
> And, lastly, the answer you're wanting:
>
> 5) Because a Forth parser uses a space.
That's really a subset of the answer to #2, IMO.
Cheers,
Elizabeth
> Am I to guess at which answer is the correct one to your question? Never
> hint. People miss hints.
>
>
> Rod Pemberton
>
>