Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #15595
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: Forth as a polarising language |
| Date | 2012-09-11 01:07 +0200 |
| Organization | 1&1 Internet AG |
| Message-ID | <1651452.CLfWVFRu8b@sunwukong.fritz.box> (permalink) |
| References | (16 earlier) <7xehmax2rm.fsf@ruckus.brouhaha.com> <2370419.WlZCQYq3kg@sunwukong.fritz.box> <7xzk4y8vuu.fsf@ruckus.brouhaha.com> <44911562.uCePkysVEk@sunwukong.fritz.box> <7xa9wy6kqv.fsf@ruckus.brouhaha.com> |
Paul Rubin wrote: > Bernd Paysan <bernd.paysan@gmx.de> writes: >>> Yeah, logging helps, and the restart mechanism may be able to >>> inspect the carcass of the crashed program before restarting.... >> I can see that this sort of thinking makes sense in other languages, >> where inspecting the program is difficult, but in Forth, no. > > What do you mean about inspecting the program being easier in Forth > than other languages? You have an interactive shell. You have self-inspecting capability like SEE. There are other languages like Lisp with similar self-inspecting capabilities, and those tend to not quit on errors, too. Guile launches a debug shell, which is pretty cool, because you are still in the context of the program right where it "crashed". However, in most Algol-like languages, you have nothing, and therefore, you can only print a backtrace and quit. > Right, something like /MOD NIP which is a purely integer operation. > There's no attempt by Forth to automatically choose between / and > (e.g.) S>F F/ and it doesn't seem Forth-like to do so. No, you exactly specify what you want. There might be some problems with / being either floored or symmetric in different implementations... >>> in Forth I think I'd be happier getting an error message and >>> backtrace in the event of a mismatch. >> Yes, you usually do get that. > > I don't remember the backtraces being terribly useful, and often they > didn't happen at the actual point of the error. What happens with the > backtrace when there's user data on the return stack? The backtrace guesses what is user data, and prints that. : test 1 >r 2 >r 3 >r 0 @ ; ok test :2: Invalid memory address >>>test<<< Backtrace: $7FA9FFBBF720 @ $3 $2 $1 I find this quite useful. It tells me that @ failed with an invalid memory address, and that there are 3, 2, and 1 pushed on the return stack. I often run my programs with gforth-fast, which doesn't have a precise recording of where the crash happend, and then curse me, because there, the backtrace is not meaningful - which means I have to rerun with the debugging engine, and hope that the same error condition arises. >>> You often have to refactor large chunks of code to get data from one >>> place to another where there was no path before. >> A result from the "bury your tool" mentality in other languages. > > I don't understand this. You're saying it doesn't happen in Forth? People still can make mistakes in Forth, but our mentality is not to bury tools, and therefore, this sort of refactoring isn't necessary that often. Writing a Forth program is about finding good factors. I think I know what thing you mean, I've found something in that direction in Android. I'm using native activity for Gforth (as Gforth isn't implemented in Java, it is an obvious choice). However, native activities don't get reasonable non-ASCII key events. Why? Because some jerk at Google didn't convert the string that is part of the KeyEvent Java object into a C string. The string is only used for non- ASCII things. The whole data starts in a Java object, gets converted to a C++ object, and then is accessed by C functions, which presume this C++ object is a struct. Nobody sane would do it that way in Forth, especially not with this middle layer in between, which is of no real use. We hate writing "onion code", where you have layers and layers on top of each others, and the smell alone makes you cry. >> Simulation passes can take quite a while, VHDL is not a fast language >> (slow compiles, slow runs). > > Hmm, ok. I wonder why compiles intended to run a simulator are slow: > are they slower than, say, C++ compilations for the same amount of > source text? ( Joke: http://xkcd.com/303/ ) I don't have current figures at hand. The last time I touched VHDL was more than 10 years ago. Verilog was considerably faster. > Slow simulations I can understand, but that argues for more error > checks at compile time. No, this is that fallacy. The error checks at compile time don't find the logical errors you make, and especially with a proper set of types in your HDL, you aren't prone to type errors. After all, the only thing you can do in real hardware are bits and vectors of bits, which are treated as variable sized integers (two's complement). Verilog checks if you make size mismatches, that's all. And that's also sufficient. You don't have any complicated types in an HDL. >> Some people back then had statistics that Verilog was about 3 times >> as productive than VHDL. > > Wow, that's interesting, I had thought they were pretty comparable, > with mostly stylistic differences. I introduced Verilog to my coworkers shortly after I started at Mikron, now 14 years ago. We had a legacy project running, and once we finished that, they all switched over to Verilog, and were quite happy. From a 10000ft point of view, they seem to be pretty similar. But you don't programm hardware at 10000ft height. You program it lying flat on the floor. >> With my FGPA stuff, I often end up doing as much as possible in Forth >> on the b16 instead of writing new HDL code, > > This makes sense, and probably saves hardware a lot of the time, if > the b16 code is in a RAM block re-using the b16 logic, instead of > using up CLB's. Indeed. IMHO the most valuabe layer of abstraction when programming hardware is the instruction pattern. Implement the different operations you want to do as instructions, and then write the program using these instructions. A lot of hardware developer have no software background, and use the state machine abstraction instead. It is a guarantee for horribly long code, many, many gates, and awful bugs (the typical bug of a state machine is the "stuck" bug: it enters a state, but the exit event never happens). -- Bernd Paysan "If you want it done right, you have to do it yourself" http://bernd-paysan.de/
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-08-29 23:00 -0700
Re: Article Mark Wills <markrobertwills@yahoo.co.uk> - 2012-08-30 01:47 -0700
Re: Article anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-08-30 12:13 +0000
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-08-30 11:31 -0400
Missing from USENET - was [Re: Article] Richard Owlett <rowlett@pcnetinc.com> - 2012-08-30 10:37 -0500
Missing from USENET - was [Re: Article] Mark Wills <markrobertwills@yahoo.co.uk> - 2012-08-30 10:30 -0700
Re: Article hughaguilar96@yahoo.com - 2012-08-30 19:56 -0700
Re: Article awegel@arcor.de (Alex Wegel) - 2012-08-31 12:35 +0200
Re: Article "Greg Bailey" <greg@greenarraychips.com> - 2012-08-31 17:51 -0700
Re: Article Whammo <sidciavic@gmail.com> - 2012-08-31 18:22 -0700
Re: Article Mark Wills <forthfreak@gmail.com> - 2012-09-01 01:04 -0700
Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-02 16:18 -0700
Re: Article Alex McDonald <blog@rivadpm.com> - 2012-09-01 01:48 -0700
Re: Article rickman <gnuarm@gmail.com> - 2012-09-02 18:38 -0400
Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-02 16:59 -0700
Re: Article Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-09-03 13:07 -0500
Re: Article Alex McDonald <blog@rivadpm.com> - 2012-09-03 14:25 -0700
Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-04 17:04 -0700
Re: Article Ron Aaron <rambamist@gmail.com> - 2012-09-05 06:23 +0300
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-03 18:17 -0400
Re: Article "Elizabeth D. Rather" <erather@forth.com> - 2012-09-03 12:37 -1000
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-04 04:48 -0400
Re: Article Alex McDonald <blog@rivadpm.com> - 2012-09-04 03:39 -0700
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 02:48 -0400
Re: Article awegel@arcor.de (Alex Wegel) - 2012-09-04 13:18 +0200
Re: Article Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-04 16:03 +0200
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 03:29 -0400
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 03:24 -0400
Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-04 08:12 -0700
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 16:06 -0400
Re: Article Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-09-04 11:35 -0500
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 02:40 -0400
Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-05 13:28 -0700
Re: Article "Elizabeth D. Rather" <erather@forth.com> - 2012-09-04 08:32 -1000
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 02:22 -0400
Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-05 10:08 -0700
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 16:07 -0400
Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-05 13:39 -0700
Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-05 13:35 -0700
Re: Article "Ed" <invalid@nospam.com> - 2012-09-07 17:24 +1000
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-07 05:28 -0400
Re: Article Mark Wills <markrobertwills@yahoo.co.uk> - 2012-09-07 03:28 -0700
Re: Article Ron Aaron <rambamist@gmail.com> - 2012-09-07 13:31 +0300
Re: Article jacko <jackokring@gmail.com> - 2012-09-07 06:33 -0700
Re: Article Howerd <howerdo@yahoo.co.uk> - 2012-09-07 09:06 -0700
Re: Article Howerd <howerdo@yahoo.co.uk> - 2012-09-07 09:03 -0700
Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-04 16:45 -0700
Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-03 21:38 -0700
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 02:51 -0400
Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-05 10:49 -0700
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 16:20 -0400
Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 16:06 -0400
Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-05 13:32 -0700
Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-05 13:50 -0700
Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-05 22:34 -0700
Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-07 14:05 -0700
Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-08 01:53 +0200
Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-07 18:22 -0700
Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-09 00:08 +0200
Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-08 17:34 -0700
Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-09 15:57 +0200
Re: Forth as a polarising language Mark Wills <markrobertwills@yahoo.co.uk> - 2012-09-09 08:12 -0700
Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-09 22:07 +0200
Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-09 15:14 -0700
Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-10 01:52 +0200
Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-09 19:17 -0700
Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-10 15:01 +0200
Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-10 07:00 -0700
Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-11 01:07 +0200
Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-10 18:47 -0700
Re: Forth as a polarising language Elizabeth D Rather <erather@forth.com> - 2012-09-10 16:08 -1000
Re: Forth as a polarising language anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-09-11 07:51 +0000
Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-11 19:24 +0200
Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-11 21:40 +0200
Re: Forth as a polarising language "Elizabeth D. Rather" <erather@forth.com> - 2012-09-09 14:58 -1000
Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-09 18:24 -0700
Re: Forth as a polarising language Anonymous <nobody@remailer.paranoici.org> - 2012-09-09 13:42 +0000
Re: Forth as a polarising language mhx@iae.nl (Marcel Hendrix) - 2012-09-08 10:34 +0200
Re: Forth as a polarising language Doug Hoffman <glidedog@gmail.com> - 2012-09-08 07:06 -0400
Re: Forth as a polarising language mhx@iae.nl (Marcel Hendrix) - 2012-09-08 16:14 +0200
DEFER (was: Forth as a polarising language) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-09-08 16:47 +0000
Re: Forth as a polarising language Doug Hoffman <glidedog@gmail.com> - 2012-09-09 04:22 -0400
OOP (was: Forth as a polarising language) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-09-08 11:38 +0000
Re: OOP Doug Hoffman <glidedog@gmail.com> - 2012-09-08 08:19 -0400
Re: OOP mhx@iae.nl (Marcel Hendrix) - 2012-09-08 16:41 +0200
Re: OOP Doug Hoffman <glidedog@gmail.com> - 2012-09-09 04:24 -0400
Re: Forth as a polarising language mhx@iae.nl (Marcel Hendrix) - 2012-09-09 12:03 +0200
Re: Forth as a polarising language "A. K." <akk@nospam.org> - 2012-09-09 13:20 +0200
Re: Forth as a polarising language Doug Hoffman <glidedog@gmail.com> - 2012-09-10 08:33 -0400
Re: OOP mhx@iae.nl (Marcel Hendrix) - 2012-09-08 16:54 +0200
Re: OOP Doug Hoffman <glidedog@gmail.com> - 2012-09-09 04:12 -0400
OOP (was: Forth as a polarising language) mhx@iae.nl (Marcel Hendrix) - 2012-09-08 16:28 +0200
Re: OOP (was: Forth as a polarising language) mhx@iae.nl (Marcel Hendrix) - 2012-09-08 16:56 +0200
Re: OOP (was: Forth as a polarising language) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-09-08 15:00 +0000
Re: OOP (was: Forth as a polarising language) Roger Ivie <rivie@ridgenet.net> - 2012-09-08 11:56 -0500
Re: OOP Doug Hoffman <glidedog@gmail.com> - 2012-09-09 04:20 -0400
Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-09 00:15 +0200
Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-09 00:50 +0200
Re: Forth as a polarising language mhx@iae.nl (Marcel Hendrix) - 2012-09-09 03:12 +0200
Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-09 16:01 +0200
Re: Forth as a polarising language "Elizabeth D. Rather" <erather@forth.com> - 2012-09-09 14:54 -1000
[OT] Newsreader problem - was [Re: Forth as a polarising language] Richard Owlett <rowlett@pcnetinc.com> - 2012-09-10 06:33 -0500
Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] Doug Hoffman <glidedog@gmail.com> - 2012-09-10 08:16 -0400
Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] Doug Hoffman <glidedog@gmail.com> - 2012-09-10 08:28 -0400
Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-09-10 12:43 +0000
Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] Doug Hoffman <glidedog@gmail.com> - 2012-09-10 09:24 -0400
Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] Richard Owlett <rowlett@pcnetinc.com> - 2012-09-10 08:12 -0500
Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] Doug Hoffman <glidedog@gmail.com> - 2012-09-10 09:32 -0400
Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] "Elizabeth D. Rather" <erather@forth.com> - 2012-09-10 07:40 -1000
Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] Richard Owlett <rowlett@pcnetinc.com> - 2012-09-10 14:42 -0500
Re: Forth as a polarising language Doug Hoffman <glidedog@gmail.com> - 2012-09-10 07:59 -0400
Re: Forth as a polarising language rickman <gnuarm@gmail.com> - 2012-09-10 12:27 -0400
Re: Forth as a polarising language "Elizabeth D. Rather" <erather@forth.com> - 2012-09-10 07:44 -1000
Re: Forth as a polarising language rickman <gnuarm@gmail.com> - 2012-09-10 12:30 -0400
Re: Article "Ed" <invalid@nospam.com> - 2012-09-09 14:13 +1000
Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-11 11:26 -0700
Re: Article "Paul E. Bennett" <Paul_E.Bennett@topmail.co.uk> - 2012-09-11 21:02 +0100
Re: Article vandys@vsta.org - 2012-09-11 20:37 +0000
Re: Article "Ed" <invalid@nospam.com> - 2012-09-12 20:01 +1000
Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-11 16:50 -0700
Re: Article Mark Wills <forthfreak@gmail.com> - 2012-09-12 00:45 -0700
Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-12 18:44 -0700
Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-12 20:26 -0700
Re: Article "Ed" <invalid@nospam.com> - 2012-09-12 20:47 +1000
Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-06 19:28 -0700
Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-07 09:57 -0700
csiph-web