Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #31555 > unrolled thread
| Started by | JUERGEN <epldfpga@aol.com> |
|---|---|
| First post | 2014-06-15 07:06 -0700 |
| Last post | 2014-08-12 03:51 -0700 |
| Articles | 20 on this page of 143 — 27 participants |
Back to article view | Back to comp.lang.forth
FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-06-15 07:06 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-06-15 08:48 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2014-06-15 23:43 +0100
Re: FORTH LITE TUTORIAL based on MPE VFX rickman <gnuarm@gmail.com> - 2014-06-15 19:44 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX Bernd Paysan <bernd.paysan@gmx.de> - 2014-06-16 02:21 +0200
Re: FORTH LITE TUTORIAL based on MPE VFX Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2014-06-16 09:26 +0100
Re: FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-06-17 04:06 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX rickman <gnuarm@gmail.com> - 2014-06-15 19:39 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-06-15 23:01 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-17 09:27 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-17 20:12 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-17 21:15 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-17 22:34 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-17 23:11 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-18 16:57 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-06-20 05:03 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-20 14:56 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-20 17:03 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-20 17:53 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX "Elizabeth D. Rather" <erather@forth.com> - 2014-06-21 10:57 -0500
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-21 11:06 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX "Elizabeth D. Rather" <erather@forth.com> - 2014-06-21 13:30 -0500
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-21 11:58 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX "Elizabeth D. Rather" <erather@forth.com> - 2014-06-21 14:22 -0500
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-21 20:13 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-21 21:54 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX bruce.mcfarling@gmail.com - 2014-06-21 22:31 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-06-22 05:31 -0500
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-22 07:04 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX "Elizabeth D. Rather" <erather@forth.com> - 2014-06-22 18:02 -0500
Re: FORTH LITE TUTORIAL based on MPE VFX Bernd Paysan <bernd.paysan@gmx.de> - 2014-06-23 02:53 +0200
Re: FORTH LITE TUTORIAL based on MPE VFX "Elizabeth D. Rather" <erather@forth.com> - 2014-06-22 20:29 -0500
Re: FORTH LITE TUTORIAL based on MPE VFX albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-06-22 13:40 +0000
Re: FORTH LITE TUTORIAL based on MPE VFX "Elizabeth D. Rather" <erather@forth.com> - 2014-06-22 12:08 -0500
Re: FORTH LITE TUTORIAL based on MPE VFX november.nihal@gmail.com - 2014-06-22 16:03 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX "Elizabeth D. Rather" <erather@forth.com> - 2014-06-22 20:30 -0500
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-26 15:17 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-26 15:51 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-26 22:49 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-27 07:32 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-27 23:01 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-28 06:59 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Julian Fondren <julian.fondren@gmail.com> - 2014-06-28 08:07 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-28 08:34 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX "Elizabeth D. Rather" <erather@forth.com> - 2014-06-28 07:23 -1000
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-28 22:46 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-07-27 02:06 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Raimond Dragomir <raimond.dragomir@gmail.com> - 2014-07-28 07:31 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-07-28 11:23 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX "Elizabeth D. Rather" <erather@forth.com> - 2014-07-28 19:21 +0000
Re: FORTH LITE TUTORIAL based on MPE VFX Raimond Dragomir <raimond.dragomir@gmail.com> - 2014-07-28 20:59 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX visualforth@rocketmail.com - 2014-07-29 11:10 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX stephenXXX@mpeforth.com (Stephen Pelc) - 2014-07-29 09:45 +0000
Re: FORTH LITE TUTORIAL based on MPE VFX Raimond Dragomir <raimond.dragomir@gmail.com> - 2014-07-29 07:44 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX stephenXXX@mpeforth.com (Stephen Pelc) - 2014-07-29 17:48 +0000
Re: FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-07-29 11:14 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX mhx@iae.nl - 2014-07-29 12:57 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-07-29 18:36 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Raimond Dragomir <raimond.dragomir@gmail.com> - 2014-07-29 20:38 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-07-29 21:43 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Raimond Dragomir <raimond.dragomir@gmail.com> - 2014-07-29 23:05 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-07-30 22:20 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Raimond Dragomir <raimond.dragomir@gmail.com> - 2014-07-31 00:19 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Mark Wills <markwills1970@gmail.com> - 2014-07-30 01:41 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-07-30 21:42 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Mark Wills <markwills1970@gmail.com> - 2014-07-31 01:08 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-07-31 20:25 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Mark Wills <markwills1970@gmail.com> - 2014-08-01 02:23 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Lars Brinkhoff <lars.spam@nocrew.org> - 2014-08-01 12:54 +0200
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-08-01 19:57 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-08-02 04:18 -0500
Re: FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-07-27 02:14 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX bruce.mcfarling@gmail.com - 2014-06-21 21:59 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-06-21 22:36 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-21 22:44 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Julian Fondren <julian.fondren@gmail.com> - 2014-06-22 02:26 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-22 07:41 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-22 07:43 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-22 19:57 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-24 21:04 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX "Elizabeth D. Rather" <erather@forth.com> - 2014-06-24 15:21 -1000
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-25 18:21 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-06-25 03:16 -0500
Re: FORTH LITE TUTORIAL based on MPE VFX Ron Aaron <rambamist@gmail.com> - 2014-06-25 12:08 +0300
Re: FORTH LITE TUTORIAL based on MPE VFX anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-06-25 14:08 +0000
Re: FORTH LITE TUTORIAL based on MPE VFX Ron Aaron <rambamist@gmail.com> - 2014-06-25 19:13 +0300
Re: FORTH LITE TUTORIAL based on MPE VFX anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-06-25 17:14 +0000
Re: FORTH LITE TUTORIAL based on MPE VFX Ron Aaron <rambamist@gmail.com> - 2014-06-25 21:03 +0300
Re: FORTH LITE TUTORIAL based on MPE VFX albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-06-26 12:13 +0000
Re: FORTH LITE TUTORIAL based on MPE VFX albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-06-25 16:14 +0000
Re: FORTH LITE TUTORIAL based on MPE VFX anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-06-25 17:27 +0000
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-25 18:24 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-06-26 03:27 -0500
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-26 17:50 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-06-27 03:13 -0500
Re: FORTH LITE TUTORIAL based on MPE VFX albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-06-27 12:30 +0000
Re: FORTH LITE TUTORIAL based on MPE VFX Mark Wills <markwills1970@gmail.com> - 2014-06-25 03:46 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-06-25 16:15 +0000
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-25 13:19 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-25 18:52 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX Alexander Skobelev <al.skobelev@gmail.com> - 2014-06-26 10:45 +0400
Re: FORTH LITE TUTORIAL based on MPE VFX Ron Aaron <rambamist@gmail.com> - 2014-06-26 09:56 +0300
Re: FORTH LITE TUTORIAL based on MPE VFX Alexander Skobelev <al.skobelev@gmail.com> - 2014-06-26 11:30 +0400
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-25 18:38 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX "Elizabeth D. Rather" <erather@forth.com> - 2014-06-25 20:49 -1000
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-26 17:54 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX David Thompson <dave.thompson2@verizon.net> - 2014-07-26 21:53 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX Julian Fondren <ayrnieu@gmail.com> - 2014-06-22 22:22 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-23 07:31 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-24 17:05 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-24 20:55 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-24 19:52 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-25 13:09 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX humptydumpty <ouatubi@gmail.com> - 2014-06-23 00:17 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX humptydumpty <ouatubi@gmail.com> - 2014-06-23 00:27 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-23 07:45 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-23 07:54 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX humptydumpty <ouatubi@gmail.com> - 2014-06-24 00:56 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Bernd Paysan <bernd.paysan@gmx.de> - 2014-06-27 03:33 +0200
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-25 18:20 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-25 18:50 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-25 20:00 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-25 23:02 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2014-06-26 10:28 +0100
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-26 07:56 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX "Elizabeth D. Rather" <erather@forth.com> - 2014-06-26 07:59 -1000
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-26 17:33 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-26 17:26 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-26 17:22 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-18 22:07 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX Julian Fondren <julian.fondren@gmail.com> - 2014-06-18 19:28 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX mhx@iae.nl - 2014-06-18 23:09 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX hughaguilar96@yahoo.com - 2014-06-18 20:02 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-19 18:28 -0400
Re: FORTH LITE TUTORIAL based on MPE VFX Julian Fondren <julian.fondren@gmail.com> - 2014-06-17 21:01 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX mhx@iae.nl - 2014-06-17 23:01 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX jyf <jyf1987@gmail.com> - 2014-06-19 22:13 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX Roger Levy <roger.levy@gmail.com> - 2014-06-19 22:34 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX brelliott18@hotmail.com - 2014-08-10 09:15 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-08-11 14:31 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-08-11 23:51 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX brelliott18@hotmail.com - 2014-08-12 03:14 -0700
Re: FORTH LITE TUTORIAL based on MPE VFX JUERGEN <epldfpga@aol.com> - 2014-08-12 03:51 -0700
Page 4 of 8 — ← Prev page 1 2 3 [4] 5 6 7 8 Next page →
| From | Raimond Dragomir <raimond.dragomir@gmail.com> |
|---|---|
| Date | 2014-07-29 23:05 -0700 |
| Message-ID | <c0e5a7ee-d135-4907-987b-589f13a9f8a9@googlegroups.com> |
| In reply to | #32775 |
miercuri, 30 iulie 2014, 07:43:58 UTC+3, hughag...@yahoo.com a scris: > On Tuesday, July 29, 2014 8:38:26 PM UTC-7, Raimond Dragomir wrote: > > > > P.S. Are you translating your posts from a foreign language? > > > > > > Yup, english is a foreign language to me :) > > > > What language, and what country, are you of? > > Romania > > > People, you don't like colors, fine. I like them very much. My minimal "standard" in a forth syntax coloring is this: > > > > > > - new defined words: red (a la Chuck Moore). This requires advanced parsers, but a few editors are able to do it > > > > > > - a few control words that change flow: blue (if, else, begin while etc.). This is simple, just keywords. > > > > > > - comments: green or gray. This is very important to me. I have a lot of comments! > > > > > > - numbers and strings: some other color. The least important. > > > > > > That's it. I'm a visual guy. I want to see my programs in colors! > > > > The only thing in that list that I might attempt is comments. > > > > What if the programmer defines a word 123 --- is that a new word, or a number? All this stuff seems super-complicated to me --- if you can implement it though, then I will put it in my language! :-) Comments are indeed the most important. As for a 123 word, it will be just a number, the editors don't know about this possibility. I think that even for an editor written in forth will be hard. Perhaps only an "integrated" environment like ColorForth will be able to highlight it correctly. A very good editor, for windows, is Programmer's Notepad. The latest version has an integrated forth syntax highlighter. It is able to highlight new words (colon definitions), comments and numbers. If you want, try it with novice.f This file has A LOT of comments. I cannot imagine that I would read (or even write) that kind of source file without an editor with this minimal syntax highlighting. Of course, there are limitations, nobody's perfect. For example your new macro: definitions are not highlighted, because they are not defined by ':'. Also, in some assembler lines, the "add" mnemonic is highlighted as a number :) (that's wrong anyway, because it's not "$add"). Don't waste your time with a screen editor. Do you think you will write a novice package in screens? Don't waste your time in writing any editor at all. A compiler toolset should be command line. That's it. If you have a well behaving command line compiler, it can be integrated be a user like me in any editor he likes. Here is the way I work lately in forth. - Editor: Programmer's notepad. Has forth syntax highlighter. I setup F7 for compiling, F12 for downloading to target. - Compiler: my personal forth crosscompiler, that takes a binary kernel already compiled by other tools (c/asm) and generates another binary, the application. - target: an STM32 cortex-m0 board - flash downloader is CoFlash, because I'm working with a ColinkEx dongle by CoCoox. This works on the SWD interface. - debugging target: a Teraterm session. The target has an uart for that. I spent most of my time in the editor. When I'm ready to test something: F7, compiles instantly. If any error, the error message appears on the output window. Click on the error line, the editor goes to that line in the source file. If ok, F12, download to target. Then, the teraterm window is just like a classical standalone forth (only that my target forth doesn't a the compiler). An improvement to this would be a compiler wich will remain alive after the compilation, and will provide the terminal window (communication to target) itself. This way it is possible to not compile the dictionary headers in the target image, because the host compiler will have them in his memory. This is my next step :) I made some statistics, and my headers take over 30% of the total application binary. I'm not that happy with that.
[toc] | [prev] | [next] | [standalone]
| From | hughaguilar96@yahoo.com |
|---|---|
| Date | 2014-07-30 22:20 -0700 |
| Message-ID | <c3ccb49a-7017-43d8-8f54-51426bfbde4c@googlegroups.com> |
| In reply to | #32776 |
On Tuesday, July 29, 2014 11:05:37 PM UTC-7, Raimond Dragomir wrote: > Romania At one of my past jobs, one of the machinists was from Romania. He escaped from the Communist regime. He had previously worked in a guard tower when in the army, so when he later made his own escape he knew how to do so without getting caught (he also had some night-vision equipment that he had stolen from the army, and that helped). His coyote flaked out however, and him and his buddy ended up getting arrested --- he spent a couple of years in prison, and then was ransomed out by a humanitarian organization. He considered communism to be a purely Jewish institution --- do you agree with that? He didn't like Albanians and considered them to be no better than gypsies --- he supported Serbia in their crackdown on the Albanians --- but Clinton supported the Albanians; he bombed the heck out of Serbia and Slobodan Milosevic was arrested. European politics, especially Balkan, is extremely complicated --- I think that it is a bad idea for Americans to have an opinion on any of that stuff, and especially to get involved. He liked Romanian culture. He said that in Romania everybody makes their own wine. If people come to visit, you serve them your homemade wine, and it is supposed to be something that you are proud of. He totally didn't understand the concept of being a wine enthusiast and buying expensive wine, which is done in America --- how can you be proud of something that you bought, rather than made yourself? > A very good editor, for windows, is Programmer's Notepad. The latest version has an integrated forth syntax highlighter. It is able to highlight new words (colon definitions), comments and numbers. If you want, try it with novice.f This file has A LOT of comments. I cannot imagine that I would read (or even write) that kind of source file without an editor with this minimal syntax highlighting. I commented the heck out of the novice package source-code, because it is for novices to learn. Actually, I comment all of my code pretty heavily, even if nobody but myself will ever look at it. F83 had a separate file for comments. I think that it is a good idea to have comments in a separate file. This way you can have more than one line of comments associated with each line of source-code --- but you don't bulk out your source-code, as the editor can hide the comments if you don't want to look at them and only want to look at the source-code. Have a split screen with the source file on the left and the comment file on the right. When writing your program, you put your comments in a separate file --- this is better than putting them in the source file, and then expecting the editor macros to interpret the source-file and figure out what is a comment and what is not a comment (as I said before, interpreting Forth with some other language is always going to have a lot of problems, even if it is something simple like recognizing comments). > Don't waste your time with a screen editor. Do you think you will write a novice package in screens? Don't waste your time in writing any editor at all. A compiler toolset should be command line. That's it. If you have a well behaving command line compiler, it can be integrated be a user like me in any editor he likes. That is good advice --- I will do as you suggest. :-) > - Compiler: my personal forth crosscompiler, that takes a binary kernel already compiled by other tools (c/asm) and generates another binary, the application. I don't understand what you mean by "cross-compiler" here --- it converts a binary kernel generated by C/asm into another binary file. ??? > An improvement to this would be a compiler wich will remain alive after the compilation, and will provide the terminal window (communication to target) itself. This way it is possible to not compile the dictionary headers in the target image, because the host compiler will have them in his memory. This is my next step :) I made some statistics, and my headers take over 30% of the total application binary. I'm not that happy with that. You are right that the headers should not be on the target, but should be on the host. When the Forth system on the target runs, it should ask for this information from the host (usually over a serial line) and get the data as it is needed, rather than waste its own memory storing all of that data. Some micro-controllers (such as the PIC24) have only 8K or 16K or RAM, so you can't really store extraneous data there. Your thinking in regard to cross-compilation seems to be tangled up. Contact me by private email and I will describe to you how Forth cross-compilation works, or at least how my MFX worked.
[toc] | [prev] | [next] | [standalone]
| From | Raimond Dragomir <raimond.dragomir@gmail.com> |
|---|---|
| Date | 2014-07-31 00:19 -0700 |
| Message-ID | <9340eaed-a771-411e-a3ab-87e1d13b6cbe@googlegroups.com> |
| In reply to | #32785 |
joi, 31 iulie 2014, 08:20:03 UTC+3, hughag...@yahoo.com a scris: > On Tuesday, July 29, 2014 11:05:37 PM UTC-7, Raimond Dragomir wrote: > > > Romania > > > > At one of my past jobs, one of the machinists was from Romania. He escaped from the Communist regime. He had previously worked in a guard tower when in the army, so when he later made his own escape he knew how to do so without getting caught (he also had some night-vision equipment that he had stolen from the army, and that helped). His coyote flaked out however, and him and his buddy ended up getting arrested --- he spent a couple of years in prison, and then was ransomed out by a humanitarian organization. He considered communism to be a purely Jewish institution --- do you agree with that? > > > > He didn't like Albanians and considered them to be no better than gypsies --- he supported Serbia in their crackdown on the Albanians --- but Clinton supported the Albanians; he bombed the heck out of Serbia and Slobodan Milosevic was arrested. European politics, especially Balkan, is extremely complicated --- I think that it is a bad idea for Americans to have an opinion on any of that stuff, and especially to get involved. > > > > He liked Romanian culture. He said that in Romania everybody makes their own wine. If people come to visit, you serve them your homemade wine, and it is supposed to be something that you are proud of. He totally didn't understand the concept of being a wine enthusiast and buying expensive wine, which is done in America --- how can you be proud of something that you bought, rather than made yourself? > > All this is absolutely true. I myself have a vineyard on the back of my house. I make about 150-200 litres of good wine every year :) I'm not sure about the comunism being jewish though, but I don't care. I consider comunism, socialism and all kind of this crap like a big bullshit. > > > A very good editor, for windows, is Programmer's Notepad. The latest version has an integrated forth syntax highlighter. It is able to highlight new words (colon definitions), comments and numbers. If you want, try it with novice.f This file has A LOT of comments. I cannot imagine that I would read (or even write) that kind of source file without an editor with this minimal syntax highlighting. > > > > I commented the heck out of the novice package source-code, because it is for novices to learn. Actually, I comment all of my code pretty heavily, even if nobody but myself will ever look at it. > > > > F83 had a separate file for comments. I think that it is a good idea to have comments in a separate file. This way you can have more than one line of comments associated with each line of source-code --- but you don't bulk out your source-code, as the editor can hide the comments if you don't want to look at them and only want to look at the source-code. Have a split screen with the source file on the left and the comment file on the right. > > > > When writing your program, you put your comments in a separate file --- this is better than putting them in the source file, and then expecting the editor macros to interpret the source-file and figure out what is a comment and what is not a comment (as I said before, interpreting Forth with some other language is always going to have a lot of problems, even if it is something simple like recognizing comments). > > > > > Don't waste your time with a screen editor. Do you think you will write a novice package in screens? Don't waste your time in writing any editor at all. A compiler toolset should be command line. That's it. If you have a well behaving command line compiler, it can be integrated be a user like me in any editor he likes. > > > > That is good advice --- I will do as you suggest. :-) > > > > > - Compiler: my personal forth crosscompiler, that takes a binary kernel already compiled by other tools (c/asm) and generates another binary, the application. > > > > I don't understand what you mean by "cross-compiler" here --- it converts a binary kernel generated by C/asm into another binary file. ??? > > I name cross-compiler any compiler that will run on a host and generates something for a target. As I said, my target forth is not standalone, it doesn't have a compiler. The taeget application is split in two: a kernel, which is like a standalone forth but without the compiling stuff, and will behave like a classical interpreter. The kernel has a "bootloader" feature, being able to accept and burn into the flash the application binary. The application binary is compiled by the host cross-compiler, but based on what is already in the kernel. It's something like the classical forth standalone systems that have the kernel written in assembly, and the compiler extending the kernel. Only that my compiler resides on host. > > > An improvement to this would be a compiler wich will remain alive after the compilation, and will provide the terminal window (communication to target) itself. This way it is possible to not compile the dictionary headers in the target image, because the host compiler will have them in his memory. This is my next step :) I made some statistics, and my headers take over 30% of the total application binary. I'm not that happy with that. > > > > You are right that the headers should not be on the target, but should be on the host. When the Forth system on the target runs, it should ask for this information from the host (usually over a serial line) and get the data as it is needed, rather than waste its own memory storing all of that data. Some micro-controllers (such as the PIC24) have only 8K or 16K or RAM, so you can't really store extraneous data there. > > > > Your thinking in regard to cross-compilation seems to be tangled up. Contact me by private email and I will describe to you how Forth cross-compilation works, or at least how my MFX worked. That's because my cross-compilers are in C. I never developed host applications in forth. My forth programming is only for embedded.
[toc] | [prev] | [next] | [standalone]
| From | Mark Wills <markwills1970@gmail.com> |
|---|---|
| Date | 2014-07-30 01:41 -0700 |
| Message-ID | <328ca225-3a72-47d4-846a-c59bad359740@googlegroups.com> |
| In reply to | #32773 |
On Wednesday, 30 July 2014 02:36:30 UTC+1, hughag...@yahoo.com wrote: > No syntax coloring --- the horror! --- the horror! ;-) I agree. I've experimented with it in Notepad++ but it really doesn't make much sense. Forth has no syntax, so what's the use/value in making certain words light up in pretty colours? The only useful thing that I kept was the ability to fold up colon definitions. That's useful. When you've written your definition and tested it you can fold it up and only the top line (with the stack comment) is seen.
[toc] | [prev] | [next] | [standalone]
| From | hughaguilar96@yahoo.com |
|---|---|
| Date | 2014-07-30 21:42 -0700 |
| Message-ID | <82f4587c-06b1-4329-a33c-bb45da376148@googlegroups.com> |
| In reply to | #32777 |
On Wednesday, July 30, 2014 1:41:02 AM UTC-7, Mark Wills wrote: > On Wednesday, 30 July 2014 02:36:30 UTC+1, hughag...@yahoo.com wrote: > > > No syntax coloring --- the horror! --- the horror! ;-) > > I agree. I've experimented with it in Notepad++ but it really doesn't make much sense. Forth has no syntax, so what's the use/value in making certain words light up in pretty colours? Yes, Forth has no syntax, so any editor that looks for syntax is going to have problems. Anything that looks for syntax has problems. For example, my MACRO: looks for a ; so that it knows when to stop saving lines of source-code --- but it can get messed up if there is a ; in a comment or a literal string, or a word like FOO;BAR being used, etc.. > The only useful thing that I kept was the ability to fold up colon definitions. That's useful. When you've written your definition and tested it you can fold it up and only the top line (with the stack comment) is seen. I'll bet it doesn't work with MACRO: defined words, though. It can be upgraded to do so, however. Forth is a moving target because it is a user-extensible language --- you are always going to have to chase it with your editor macros. An alternate approach is to modify the Forth words to do extra stuff. For example, : and MACRO: can be modified to dump text into a file. This way, when you INCLUDE a source-file, it will create another file that contains all of the first-lines of the : and MACRO: words (what you described). Also, on each line you can have the line-number in the original file where the definition is. This is somewhat like a listing file that assemblers produce. You can browse this file in your editor, and you can have an editor macro that will extract the line-number from the current line in this file, and then switch you over to the original file at that line-number. This alternate approach, I think, is better because you are doing most of the work in Forth rather than in editor-macro language --- your editor macros can be fairly simple. Interpreting Forth with Forth is a lot easier than interpreting Forth with editor-macro language!
[toc] | [prev] | [next] | [standalone]
| From | Mark Wills <markwills1970@gmail.com> |
|---|---|
| Date | 2014-07-31 01:08 -0700 |
| Message-ID | <61362a44-ca68-4043-9c23-891791bdc70c@googlegroups.com> |
| In reply to | #32784 |
On Thursday, 31 July 2014 05:42:34 UTC+1, hughag...@yahoo.com wrote: > I'll bet it doesn't work with MACRO: defined words, though. It can be upgraded to do so, however. Forth is a moving target because it is a user-extensible language --- you are always going to have to chase it with your editor macros. That's easy enough in Notepad++, you just add MACRO: to the list of words in the "opening fold" text box. Notepad++ doesn't parse - it simply looks for words/patterns. The downside is, as you say, if it sees say a semi-colon in a comment it will think it's the end of a definition, and screw up the folding for that word. Meh. It's a free tool and it's not perfect. I've been using it since about 2007 so I'm comfortable with it.
[toc] | [prev] | [next] | [standalone]
| From | hughaguilar96@yahoo.com |
|---|---|
| Date | 2014-07-31 20:25 -0700 |
| Message-ID | <34d669fc-0527-4a88-9f11-dae2c08a5704@googlegroups.com> |
| In reply to | #32789 |
On Thursday, July 31, 2014 1:08:54 AM UTC-7, Mark Wills wrote: > On Thursday, 31 July 2014 05:42:34 UTC+1, hughag...@yahoo.com wrote: > > I'll bet it doesn't work with MACRO: defined words, though. It can be upgraded to do so, however. Forth is a moving target because it is a user-extensible language --- you are always going to have to chase it with your editor macros. > > That's easy enough in Notepad++, you just add MACRO: to the list of words in the "opening fold" text box. Notepad++ doesn't parse - it simply looks for words/patterns. The downside is, as you say, if it sees say a semi-colon in a comment it will think it's the end of a definition, and screw up the folding for that word. Meh. It's a free tool and it's not perfect. I've been using it since about 2007 so I'm comfortable with it. I'll give it a try --- I tend to ignore all of this stuff and continue doing things the same way that I did 20 years ago --- but there is a lot of cool stuff available now that is worth using... BTW: The name MACRO: was chosen with a purpose. Words start out as colon words (so they can be tested interactively), but later get changed to MACRO: words for improved speed. If you can't remember whether a particular word was defined with : or MACRO: you can still find it by searching for ": xxx" with xxx being the word name --- that was the whole point of making it MACRO: rather than just MACRO like most programmers do. :-)
[toc] | [prev] | [next] | [standalone]
| From | Mark Wills <markwills1970@gmail.com> |
|---|---|
| Date | 2014-08-01 02:23 -0700 |
| Message-ID | <af5c321c-e3c4-41df-a336-e8ff922a3846@googlegroups.com> |
| In reply to | #32799 |
On Friday, 1 August 2014 04:25:18 UTC+1, hughag...@yahoo.com wrote: > BTW: The name MACRO: was chosen with a purpose. Words start out as colon words (so they can be tested interactively), but later get changed to MACRO: words for improved speed. If you can't remember whether a particular word was defined with : or MACRO: you can still find it by searching for ": xxx" with xxx being the word name --- that was the whole point of making it MACRO: rather than just MACRO like most programmers do. :-) Actually that's a very cool idea. I'll try to remember that little design rule for my own programs! Thanks :-)
[toc] | [prev] | [next] | [standalone]
| From | Lars Brinkhoff <lars.spam@nocrew.org> |
|---|---|
| Date | 2014-08-01 12:54 +0200 |
| Message-ID | <85egx0fpkc.fsf@junk.nocrew.org> |
| In reply to | #32800 |
Mark Wills wrote: > Hugh Aguilar wrote: >> If you can't remember whether a particular word was defined with : >> or MACRO: you can still find it by searching for ": xxx" with xxx >> being the word name --- that was the whole point of making it >> MACRO: rather than just MACRO like most programmers do. :-) > > Actually that's a very cool idea. I'll try to remember that little > design rule for my own programs! Thanks :-) Leo Brodie recommends these conventions: start of "high level" code name: defining word :name I'm not sure what the difference is? Forth94 has :NONAME, and Forth200x has BUFFER:.
[toc] | [prev] | [next] | [standalone]
| From | "Rod Pemberton" <dont_use_email@xnothavet.cqm> |
|---|---|
| Date | 2014-08-01 19:57 -0400 |
| Message-ID | <op.xjxt5hdd6zenlw@localhost> |
| In reply to | #32784 |
On Thu, 31 Jul 2014 00:42:34 -0400, <hughaguilar96@yahoo.com> wrote:
> Yes, Forth has no syntax, so any editor that looks for syntax is going
> to have problems.
>
> Anything that looks for syntax has problems. For example, my MACRO:
> looks for a ; so that it knows when to stop saving lines of source-code
> --- but it can get messed up if there is a ; in a comment or a literal
> string, or a word like FOO;BAR being used, etc..
>
Officially, Forth has no syntax because it's space delimited.
But, Forth has developed syntax. I've mentioned this before,
to Ms. Rather, I believe. The more Forth is used and the more
standardized it becomes and the more feature rich it becomes,
the more this will occur. It's an inevitability.
Perhaps, you need to actually see it in order to believe it:
FORTH \ for a comment line
C // for a comment line
FORTH ( ) for a comment
C /* */ for a comments
FORTH : ; to indicate a function
C {} to indicate a function or code block
FORTH ( ) for the stack picture
FORTH { } for locals
C () around procedure parameters
FORTH [] around the names of compiler version of words
FORTH () around the names of of low-level words
It's syntax in C, so why isn't it in Forth? Please, don't say
space delimiting is sufficient to make it not so. C can be
coded space delimited too.
The only large syntax difference is that Forth's flow control
words, e.g., IF ELSE THEN BEGIN AGAIN UNTIL DO ?DO LOOP +LOOP
etc, are self-blocking similar to many scripting languages or
block-structured languages, such as COBOL. The other trivial
difference is that Forth sometimes uses symbols for operators,
e.g., @ ! = <= >= <> etc but other times uses text, e.g.,
AND OR XOR. C uses symbols for all operators. C has a much
larger set of operators.
Rod Pemberton
[toc] | [prev] | [next] | [standalone]
| From | Andrew Haley <andrew29@littlepinkcloud.invalid> |
|---|---|
| Date | 2014-08-02 04:18 -0500 |
| Message-ID | <IMSdnfNWLv9lMUHOnZ2dnUVZ8tmdnZ2d@supernews.com> |
| In reply to | #32819 |
Rod Pemberton <dont_use_email@xnothavet.cqm> wrote: > On Thu, 31 Jul 2014 00:42:34 -0400, <hughaguilar96@yahoo.com> wrote: > >> Yes, Forth has no syntax, so any editor that looks for syntax is going >> to have problems. >> >> Anything that looks for syntax has problems. For example, my MACRO: >> looks for a ; so that it knows when to stop saving lines of source-code >> --- but it can get messed up if there is a ; in a comment or a literal >> string, or a word like FOO;BAR being used, etc.. > > Officially, Forth has no syntax because it's space delimited. It depends what you man by "syntax". Forth doesn't have a syntax (in the formal CS sense) because it is impossible to write a program which will scan a Forth program and determine whether it is syntactically correct. (Running the Forth program to find out doesn't help because it might not terminate, might crash, etc.) But it certainly looks like Forth has a syntax: it has nouns and verbs, etc. If it didn't look like a syntax it wouldn't be possible for people to read Forth code. So, if you want to use the word "syntax" in the strict CS sense you get one answer, but if you use "syntax" informally you get another. Which of these answers is true, then? Both. Or neither. Andrew.
[toc] | [prev] | [next] | [standalone]
| From | JUERGEN <epldfpga@aol.com> |
|---|---|
| Date | 2014-07-27 02:14 -0700 |
| Message-ID | <1bc8e6cd-4a88-4c9b-9a57-1ef592b0f193@googlegroups.com> |
| In reply to | #31999 |
On Saturday, June 28, 2014 2:59:49 PM UTC+1, Roger Levy wrote: > > I think that the ANS-Forth committee purposely crippled ANS-Forth to prevent the writing of reusable code, and I think they did this for the purpose of turning Forth into a guild, similar to what existed in the trades of the Middle Ages. This had already been done in COBOL, and Elizabeth Rather came from a COBOL background. She was 43 in 1984, so she was already a FOD at that time (actually, a FOB). > > > > Let's just say the B there stands for Broad... >_> > > > > > I think she plotted to make Forth similar to COBOL in that there would be no libraries of reusable code --- the difference would be that Forth would be for micro-controllers, whereas COBOL was for mainframes --- but there would be no difference in the social organization, which would be straight out of the Middle Ages. > > > > > > How do you know this? What if they just didn't know how to enable that, or never came up to the need for it? What if it wasn't even a conscious thing? > > > > Why don't we just ask them???? > > > > Elizabeth, please comment? If I see a comment like this: I think she plotted to make Forth similar to COBOL in that there would be no libraries of reusable code --- the difference would be that Forth would be for micro-controllers, whereas COBOL was for mainframes --- but there would be no difference in the social organization, which would be straight out of the Middle Ages. It shows democracy at its best: complain, but avoid to invest any time to make it better - what a poor soul
[toc] | [prev] | [next] | [standalone]
| From | bruce.mcfarling@gmail.com |
|---|---|
| Date | 2014-06-21 21:59 -0700 |
| Message-ID | <2cb5ef69-0e06-4a07-8594-5f65b3d2a714@googlegroups.com> |
| In reply to | #31713 |
On Saturday, June 21, 2014 2:06:29 PM UTC-4, Roger Levy wrote: >> What did I say about all-or-nothing things? > Nothing. But it seemed to be implied in your argument that defining a general purpose array is somehow inherently wrong. > Then again, Hugh didn't post what you replied to. This aspect of the discussion on who-said-what is kind of a waste of time. I'm not for or against anyone, and really don't care what side who is on. Remember that Hugh's strategy for putting together a library file for Forth novices is to along the following lines: \ We have 1ARRAY and its ilk \ 1ARRAY takes the number of elements, and the size of each record, as parameters. \ It generates four words; the name prefixed with a ^ returns the base address of the array. \ The name suffixed with -LIM returns the address beyond the array (useful in DO loops). \ The name suffixed with -DIM returns the dimension of the array. \ The name alone takes an index as a parameter and returns the address of that element. \ The BOUNDS-CHECK? value defaults to TRUE. Set this to FALSE with TO for faster performance. \ We also have 2ARRAY, 3ARRAY, 4ARRAY, 5ARRAY and 6ARRAY for higher-dimensioned arrays. ... which might strike some as solving problems in general that many people will never encounter in particular.
[toc] | [prev] | [next] | [standalone]
| From | JUERGEN <epldfpga@aol.com> |
|---|---|
| Date | 2014-06-21 22:36 -0700 |
| Message-ID | <86e531a2-3b2c-41e8-be73-994d8fe0aa0b@googlegroups.com> |
| In reply to | #31730 |
On Sunday, June 22, 2014 5:59:21 AM UTC+1, bruce.m...@gmail.com wrote: > On Saturday, June 21, 2014 2:06:29 PM UTC-4, Roger Levy wrote: > > >> What did I say about all-or-nothing things? > > > > > Nothing. But it seemed to be implied in your argument that defining a general purpose array is somehow inherently wrong. > > > > > Then again, Hugh didn't post what you replied to. This aspect of the discussion on who-said-what is kind of a waste of time. I'm not for or against anyone, and really don't care what side who is on. > > > > Remember that Hugh's strategy for putting together a library file for Forth novices is to along the following lines: > > > > \ We have 1ARRAY and its ilk > > \ 1ARRAY takes the number of elements, and the size of each record, as parameters. > > \ It generates four words; the name prefixed with a ^ returns the base address of the array. > > \ The name suffixed with -LIM returns the address beyond the array (useful in DO loops). > > \ The name suffixed with -DIM returns the dimension of the array. > > \ The name alone takes an index as a parameter and returns the address of that element. > > \ The BOUNDS-CHECK? value defaults to TRUE. Set this to FALSE with TO for faster performance. > > \ We also have 2ARRAY, 3ARRAY, 4ARRAY, 5ARRAY and 6ARRAY for higher-dimensioned arrays. > > > > ... which might strike some as solving problems in general that many people will never encounter in particular. Reading through this thread, I had to go back to the beginning, to confirm it is still the thread I started. UPDATE: I had some very negative feedback, BUT quite a bit of positive as well. As result there is an updated eBook on amazon now, and there will be a next one over the next couple of weeks: There is an issue with doing the cut and paste on MAC which is Kindle related as far a we can see. BUT on the positive side; One of the targets I could not meet, was to have a cut and paste on a tablet as there is no Free MPE VFX version yet as far as I know. SO in Forth many things are possible, and GFORTH seems to do the job and be mostly compatible with my Tutorial eBook. Thanks for the feedback. I just wonder how compatible this Tutorial is with the FORTH INC products. Does anybody have feedback here? And please keep the feedback flowing - I will try to update as I have time.
[toc] | [prev] | [next] | [standalone]
| From | Roger Levy <roger.levy@gmail.com> |
|---|---|
| Date | 2014-06-21 22:44 -0700 |
| Message-ID | <4e5d1063-b6f1-4cd8-ae53-be0435e372ee@googlegroups.com> |
| In reply to | #31730 |
> \ We have 1ARRAY and its ilk > > \ 1ARRAY takes the number of elements, and the size of each record, as parameters. > > \ It generates four words; the name prefixed with a ^ returns the base address of the array. > > \ The name suffixed with -LIM returns the address beyond the array (useful in DO loops). > > \ The name suffixed with -DIM returns the dimension of the array. > > \ The name alone takes an index as a parameter and returns the address of that element. > > \ The BOUNDS-CHECK? value defaults to TRUE. Set this to FALSE with TO for faster performance. > > \ We also have 2ARRAY, 3ARRAY, 4ARRAY, 5ARRAY and 6ARRAY for higher-dimensioned arrays. > > > > ... which might strike some as solving problems in general that many people will never encounter in particular. To me only the 4ARRAY and up are unnecessary, and but they strike me as innocent indulgences. The particular suffixes for getting array length and so on are a bit unfamiliar; -LENGTH, -DIMS, -BODY might have been better. What matters, is actually the implementation. Two things 1) it should be simple, so that a novice can understand how it was built and how they might change it to suit their tastes 2) novices should be encouraged to do that. they should be enabled to do whatever they want with it; delete, modify, enhance, zoom in, enhance. ;) At least it's not intended to be adopted as a standard - I assume. It's called NOVICE.FTH, not FORTH2.0, so... ;) Matters of taste aside the ideas here aren't beyond what I'd say is good for a novice to get started with and maybe even over time learn to craft a better array.
[toc] | [prev] | [next] | [standalone]
| From | Julian Fondren <julian.fondren@gmail.com> |
|---|---|
| Date | 2014-06-22 02:26 -0700 |
| Message-ID | <96e20bcc-9f13-4212-9959-6fa4765b40c1@googlegroups.com> |
| In reply to | #31733 |
On Sunday, June 22, 2014 12:44:09 AM UTC-5, Roger Levy wrote: > What matters, is actually the implementation. Two things 1) it should be simple, so that a novice can understand how it was built and how they might change it to suit their tastes 2) novices should be encouraged to do that. they should be enabled to do whatever they want with it; delete, modify, enhance, zoom in, enhance. ;) > Here it is: https://gist.github.com/demonview/d7f90f60e8f03bc09a40 Which of your standards do you reckon it meets? That's some of the better code of Hugh's novice package, because it actually attempts to meet the stated mission of the package: to provide newbies with data structures, so that they won't burn out on Forth. I'm not sure what kind of mission statement would fit the rest of the code in the novice package. I once went through it, top to bottom, reimplementing it as I went, and mostly I reimplemented it into nothing at all: NOVICE allocate concrete-alloc concrete-allocate <allocation> allocation resize free dealloc realloc NWH <None of the above>. The rationale of these words, apart from someone including them purely to make them more attractive for standardization, is that they allow you to have heterogenous lists (*bleh*, I don't even use those in dynamically typed languages) with varyingly-sized data that you can free without knowing anything about the data. So how else can you manage such lists? How about using objects? NOVICE <open-file> <create-file> <close-file> NWH <None of the above>. These are totally pointless. The mission is to give novices data structures so that they don't get frustrated, not to make them use strange words for file I/O that provide error messages inferior to the system's own messages that you'd get from a normal OPEN-FILE THROW construction. NOVICE bounds try exist? not -rot u>d s>f ++ zallot item dupd non-negative? <= >= u>= 2^ d>= d<= d> 2tuck max-signed min-signed dsqrt nil NWH <None of the above>. NIL , at least not yet. These words aren't all objectionable, but they're more appropriate for something like a toolbelt website. NOVICE <CSTR and friends NWH This is a circular stack of counted strings, intending to solve the problems of string-building, concatenation, etc. But it's limited to 255-length strings. gforth has $TMP ( xt -- c-addr u ) that builds strings using normal output words like TYPE . Instead of having any code to correspond to <CSTR , let's have some documentation. "Want to build a string? Use $TMP" NOVICE leading-blanks -leading NWH <None of the above>. These words operate on counted strings, and produce freshly circularly-allocated counted strings. Is this frustrate-novices-with-pointlessly-limited-strings.fs? And so on. -- Julian
[toc] | [prev] | [next] | [standalone]
| From | Roger Levy <roger.levy@gmail.com> |
|---|---|
| Date | 2014-06-22 07:41 -0700 |
| Message-ID | <243713a6-b8b2-4053-bb59-6249ebf6b7f5@googlegroups.com> |
| In reply to | #31734 |
> > Here it is: https://gist.github.com/demonview/d7f90f60e8f03bc09a40 > Which of your standards do you reckon it meets? I'd say none of them. What's interesting is at the bottom it states it used to be regular Forth code and then it was (probably) complexified to be fast and "reentrant". The reentrant part probably should have been there the whole time, but bogging a novice down with the extra layer of optimization (which is quite heady) seems counterproductive. What this needs is a refining, and a split into two versions, if you're going to have a fast version at all, IMO it's not needed. Let's not create a standard language for novices to get stuck with or think is Forth. > allocate concrete-alloc concrete-allocate <allocation> allocation > resize free dealloc realloc > <None of the above>. The rationale of these words, apart from > someone including them purely to make them more attractive > for standardization, is that they allow you to have > heterogenous lists (*bleh*, I don't even use those in dynamically > typed languages) with varyingly-sized data that you can free > without knowing anything about the data. Peeking at the code ALLOCATION seems to exist solely for distinguishing between dynamic and static objects. > So how else can you manage such lists? Some would say don't. I'd say it depends, we're talking too general. > How about using objects? What about using objects? > <open-file> <create-file> <close-file> > <None of the above>. These are totally pointless. Yes. > bounds try exist? not -rot u>d s>f ++ zallot item dupd > non-negative? <= >= u>= 2^ d>= d<= d> 2tuck max-signed > min-signed dsqrt nil > <None of the above>. NIL , at least not yet. These words > aren't all objectionable, but they're more appropriate for > something like a toolbelt website. Agreed. > <CSTR and friends > gforth has $TMP ( xt -- c-addr u ) that builds strings using > normal output words like TYPE . Instead of having any code > to correspond to <CSTR , let's have some documentation. > "Want to build a string? Use $TMP" Is the xt you pass to $TMP a way for it to control allocation, by executing your string-constructor? That seems awkward, I'd prefer a [STR ... STR] style thing. > <None of the above>. These words operate on counted strings, > and produce freshly circularly-allocated counted strings. Is > this frustrate-novices-with-pointlessly-limited-strings.fs? 255 chars is surprisingly hard to fill up that often. I haven't needed bigger ones, yet. In other languages, say if you have to load and process a file, you have to put it into a string variable to do anything, but in Forth you can pass around an addr and count to deal with long strings, and process bits and pieces using counted ones, if you need to save anything. I think it's a good system.
[toc] | [prev] | [next] | [standalone]
| From | Roger Levy <roger.levy@gmail.com> |
|---|---|
| Date | 2014-06-22 07:43 -0700 |
| Message-ID | <1e031e1f-c042-4c97-8db6-d185b53754fd@googlegroups.com> |
| In reply to | #31744 |
> What this needs is a refining, and a split into two versions, if you're going to have a fast version at all, IMO it's not needed. Let's not create a standard language for novices to get stuck with or think is Forth. To clarify, what I meant was, the fast version is not needed, because a fast version should only be needed if you're going to crystalize something into a standard, which this isn't meant to be, or at least, shouldn't.
[toc] | [prev] | [next] | [standalone]
| From | hughaguilar96@yahoo.com |
|---|---|
| Date | 2014-06-22 19:57 -0700 |
| Message-ID | <e9d7bded-bedb-47c9-b082-e8ade3bfad30@googlegroups.com> |
| In reply to | #31744 |
On Sunday, June 22, 2014 7:41:58 AM UTC-7, Roger Levy wrote: > > Here it is: https://gist.github.com/demonview/d7f90f60e8f03bc09a40 > > Which of your standards do you reckon it meets? > > I'd say none of them. What's interesting is at the bottom it states it used to be regular Forth code and then it was (probably) complexified to be fast and "reentrant". The reentrant part probably should have been there the whole time, but bogging a novice down with the extra layer of optimization (which is quite heady) seems counterproductive. What this needs is a refining, and a split into two versions, if you're going to have a fast version at all, IMO it's not needed. Let's not create a standard language for novices to get stuck with or think is Forth. Who put my code on that "demonview" site? What was the point of doing that??? The code doesn't work when it is extracted from the novice package because it uses a wide variety of words (:NAME LIT, etc.) that are in the novice package. It won't compile --- nobody will have any idea what it does --- it has all the appearance of being non-working pseudo-code. There is no link back to the novice package webpage (http://www.forth.org/novice.html) that people could use to obtain the working version. I see this as being no different from when Albert or Julien posted non-working code snippets on C.L.F. that they claimed were from my novice package, but which they had just made up. Please stop doing things like this --- idiots! > > allocate concrete-alloc concrete-allocate <allocation> allocation > > resize free dealloc realloc > > <None of the above>. The rationale of these words, apart from > > someone including them purely to make them more attractive > > for standardization, is that they allow you to have > > heterogenous lists (*bleh*, I don't even use those in dynamically > > typed languages) with varyingly-sized data that you can free > > without knowing anything about the data. > > Peeking at the code ALLOCATION seems to exist solely for distinguishing between dynamic and static objects. ALLOCATION exists primarily to support CLONE-NODE. When cloning a node in a data-structure, it is necessary to know how big the node is --- the size will vary if the nodes in the data-structure are of various data types (typically all in the same parent-child chain). It also can be used to distinguish between memory blocks in the heap or the dictionary, so that FREE doesn't crash when it is given a memory block in the dictionary. This allows data-structures to be built either in the heap or the dictionary, without having to change all of the code that works with the data-structure. For example, in my slide-rule program I modified it to build some of the more common scales at compile-time rather than run-time and store them in the dictionary as part of the program --- I could make this modification in one place, without having to search through the program and modify it everywhere that it did anything with that scale. > > <CSTR and friends > > gforth has $TMP ( xt -- c-addr u ) that builds strings using > > normal output words like TYPE . Instead of having any code > > to correspond to <CSTR , let's have some documentation. > > "Want to build a string? Use $TMP" > > Is the xt you pass to $TMP a way for it to control allocation, by executing your string-constructor? That seems awkward, I'd prefer a [STR ... STR] style thing. I don't program in Gforth because it is too slow executing. It is also hugely bloated, and I don't really have time to learn all that stuff. So I don't know what $TMP is --- maybe I'll learn about that some other time --- it is not on my list of priorities. I remember when I brought up the issue of general-purpose data-structures on the Forth-200x mailing list. Elizabeth Rather said that Forth-200x had BUFFER: that is a general-purpose array, and that they had already figured everything out, and that I was way behind the curve. So I said something to the effect of: "Well, I'll have to look into that." Then everybody says: "Ha!" They act like I'm totally defeated by having admitted my ignorance of BUFFER:. So I looked it up, and discovered that the Forth-200x committee was totally faking (big surprise there). This is why learning about $TMP is not on my list of priorities. For the most part, I'm not interested in anything that the Forth-200x committee or Gforth developers are doing --- I have never really seen anything of value come from them in the past --- I just write my own stuff. > > <None of the above>. These words operate on counted strings, > > and produce freshly circularly-allocated counted strings. Is > > this frustrate-novices-with-pointlessly-limited-strings.fs? > > 255 chars is surprisingly hard to fill up that often. I haven't needed bigger ones, yet. In other languages, say if you have to load and process a file, you have to put it into a string variable to do anything, but in Forth you can pass around an addr and count to deal with long strings, and process bits and pieces using counted ones, if you need to save anything. I think it's a good system. The limitation of 255 chars in a string does become a problem sometimes. I ran into this problem here: https://groups.google.com/forum/#!searchin/comp.lang.forth/alien$20alphabet/comp.lang.forth/3Y4w_MdYl0k/uQa3GXCZDnIJ I don't think that I'm to blame for this problem. This is just some more 1980's-vintage cruft that ANS-Forth is supporting. Blaming me is actually pretty far-fetched --- Julien acts as if the ANS-Forth committee was going to discard the 255 limitation back in 1994, but then I burst through the door and twisted their arms behind their backs until they agreed to keep the limitation --- actually, if anybody had asked me in 1994, I would have said: "Of course the limitation should be dropped --- we aren't programming the 65c02 anymore --- we can have big strings on our big computers." In my own Forth, I will get rid of this limitation. Also, in my next release of the novice package I will provide new string support stuff. Among other things, the 255 limitation will be removed. That is actually not the worst problem with <CSTR etc. though. What I have right now works reasonably well though --- it does everything that I needed in my own programs. Anyway, Julien is another one on my twit list. I don't think his criticisms are worth responding too --- he took five minutes to skim over the novice package, and he determined that everything in it is useless. He is no different from Passaniti, saying that everything I write is "crap" --- past, present and future. None of these trolls ever write any code of their own.
[toc] | [prev] | [next] | [standalone]
| From | "Rod Pemberton" <dont_use_email@xnothavet.cqm> |
|---|---|
| Date | 2014-06-24 21:04 -0400 |
| Message-ID | <op.xhzjw3w06zenlw@localhost> |
| In reply to | #31758 |
On Sun, 22 Jun 2014 22:57:55 -0400, <hughaguilar96@yahoo.com> wrote:
> On Sunday, June 22, 2014 7:41:58 AM UTC-7, Roger Levy wrote:
>> 255 chars is surprisingly hard to fill up that often. I haven't needed
>> bigger ones, yet. In other languages, say if you have to load and
>> process a file, you have to put it into a string variable to do
>> anything, but in Forth you can pass around an addr and count to deal
>> with long strings, and process bits and pieces using counted ones, if
>> you need to save anything. I think it's a good system.
>
> The limitation of 255 chars in a string does become a problem sometimes.
I've already told you and everyone else here the solution to that numerous
times, but I suspect you're not going to like hearing the answer, again:
NUL-TERMINATED STRINGS
Implment a strlen() function as a primitive, say (STRLEN) . Rewrite your
inner and outer interpreter etc to use nul-terminated strings. Rewrite
COUNT. I didn't go look this up for you, so for some aspects of what
need to be done, you may need to figure it out for yourself, or ask.
Change C@ in COUNT to your (STRLEN) primitive:
: COUNT ( addr -- addr+1 count ) DUP CHAR+ SWAP C@ ; ( ANS core )
: COUNT ( addr -- addr+1 count ) DUP CHAR+ SWAP (STRLEN) ; ( ANS core )
Rod Pemberton
[toc] | [prev] | [next] | [standalone]
Page 4 of 8 — ← Prev page 1 2 3 [4] 5 6 7 8 Next page →
Back to top | Article view | comp.lang.forth
csiph-web