home .. forth .. colorforth mail list archive ..

[colorforth] RFC: Primary ColorForth


Hello all,

I've been thinking about this for a while about the
idea of us writing a colaborative book about getting
started programming in ColorForth.  There's a lot
of info about programming ColorForth, but it's 
spread around.  There's no definitive place I know
of where someone can point a new user to and say
"Here.  Follow these simple examples and you'll 
know how to program in ColorForth in 10 easy steps."
One of the best sources of info is the mailing list
archive, but you have to know what you're looking
for.  Sometimes people "rediscover" what's already
been done.  (Like me recently doing a "Hello world"
that read from a block, only to notice today that
someone had already posted that.  Oops. :) )

Originally I was
thinking about calling it "Starting ColorForth" as
an homage to that the Leo Brodie book by a similair
name and following a similair pattern.  However
I've lately decided that a slightly different path
is better for a few reasons.

1) No copyright issues.
2) A ColorForth book would need to take a different
path.  (More on that later).
3) I think "Primary ColorForth" gives the same idea,
while playing off the words "primary color".

Like I said.  Originally I was thinking of following
a similair path.  An update of Starting Forth is
available on the web here.

http://home.iae.nl/users/mhx/sf.html

Here are the chapters:

===========================================
Starting Forth First Edition, Introductions.
Chapter 1 Fundamental Forth
Chapter 2 How to Get Results
Chapter 3 The Editor (and Staff)
Chapter 4 Decision, Decisions, ...
Chapter 5 The Philosophy of Fixed Point
Chapter 6 Throw it for a Loop
Chapter 7 A Number of Kinds of Numbers
Chapter 8 Variables, Constants, and Arrays
Chapter 9 Under the Hood
Chapter 10 I/O and You
Chapter 11 Extending the Compiler
Chapter 12 Three Examples
===========================================

The problem with following this outline is
that ColorForth works differently from
most other Forths.  For instance in chapter
1 of Starting Forth Brodie introduces the
":" and ";" compiling words.  But in
ColorForth you can't compile from the
command line.  So the editor needs to
be introduced before you do that (or a
whole lot of other stuff). 

So this is a (rough) outline of what I
have in mind.

1) Getting started: 
- A quick overview of the
  various installations available. (Native,
  Windows, Unix-OpenGL, QEMU ect.)
- How to navigate the keyboard
- How to enter numbers and do simply arithmetic
  (+, *, /)

2) The editor
- Getting into the editor.  (e, edit)
- Navigating the editor
- Entering source (Introduce red and green words)
- Loading blocks
- Copying blocks

3) Calculations RP style
- Basic stack words (dup, over, swap, push pop)
- Fixed point math
- Hex versus decimal

4) I/O
- The "show" word
- Display words (emit, h.d, ., cr, at)
- The icon editor
- Graphics words (Colors, box)
- Custom keyboards with "pad"
- Using blocks as data
- Unpack

5) Flow control
- Recursion and tail recursion
- if/then
- Looping words (for, next, i, begin, end)

6) Data structures
- Magenta variables
- Defining constants
- Arrays
- Other?

7) Under the hood
- Memory map
- Mark and empt
- How the dictionary works
- How tokenized source is stored
- Other stuff?

8) Lots and lots of examples.

That's just some ideas off the top of my head.
Feel free to add your own.  Any volunteers?

Regards,

John M. Drake

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
To unsubscribe, e-mail: colorforth-unsubscribe@xxxxxxxxxxxxxxxxxx
For additional commands, e-mail: colorforth-help@xxxxxxxxxxxxxxxxxx
Main web page - http://www.colorforth.com