Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #14427

objects (was: RfD: Make ENVIRONMENT? obsolescent)

From anton@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups comp.lang.forth
Subject objects (was: RfD: Make ENVIRONMENT? obsolescent)
Date 2012-07-26 14:49 +0000
Organization Institut fuer Computersprachen, Technische Universitaet Wien
Message-ID <2012Jul26.164916@mips.complang.tuwien.ac.at> (permalink)
References (10 earlier) <juclkn$lr$1@online.de> <500df612$0$286$14726298@news.sunsite.dk> <jum1g8$6gg$1@online.de> <2012Jul25.155815@mips.complang.tuwien.ac.at> <jupo2b$ll7$2@online.de>

Show all headers | View raw


Bernd Paysan <bernd.paysan@gmx.de> writes:
>Anton Ertl wrote:
>> I don't know what you are writing about here.
>> 
>> The way that selectors are called in objects.fs is exactly like any
>> other Forth word.
>
>The way you define selectors is deliberately different.  And you argued 
>that this is necessary, because you don't want to overload :.

Ok, so it's about defining selectors and methods, not about calling them.

That certainly looks different, because something different from a
colon definition is happening.

In the original objects.fs the preferred way to do it is to define a
selector in the ancestor class of all classes using this selector.

<parent> class
  selector foo

  m: ... ;m overrides foo
end-class bar

bar class
  m: ... ;m overrides foo
end-class child-of-bar

One defining word: SELECTOR.  It defines one Forth word.  Very Forthy.

Objects2.fs deviates from this Forthy approach.  There you can write

<parent> class
  :: foo ... ;;
end-class flip

<parent> class
  :: foo ... ;;
end-class flop

Here the first :: will define a selector and bind the method to it,
whereas the second :: will notice that the selector already exists and
will bind its method to it, too.  Somewhat unforthy, but it allows
defining the classes somewhat independently (common stack effects for
the methods are still a good idea), and loading them in any order, as
one would expect from a duck typing system.

The defining word is still not :, because 

1) : does something completely different.

2) I want to be able to define ordinary colon definitions inside a
class definition.

