Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!samsung!spool.mu.edu!uunet!mcsun!hp4nl!tuegate.tue.nl!rc6.urc.tue.nl!rw5.urc.tue.nl From: wsbusup4@rw5.urc.tue.nl (Jan Stout) Newsgroups: comp.lang.forth Subject: Problems not solved by START: Message-ID: <586@rc6.urc.tue.nl> Date: 6 May 91 10:55:22 GMT Sender: news@rc6.urc.tue.nl Organization: Eindhoven University of Technology, The Netherlands Lines: 37 The function of START:, as I do perceive, is to factor the naming process from the definition process, which will allow the creation of nameless definitions. In the rationale that accompanies START:, J Hopkins states: `... expert Forth programmers have exploited intimate knowledge of their systems to generate unnamed code fragments. Now this function has been named and can be used in a portable program' I'm not sure wheter this degree of portability is possible using START: on it's own. In fact, if we take a closer look at the example construct (CMD: ;CMD), supplied by JH, we find: : :CMD ( n -- ) START: ... ; : ;CMD ( -- ) POSTPONE EXIT POSTPONE [ ; IMMEDIATE Written this way, me must infer that the only actions necessary to conclude the START: are an EXIT and a [ (to enter interpretation state). However when we check ;'s definition, we find that besides performing EXIT and entering compilation state ; also ENDS THE CURRENT DEFINITION, which IMHO may be more than a NOOP. A LOCALs mechanism e.g. will require the addition of some extra memory recovering words to the definition of ;. I think the only way to hide this `intimate knowledge' (system dependency) is to add yet another word called ;END (or START; (*)) that will perform ;'s function without the name processing. Jan Stout, wsbusup4@urc.tue.nl (*) I'm not sure about the etymology of START: ; does START: mean we're STARTing a definition with the : as a mere Brodie-like syntax convention, suggesting high level Forth will follow, or should the : (colon) be emphasized, stressing the fact that START: is a part of :? In the first case I'd prefer ;END, whereas in the latter START; seems more appropriate.