Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Forth > Re: Elegant cod...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 33 of 58 Topic 4000 of 4160
Post > Topic >>

Re: Elegant code Was: Re: what kind of non microconroller app are

by "David N. Williams" <williams@[EMAIL PROTECTED] > Apr 21, 2008 at 12:12 PM

Jonah Thomas wrote:
 > [...]
 > I want to ask anyone who's interested about a programming puzzle I ran
 > into when I tried something similar.
 >
 > The idea is to have a routine GOOD-STRING that accepts a string ( ca
len
 > ) and an execution token that acts on the string and checks the first
 > part of the string for some condition. Like, it couild test whether a
 > character is an uppercase letter, or whether it's a digit, or
 > alphanumeric, or whether two characters are ":=" or whatever. The
 > execution token should accept an address in the string, and it returns
a
 > flag.
 >
 > XT ( ca -- flag )
 >
 > The routine does ( ca len xt -- ca len' ) . It returns as much of the
 > string as meets the condition the execution token tests for.
 >
 > So I'd wind up with:
 >
 > : STRING-CHECKER ( S: xt "name" -- )
 > ( child: ca len -- ca len' )
 >    CREATE ,
 >    DOES> @[EMAIL PROTECTED]
 GOOD-STRING ;
 >
 > to make a collection of named routines to check strings in various
ways.
 >
 > My first attempt at GOOD-STRING was like this:
 >
 > : GOOD-STRING1 ( S: ca len xt -- ca len' )
 >    >R
 >    2DUP BEGIN
 >      DUP 0 > WHILE
 >        OVER R@[EMAIL PROTECTED]
 EXECUTE WHILE
 >          1 /STRING
 >      REPEAT
 >    THEN
 >    NIP - RDROP ;

 > [improvement iterations]

Like Gerry, I think this first attempt looks fine.

Here's a similar approach, from a translator I've stopped
working on for the time being.

: make-recog  ( "name" xt -- )
   ---
     Define a word that executes the "is" string test procedure
     xt, leaving true if so, else false and the string.  The
     stack pattern for the procedure is

       ( s -- after.s is.s true | s false )

     where is.s is the part of the input string up to the
     character where it fails to "be-a", and after.s is the rest
     of the string, including that character.  In the true case,
     it is assumed that is.s cannot be empty.
   ---
   create ,
DOES>  ( s -- after.s true | s false )
   @[EMAIL PROTECTED]
 ( after.s is.s true | s false)
   IF   ( is.s) sdrop ( after.s) true
   ELSE ( s) false THEN ;

The "is" recognition procedures are coded as C primitives, in a
pfe loadable module.  SDROP is an alias for 2drop, "s" and "x.s"
stand for ANS Forth strings, and --- is a multiline comment
word.

-- David
 




 58 Posts in Topic:
what kind of non microconroller app are done in forth?
gavino <gavcomedy@[EMA  2008-04-16 15:31:12 
Re: what kind of non microconroller app are done in forth?
pablo reda <pabloreda@  2008-04-16 15:57:50 
Re: what kind of non microconroller app are done in forth?
gavino <gavcomedy@[EMA  2008-04-16 16:13:28 
Re: what kind of non microconroller app are done in forth?
stephenXXX@[EMAIL PROTECT  2008-04-17 09:26:43 
Re: what kind of non microconroller app are done in forth?
pablo reda <pabloreda@  2008-04-17 06:28:26 
Re: what kind of non microconroller app are done in forth?
gavino <gavcomedy@[EMA  2008-04-18 10:11:10 
Re: what kind of non microconroller app are done in forth?
gavino <gavcomedy@[EMA  2008-04-18 10:12:04 
Re: what kind of non microconroller app are done in forth?
Elizabeth D Rather <er  2008-04-18 08:49:22 
Re: what kind of non microconroller app are done in forth?
Helmar <helmwo@[EMAIL   2008-04-18 11:10:45 
Re: what kind of non microconroller app are done in forth?
pablo reda <pabloreda@  2008-04-18 12:04:14 
Re: what kind of non microconroller app are done in forth?
gavino <gavcomedy@[EMA  2008-04-18 16:22:53 
Re: what kind of non microconroller app are done in forth?
gavino <gavcomedy@[EMA  2008-04-18 16:24:09 
Re: what kind of non microconroller app are done in forth?
Elizabeth D Rather <er  2008-04-18 20:47:50 
Re: what kind of non microconroller app are done in forth?
jennifer.spykerman@[EMAIL  2008-04-19 04:15:42 
Re: what kind of non microconroller app are done in forth?
Duke Normandin <dukeof  2008-04-19 14:20:53 
Re: what kind of non microconroller app are done in forth?
Robert Spykerman <robe  2008-04-19 17:07:15 
Re: what kind of non microconroller app are done in forth?
Duke Normandin <dukeof  2008-04-20 02:50:54 
Re: what kind of non microconroller app are done in forth?
Elizabeth D Rather <er  2008-04-19 21:48:07 
Re: what kind of non microconroller app are done in forth?
Jonah Thomas <jethomas  2008-04-19 10:40:11 
Re: what kind of non microconroller app are done in forth?
Thomas Pornin <pornin@  2008-04-20 07:11:54 
Re: what kind of non microconroller app are done in forth?
Bruce McFarling <agila  2008-04-19 09:33:55 
Re: what kind of non microconroller app are done in forth?
Bruce McFarling <agila  2008-04-19 09:37:25 
Re: what kind of non microconroller app are done in forth?
Guy Macon <http://www.  2008-04-19 17:47:45 
Re: what kind of non microconroller app are done in forth?
Jonah Thomas <jethomas  2008-04-19 14:31:39 
Re: what kind of non microconroller app are done in forth?
Bruce McFarling <agila  2008-04-19 15:04:48 
Re: what kind of non microconroller app are done in forth?
Albert van der Horst <  2008-04-20 13:43:04 
Re: what kind of non microconroller app are done in forth?
Bruce McFarling <agila  2008-04-19 15:21:12 
Re: what kind of non microconroller app are done in forth?
Gerry <gerry@[EMAIL PR  2008-04-20 01:50:08 
Re: what kind of non microconroller app are done in forth?
Jonah Thomas <jethomas  2008-04-20 08:23:50 
Re: what kind of non microconroller app are done in forth?
Gerry <gerry@[EMAIL PR  2008-04-20 08:12:11 
Elegant code Was: Re: what kind of non microconroller app are d
Jonah Thomas <jethomas  2008-04-21 01:58:43 
Re: Elegant code
Josh Grams <josh@[EMAI  2008-04-21 11:56:34 
Re: Elegant code Was: Re: what kind of non microconroller app a
"David N. Williams&q  2008-04-21 12:12:22 
Re: Elegant code Was: Re: what kind of non microconroller app a
mhx@[EMAIL PROTECTED] (M  2008-04-21 19:57:21 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Gerry <gerry@[EMAIL PR  2008-04-21 02:15:31 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Gerry <gerry@[EMAIL PR  2008-04-21 03:53:49 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Jonah Thomas <jethomas  2008-04-21 09:04:09 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Elizabeth D Rather <er  2008-04-21 07:42:01 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Jonah Thomas <jethomas  2008-04-21 10:33:13 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Bruce McFarling <agila  2008-04-21 08:22:03 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Gerry <gerry@[EMAIL PR  2008-04-21 09:45:27 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Gerry <gerry@[EMAIL PR  2008-04-22 02:20:59 
Re: Elegant code Was: Re: what kind of non microconroller app ar
John Passaniti <nntp@[  2008-04-22 17:22:35 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Elizabeth D Rather <er  2008-04-22 14:16:18 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Ian Osgood <iano@[EMAI  2008-04-22 10:00:09 
Re: Elegant code Was: Re: what kind of non microconroller app ar
John Passaniti <nntp@[  2008-04-22 17:36:41 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Gerry <gerry@[EMAIL PR  2008-04-22 22:59:42 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Alex McDonald <blog@[E  2008-04-23 01:00:52 
Re: Elegant code Was: Re: what kind of non microconroller app ar
stephenXXX@[EMAIL PROTECT  2008-04-23 10:07:15 
C interface (was: Elegant code)
anton@[EMAIL PROTECTED]   2008-04-23 20:04:07 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Gerry <gerry@[EMAIL PR  2008-04-23 03:20:05 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Alex McDonald <blog@[E  2008-04-23 04:09:54 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Alex McDonald <blog@[E  2008-04-23 04:14:57 
Re: Elegant code Was: Re: what kind of non microconroller app ar
Jonah Thomas <jethomas  2008-04-23 10:11:34 
Re: Elegant code Was: Re: what kind of non microconroller app ar
John Passaniti <nntp@[  2008-04-23 20:56:59 
Re: what kind of non microconroller app are done in forth?
gavino <gavcomedy@[EMA  2008-04-29 00:16:19 
Re: what kind of non microconroller app are done in forth?
Elizabeth D Rather <er  2008-04-28 21:47:07 
Re: what kind of non microconroller app are done in forth?
Robert Spykerman <robe  2008-04-29 04:32:49 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Jul 18 20:43:44 CDT 2008.