Posted 28 Sep 2003 at 19:10 UTC by badvogato Share This

  • Chuck Moore advances Forth to colorforth, inadverdently furthered discrimiation against colorblinds from other common disabilities among all abled career professionals...
  • Donald Knuth is chanting MMIX, with a social security number inflated to Arabic number from Roman notation as:
     (CrayI+IBM 801+RISC II+ClipperC300+AMD29K+Motorola88K+IBM601+Inteli960
    +Alpha21164+Power2+MIPS R4000+HitachiSuperH4+StrongARM110
    +Sparc64)/14 = 2009 
  • I am the chief of my tribe. Our understanding towards Universe has the simplest expression:"a day a go/weiqi/baduk game, keep doctors at bay"
  • Modern Chieftain no longer can afford to stand on its own. The goodness is defined and measured by serf and servitude. The greatness is in defiance of the goodness. The future is forever a pendulum struggling for a balance among the good and the great. What's your take on the goodness and greatness in the design of languages and machines; the good and bad perceptions of needing to devise them for whom and for what?

    Fine Virtual Displays for MMIXStation, posted 29 Sep 2003 at 14:19 UTC by sye » (Journeyer)

    True color display for MMIX works on X11 with Linux and Solaris. My speculation is that treating the new 64bit conceptual design as 8bitx8bit array and design the whole system from Knuth's 256 assembly MMIX ops to colorforth, that'll take MyZeurus to the next dimension.

    For audio amplifer, what is the significance about this DPPTM (digital power processing)?

    ColorForth, posted 30 Sep 2003 at 18:10 UTC by dalke » (Journeyer)

    Did you not read Moore's response to the question that his language discriminates against colorblind programmers? He said:

    My goal is to develop tools that augment my abilities. If others can use them, fine. It would be foolish to lose an opportunity to explore or excel just to conform to some equalitarian philosophy. Too often our culture seeks the lowest common denominator.

    color perception and preparsed source, posted 30 Sep 2003 at 19:06 UTC by mslicker » (Journeyer)

    An additional quote from Chuck Moore's response:

    But in fact, color is merely a property of words that helps to distinguish them. As is intensity, size, font, volume and tone. I'm sure colorForth will be translated into these other representations. I, myself, will be exploring spoken colorForth. (As soon as I can decipher PC sound cards.)
    colorForth source is preparsed. It stores words and their meaning. The meaning can be indicated on a display as any of properties Chuck Moore lists or even (to take a step backwards) as syntax.

    The same idea could apply to a language like Lisp. Internally you may have programs respresented lists. To display source code, you could use the traditional parentheses to indicate nesting, or may use indentation, color, or some other property.

    The idea with preparsed source in colorForth is to simplify compilation. Words are stored as 32-bit integers, 4-bits of which indicate the meaning of the word. Source is interpreted in a linear fashion simply by using the 4-bit meaning as index into a function table of word meanings. The function table can in fact be changed, and this is a simple method of extending the compiler.

    There are other benefits to the preparsed source of colorForth. First is, that is imposible to create a malformed program. There are no syntax errors in colorForth. The only error the compiler can report is an undefined word. Also the preparsed source allows the construction of a simple language aware editor. A nice feature of the colorForth editor is that when you delete words they are put on stack and can taken back off the stack an put into source. This forms a simple and effective cut and paste mechanism in the editor.

    What's your take on the goodness and greatness in the design of languages and machines...?, posted 1 Oct 2003 at 04:46 UTC by tk » (Observer)

    badvogato: My take? Simple: I'm the best, and I'm the greatest! Bah! If you disagree, you're a sucky authoritarian who hates individualism, get lost!

    dalke: it's foolish to conform to some egalitarian philosophy, except when the philosophy's being sold by Forth zealots.

    mslicker: "(As soon as I can decipher PC sound cards.)" Last year I already discovered a method for playing 16-bit .wavs on the good old PC speaker. I say "discovered" rather than "developed", because the method's so silly that I'd be surprised if no one'd seen it before. Anyway, it was written in x86 assembly, so I re-implemented it in colorForth and sent the code to Moore... and he didn't reply.

    Re: strange remarks, posted 1 Oct 2003 at 16:17 UTC by mslicker » (Journeyer)

    Egalitarian and equalitarian are not the same. Egalitarian philosophy is perhaps best epitomized by Marx: "From each according to his ability, to each according to his needs!''. What Chuck Moore is refering to is the way American society often apeals to the lowest common denominator. Besides this I don't know what tk's statement is in reference to.

    PC sound cards, posted 1 Oct 2003 at 16:28 UTC by mslicker » (Journeyer)

    Chuck Moore has managed to decipher PC sound cards. I have image of his which uses the AC97 functionality of his sound card. I think it is available on web, but if not I can send it to anyone interested. The image includes UDP/IP/Ethernet, X18 cross compiler and some other interesting bits of code.

    the center and the edge, posted 1 Oct 2003 at 20:37 UTC by badvogato » (Master)

    tk, what you are saying is that before we design a system to increase the efficiency for common living, from what authority, do we always inherit the right to overwrite the inefficient part? Is the edge better off, over the long run, not to bent towards a free will to beome the center of all efficiency? Once in the center, one can no longer afford a free movement without dragging in or casting away edges. But why anybody need to establish a will of worthy proof as long as his own game of life continues with his own clear conscience and an affordable efficiency for himself alone?

    Centre, edge, d = 2r, posted 2 Oct 2003 at 04:20 UTC by tk » (Observer)

    badvogato: What, you still don't get it? I am the centre, and I am the edge! To realize this supreme truth, you need a paradigm shift away from the empiricist mindset which bogus "authorities" like scientists, archaeologists, and mathematicians have indoctrinated you with.

    mslicker: E*alitarianism: How different are the two really? You really don't see a contradiction between "to each according to his need" and ignoring colour-blind people? Oh, of course, "each" doesn't include colour-blinds at all! It's no surprise, since "each" also excludes capitalists, religious people, and people who don't shout slogans... And since when did "no syntax errors" become a feature? What's the use of having no syntax errors, if a program isn't semantically correct? But let me see the new colorForth image (I know it won't run properly on my PC, but anyway).

    Moore's Equalitarian Philosophy, posted 2 Oct 2003 at 07:54 UTC by tk » (Observer)

    "What's wrong with C programs? [...] It's never clear how efficiently source will be translated into machine language."

    Yes, comrades, it's a grievous sin for a compiler to perform an optimization, even if it knows that the optimization is possible, and that it can do only good.

    Moore said, "it's foolish to lose an opportunity to explore or excel". But this sort of excellence, the excellence of the optimizing compiler... it's wrong! It's just wrong!

    By the way, how large is the PC sound card code? 1 block?

    response, posted 2 Oct 2003 at 15:54 UTC by mslicker » (Journeyer)

    Egalitarian Philosophy

    What Marx is recognizing is that people are not equal, people have different abilities, people have different needs. Needs of course refer to human needs, not the needs of person a to maintain a certain status or class within a society. Whether or not you are capitalist, you still need food, clothing, shelter, ect..

    People who can perceive color vs. those who are color-blind vs. those who can't see at all clearly have different abilities. If you want "from each according to his ability" it is not unreasonable to have tools which augment a persons abilities.

    No Syntax Errors

    "no syntax errors" is certainly a feature. It shortens the development cycle, as does the instant compile times that come from prepared source and the simple compiler structure. Someone who works with a C environment like gcc and editor like emacs will notice a stark difference in the development cycle of colorForth.

    By semantically correct, I assume you mean the program has the intended meaning, not whether the program is meaningful or not. Every colorForth program that is compiled has a meaning whether or not it is the meaning that the programming intended. For whether or not the program has the intended meaning, there is really not much colorForth can do for the programmer. It can at least be said that the syntax is simple an therefore you can't make certain types of errors, like misunderstanding operator precedence. To ensure a semantically correct program, you would need a specification language, and a either proof generator or proof checker with proofs of each specification. Here you still have the possibility of errors in your specification. Accepting a type system with a managed store, you may be able gain certain properties which can be known at compile time. The lack of a type system in colorForth is certainly a point of debate.


    If you knew colorForth better, you would know Chuck Moore does optimizations. Things like "drop ?dup" are nops and can be eliminated, literals followed by operations such as "3 +" are inlined. For you to strawman Chuck's argument to the entirely different argument of "optimizations are evil" is entirely expected given your history here. The full quote is:

    It's never clear how efficiently source will be translated into machine language. Constructs are often chosen because the programmer knows they're efficient. Subroutine calls are expensive.
    There is a paradox in programming in C between thinking about performance and internal structure, which C tends to encourage, and, due to standards and complex compilers, not truly knowing the performance and internal structure.

    I think the optimizations in colorForth are limited because first, it takes a lot of effort to write a competitive optimizing compiler. If read comp.lang.forth you'll see the people who write optimizing compilers spend most their time talking about optimization and benchmarks. Optimization can become an obsession onto itself till it serves no useful end. People talk about eliminating sequences like "swap swap dup drop", yet no self respecting Forth programmer would produce such code. Secondly, optimizations can be complex and can obscure the operation of the compiler. In Forth the compiler is meant to be understood and even extended, so complex optimizations are limited to the minimum. Thirdly, optimizations can slow the compile process. If colorForth had do every optimization as gcc the instant compile and fast development cycle would be gone. Fourthly, the ideal kind of code for Forth (highly factored sequences) does not optimize well short of expensive and complex global optimization.

    ether-ip-udp image

    Go Go Go!, posted 3 Oct 2003 at 07:12 UTC by tk » (Observer)

    badvogato: by the way, why do you say "go/weiqi/baduk", not just "go"? Is it another of those political correctness things, like the "Linux" vs. "GNU/Linux" hoo-ha? And I'm curious, are people boycotting because it's not called</a>?


    So if I get you right, "from each according to his ability" means, one should be allowed to augment his own abilities without contributing to society; "to each according to his need" means, it's only right that a colour-blind person has to work harder, to get the things he's entitled to in the first place. What, strawman again? You said "invention [of viewpoints] is inevitable" didn't you... you need to make yourself clearer about the entitlements of colour-blinds.

    Care to explain, how exactly does having no syntax errors speed up development? Or is this just another maxim perpetrated by Moore that colorForth zealots keep chanting again and again?

    I know colorForth has optimizations. This just means Moore doesn't follow his own principles. Or, maybe the principles he lays down are only for others to follow. Take the boot image you posted. For each definition, can you quickly and accurately tell how many x86 instructions it comes out to?

    The performance of C programs may not be specified in C89, but market forces will ensure that "int x = 1;" takes constant time in the worst case. If it takes less time (i.e. 0), cool. Most of the time, coders only need to know how long a program will take at most, asymptotically -- and C supports that. Only control freaks and fundamentalists want to know precisely how many nanoseconds a program'll run.

    I agree, a reasonable Forth (or C) system benchmark should be based on real end-user applications, not contrived code sequences. (Sounds like another religious sect, the Forth optimization zealots...) But has it occurred to you that a sequence like "swap swap dup drop" may arise due to macro expansion?

    tk's equalitarian philosophy, posted 4 Oct 2003 at 01:53 UTC by mslicker » (Journeyer)

    tk, It is not suprising Chuck Moore doesn't answer your emails. I question the value of responding to your inane and deceitful commentary.

    Two programs can have the same asymptotic complexity but very different actual run times. You should know that, are you not in Computer Science? The purpose of Donald Knuth's MMIX is give those reading his books an idea of actual work a computer must do running his algorithms. Which is Donald Knuth, a control freak or fundementalist? What about those who code real-time and deterministic-time systems, which are they?

    "swap swap dup drop" does not occur in any macro expansion, the likelyhood of this case occuring in the future does not justify its presenece. The ones doing data flow analysis to optimize stack code are commercial firms. Benchmarks are one of the few things a compiler maker can market when the language is standardized. Leave it to you to classify them as religious zealots.

    You can't grasp value of no syntax errors, what can I say? Who here does not go though multiple development cycles just trying to enter C programs? How about any infix language? I can't do it even for the simplest programs.

    Your first paragraph is simply more deceit, you're not trying to get it right, you just ingore what I write, and make up your own meanings. You justify this with a misunderstanding of mine from a different article!

    Truly I must ask, what is your motivation in all this? I sense from you a kind of equalitarian philosophy, nobody should excel beyond your limitations or others with limitations. Perhaps Chuck's comment about not conforming "to some equalitarian philosophy" has set you off onto smearing Chuck Moore anyone who defends the value of his ideas.

    Duh, posted 4 Oct 2003 at 03:51 UTC by tk » (Observer)

    Inane? Deceitful? Smearing Moore? I thought the burden's on the Forth advocates to prove Forth's excellence, rather than Forth critics to prove that Forth is oversold?

    1. If Forth is so great in letting you obtain precise timings, I ask again, for each definition in your image, can you quickly and accurately tell how many x86 instructions it is?
    2. And I ask again, how does having no syntax errors speed up development, beyond `if you can't grasp it by yourself, you're an idiot'? Is it better to get a system hang than an error message?
    3. You say you can't write simple programs in infix notation. Why are you sure the problem lies with C, not with yourself?
    4. Give me an application where one actually needs the precise number of nanoseconds of a piece of code, not just the number of nanoseconds in the worst case.
    5. Are commercial companies evil because they can do optimizations that are beyond colorForth, because they provide a useful service that Moore can never provide? Is this not equalitarianism?
    6. And please with your infinite wisdom clarify what you think are the entitlements of colour-blinds. If what I wrote was deceit, then please clearly explain the truth.

    By the way, I see that the AC-97 code takes up 2 blocks. Lose.

    response, posted 4 Oct 2003 at 18:38 UTC by mslicker » (Journeyer)

    What are you saying? You have no obligation to be honest or truthful? Does tk properly represent Chia Tee Kiah from Singapore? Is this your mode of conduct in your graduate studies? I'll make yet another attempt to answer your questions:

    1. Yes I can, however it is besides the point. The point is to understand the work involved, and in the exceptional case where speed needs to be improved by a factor of 2 or 3 to make the appropiate change. As I have already stated optimization is not an obssesion in colorForth, other factors take precedence to absolute speed. The goal is a well balanced system, not to spend an inordiante amount of energy on any one aspect of the system.
    2. How can system hangs be prevented by having syntax checked vs. not needing syntax checking?
    3. I can write programs in infix, yet rarely are these programs well formed when fed into the compiler. Not having syntax errors is a benefit for me. I don't see why anyone else would not benefit from the impossibility of mistakes in syntax compared to the possibility of making a number of common syntax mistakes in a language like C. Perhaps you are an exception and make no errors in syntax, so the impossibility of syntax errors in a language is of no advantage.
    4. Deterministic systems have been mentioned in comp.lang.forth, where timing for the system is derived from knowledge of the instruction timings.
    5. Evil is your word, not mine. I'm just stating what they do, much of it superfluous for well written code, and the writers of these compilers will admit to that. It satifies a market need, and I myself have no problem with it.
    6. As for needs, who am I, a color percieving person, to lay out the needs of color-blinds? I think it is much better for someone who has the experience to say what his/her needs are. If the needs include a color-blind enhanced version of colorForth, why not? There is nothing preventing this from happening. You have substituded your own meanings for Marx's words. I don't see the correspondence, I don't know how you arived at these meanings.

    How do you record sounds with your code. Remember Chuck Moore wanted to record speach with his audio card.

    Duh duh, posted 6 Oct 2003 at 16:40 UTC by tk » (Observer)

    Hmm, the troops of Ad Hominem are marching in. I point out that the cited `advantages' of colorForth have never been proven, and that's dishonest? What next, I'm an ignorant close-minded reactionary? *sigh*

    How does syntax checking prevent hangs? When you make a `syntactic' mistake, like forgetting a "then" after an "if", you want the PC to hang instead of warning you about it? Not surprising I guess.

    So who'll be responsible for the colour-blind-enhanced colorForth? Moore? Fox? You? "The proletariat"?

    Man, you should get a life. Stop struggling against nothing. Go to a party, a LUG meeting, a Forth meeting, whatever.

    tk's dishonesty, posted 6 Oct 2003 at 21:38 UTC by mslicker » (Journeyer)

    Ad Hominem is your speciality, as is strawman, and a number of dishonest techinques. It seem you currently like to associate any person or group you disagree with as religious zealots, you try to make Chuck out to be cult leader. Anyone who pursues non-mainstream ideas needs to "get a life". I only ask if tk properly represents Chia Tee Kiah? I guess Chia Tee Kiah is not proud to have the association.

    My intention here is only to present ideas related colorForth. It is only fitting I do so considering languages and specifically colorForth is the topic, and my computing experience directly corresponds to the topic. The ideas of colorForth have not been seriously challenged in any way shape or form. I welcome such a challange. What could have been an interesting dicussion, has been instead one of misinformation and personal attacks on tk's part, and act of clarification and defense of those being attacked for my part.

    I nominate you tk to create a colour-blind-enhanced colorForth since you have shown such concern for the color blind and their ability to use colorForth.

    Duh duh duh..., posted 7 Oct 2003 at 16:07 UTC by tk » (Observer)

    `Anyone who pursues non-mainstream ideas needs to "get a life".' Now who's making strawmen? And on your authoritarian nomination, I thought Marx wrote in his Manifesto, "Equal obligation for all to work"?

    If you want a challenge, you've got one (next year, that is). What, you're thinking of an excuse to bail out already? That'll be so boring.

    New Advogato Features

    New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

    Keep up with the latest Advogato features by reading the Advogato status blog.

    If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

    Share this page