- anton
-- 
M. Anton Ertl  http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
     New standard: http://www.forth200x.org/forth200x.html
   EuroForth 2012: http://www.euroforth.org/ef12/

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: RfD: Make ENVIRONMENT? obsolescent stephenXXX@mpeforth.com (Stephen Pelc) - 2012-07-13 08:16 +0000
  Re: RfD: Make ENVIRONMENT? obsolescent Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-07-13 05:38 -0500
    Re: RfD: Make ENVIRONMENT? obsolescent stephenXXX@mpeforth.com (Stephen Pelc) - 2012-07-13 11:36 +0000
      Re: RfD: Make ENVIRONMENT? obsolescent Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-07-13 09:37 -0500
      partitioning words (was: RfD: Make ENVIRONMENT? obsolescent) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-13 16:41 +0000
        Re: partitioning words (was: RfD: Make ENVIRONMENT? obsolescent) Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-13 22:31 +0200
  Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-13 22:03 +0200
    C interface (was: RfD: Make ENVIRONMENT? obsolescent) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-14 12:55 +0000
      Re: C interface (was: RfD: Make ENVIRONMENT? obsolescent) Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-14 20:45 +0200
        Re: C interface (was: RfD: Make ENVIRONMENT? obsolescent) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-16 14:34 +0000
          Re: C interface (was: RfD: Make ENVIRONMENT? obsolescent) stephenXXX@mpeforth.com (Stephen Pelc) - 2012-07-16 15:24 +0000
            Re: C interface (was: RfD: Make ENVIRONMENT? obsolescent) Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-16 23:18 +0200
              Re: C interface (was: RfD: Make ENVIRONMENT? obsolescent) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-17 11:33 +0000
                Re: C interface (was: RfD: Make ENVIRONMENT? obsolescent) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-17 12:05 +0000
                Re: C interface (was: RfD: Make ENVIRONMENT? obsolescent) Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-17 19:08 +0200
                Re: C interface (was: RfD: Make ENVIRONMENT? obsolescent) Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-17 19:14 +0200
                time_t Re: C interface Aleksej Saushev <asau@inbox.ru> - 2012-07-20 01:15 +0400
                Re: time_t Re: C interface anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-20 15:12 +0000
                Re: time_t Re: C interface stephenXXX@mpeforth.com (Stephen Pelc) - 2012-07-20 16:04 +0000
                Re: time_t Re: C interface Spam@ControlQ.com - 2012-07-20 12:20 -0400
                Re: time_t Re: C interface "Elizabeth D. Rather" <erather@forth.com> - 2012-07-20 08:12 -1000
                Re: time_t Re: C interface anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-23 15:32 +0000
                Re: time_t Re: C interface Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-20 20:22 +0200
                Re: time_t Re: C interface Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-20 20:21 +0200
                Re: time_t Re: C interface stephenXXX@mpeforth.com (Stephen Pelc) - 2012-07-20 19:00 +0000
                Re: time_t Re: C interface Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-21 00:21 +0200
                Re: time_t Re: C interface Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-07-21 10:37 +0000
                Re: time_t Re: C interface BruceMcF <agila61@netscape.net> - 2012-07-21 15:22 -0700
                Re: time_t Re: C interface anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-23 16:23 +0000
                Re: time_t Re: C interface BruceMcF <agila61@netscape.net> - 2012-07-20 14:35 -0700
                Re: time_t Re: C interface anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-23 15:24 +0000
                Re: time_t Re: C interface Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-07-23 11:03 -0500
                Re: time_t Re: C interface Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-07-23 11:17 -0500
                Re: time_t Re: C interface anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-23 17:12 +0000
                Re: C interface (was: RfD: Make ENVIRONMENT? obsolescent) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-19 17:10 +0000
    Re: RfD: Make ENVIRONMENT? obsolescent Doug Hoffman <glidedog@gmail.com> - 2012-07-20 11:15 -0400
      Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-20 20:18 +0200
        Re: RfD: Make ENVIRONMENT? obsolescent Doug Hoffman <glidedog@gmail.com> - 2012-07-20 16:27 -0400
          Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-21 00:21 +0200
            Re: RfD: Make ENVIRONMENT? obsolescent Doug Hoffman <glidedog@gmail.com> - 2012-07-20 19:49 -0400
              Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-21 15:42 +0200
                Re: RfD: Make ENVIRONMENT? obsolescent Doug Hoffman <glidedog@gmail.com> - 2012-07-23 21:02 -0400
                Re: RfD: Make ENVIRONMENT? obsolescent Doug Hoffman <glidedog@gmail.com> - 2012-07-23 21:31 -0400
            Re: RfD: Make ENVIRONMENT? obsolescent mhx@iae.nl - 2012-07-21 01:18 -0700
              Re: RfD: Make ENVIRONMENT? obsolescent Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-07-21 11:59 +0000
              Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-21 14:43 +0200
                Re: RfD: Make ENVIRONMENT? obsolescent Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-07-21 19:36 +0000
                Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-21 21:41 +0200
                Re: RfD: Make ENVIRONMENT? obsolescent Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-07-22 14:13 +0000
                Re: RfD: Make ENVIRONMENT? obsolescent mhx@iae.nl (Marcel Hendrix) - 2012-07-22 09:11 +0200
            Re: RfD: Make ENVIRONMENT? obsolescent anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-23 15:34 +0000
              Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-23 20:05 +0200
                Re: RfD: Make ENVIRONMENT? obsolescent anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-25 12:52 +0000
                Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-25 23:21 +0200
                Re: RfD: Make ENVIRONMENT? obsolescent anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-26 14:16 +0000
                Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-27 23:18 +0200
                Re: RfD: Make ENVIRONMENT? obsolescent Paul Rubin <no.email@nospam.invalid> - 2012-07-27 16:13 -0700
                Re: RfD: Make ENVIRONMENT? obsolescent Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-07-28 08:21 -0500
                Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-29 01:07 +0200
                Re: RfD: Make ENVIRONMENT? obsolescent Doug Hoffman <glidedog@gmail.com> - 2012-07-29 07:47 -0400
                Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-30 00:50 +0200
            Re: RfD: Make ENVIRONMENT? obsolescent Doug Hoffman <glidedog@gmail.com> - 2012-07-23 21:10 -0400
              Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-24 13:38 +0200
                Re: RfD: Make ENVIRONMENT? obsolescent anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-25 13:58 +0000
                Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-25 23:22 +0200
                objects (was: RfD: Make ENVIRONMENT? obsolescent) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-07-26 14:49 +0000
                Re: RfD: Make ENVIRONMENT? obsolescent Doug Hoffman <glidedog@gmail.com> - 2012-07-26 04:30 -0400
                Re: RfD: Make ENVIRONMENT? obsolescent Doug Hoffman <glidedog@gmail.com> - 2012-07-26 04:48 -0400
                Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-27 23:31 +0200
                Re: RfD: Make ENVIRONMENT? obsolescent Doug Hoffman <glidedog@gmail.com> - 2012-07-30 04:40 -0400
        Re: RfD: Make ENVIRONMENT? obsolescent Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-07-21 10:57 +0000
          Re: RfD: Make ENVIRONMENT? obsolescent Doug Hoffman <glidedog@gmail.com> - 2012-07-23 21:20 -0400
    Re: RfD: Make ENVIRONMENT? obsolescent Doug Hoffman <glidedog@gmail.com> - 2012-07-20 11:21 -0400
      Re: RfD: Make ENVIRONMENT? obsolescent Bernd Paysan <bernd.paysan@gmx.de> - 2012-07-20 19:48 +0200

csiph-web