(CrayI+IBM 801+RISC II+ClipperC300+AMD29K+Motorola88K+IBM601+Inteli960 +Alpha21164+Power2+MIPS R4000+HitachiSuperH4+StrongARM110 +Sparc64)/14 = 2009
(CrayI+IBM 801+RISC II+ClipperC300+AMD29K+Motorola88K+IBM601+Inteli960 +Alpha21164+Power2+MIPS R4000+HitachiSuperH4+StrongARM110 +Sparc64)/14 = 2009
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?
For audio amplifer, what is the significance about this DPPTM (digital power processing)?
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.
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.
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.
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.
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.
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?
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).
"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?
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.
Optimizations
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.
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?
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.
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?
By the way, I see that the AC-97 code takes up 2 blocks. Lose.
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:
How do you record sounds with your code. Remember Chuck Moore wanted to record speach with his audio card.
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.
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.
`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 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!