Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!samsung!zaphod.mps.ohio-state.edu!ub!uhura.cc.rochester.edu!rochester!pt.cs.cmu.edu!dsl.pitt.edu!pitt!willett!ForthNet From: ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) Newsgroups: comp.lang.forth Subject: Vocabularies Message-ID: <1671.UUL1.3#5129@willett.pgh.pa.us> Date: 3 Sep 90 04:08:44 GMT Organization: String, Scotch tape, and Paperclips. (in Pgh, PA) Lines: 35 Category 18, Topic 92 Message 45 Thu Aug 30, 1990 W.FEDERICI at 21:10 PDT . Consider typing the following two lines into your Forth system: . . create new-word 0 , . : word-maker create 0 , ; . . Since CREATE is a prefix operator, we can clearly see that, in the . first line, the parameter of create is "new-word", and in the . second line the parameter is " 0" -- right? . Now, I know we can construct long explanations why CREATE . "behaves differently" in these two cases, but I think . shorter explanations result if we keep in mind that CREATE . actually reads the input stream. Operators in conventional . languages don't do this -- the compiler does it for them, which . is why we can write things in 'C' like . int /* strangely placed comment */ myint . yet we don't expect Forth to accept . create ( 'nother comment ) my-word . . ( I'm beginning to regret my offhand comment that started this, . because I have ended up making lengthy commentary on something . that seems to me almost trivial -- that Forth just isn't a . conventional language and that discussing it in conventional . terms can mislead. Forth's "distributed compiler", for lack of . a better term, is rather an oddity amongst languages, and it . determines several of the strengths and weaknesses of the . Forth approach. ) . . - Wilson ----- This message came from GEnie via willett through a semi-automated process. Report problems to: uunet!willett!dwp or dwp@willett.pgh.pa.us