Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Simple optimization question

Author: Tord Romstad

Date: 08:13:05 01/09/04

Go up one level in this thread


On January 09, 2004 at 10:04:53, Daniel Clausen wrote:

>On January 09, 2004 at 09:56:26, Bob Durrett wrote:
>
>>On January 09, 2004 at 08:34:05, Tord Romstad wrote:
>>
>>>On January 09, 2004 at 08:14:05, Ricardo Gibert wrote:
>>>
>>>>If the if-test is seldom executed or the if-test is predictable, why should you
>>>>optimize it? Use a profiler to determine what "needs" optimizing. Even then,
>>>>think twice before you mangle the readability of your code.
>>>
>>>I'm quite well aware of all of this.  If you browse the archives, you will
>>>probably find that there are few programmers here who warn about premature
>>>opitimization more often than I.  :-)
>>>
>>>Have a look at this message for the most recent example:
>>>
>>>http://www.talkchess.com/forums/1/message.html?340567
>>>
>>>However, in the present case readability is not a major concern for me.
>>>One of my plans for the not very distant future is to throw away my
>>>current evaluation function entirely, and design some sort of high-level
>>>language for defining the evaluation function.  I will then write a Lisp
>>>program to transform this evaluation function to C code.  If this works
>>>as well as I hope, I will never again have to read or write a single line
>>>of C code in my evaluation function, and I am free to choose the low-level
>>>constructs which give the fastest code, without worrying about readability.
>>>
>>>I hate working in low-level languages like C, C++ and assembly language,
>>>and prefer to let a program do the dirty work of churning out the most
>>>complicated bits of the code rather than doing it all by hand.
>>>
>>>Tord
>>
>>That sounds like the proverbial ostrich with head in sand!
>>
>>Your higher language will eventually produce c code???  Then the c code could
>>have either form being discussed but you will have no control over which.  You
>>have merely hidden the problem from your own view!  If you create a "compiler"
>>which converts your higher language to c, then you will still have to tell the
>>"compiler" what form to use.  What have you gained?
>
>Abstraction.
>
>Using C is already an abstraction as well, since a CPU doesn't execute C-code
>but machinecode.

You are entirely right, of course.

>Unfortunately most people hardly ever consider writing their own language for
>certain things. (it doesn't have to be a high-abstraction language, it can also
>be a moderate complicated code-generator for certain things) I think most people
>either underestimate these things or are simple not aware of it.

Yes.  Many ordinary programming tasks are rather repetitive and tedious,
and do not require much creativity and intelligence, but only a great
degreee of precision.  In other words, it is precisely the kind of tasks
which are better done by computer programs than by humans.

I think part of the problem is that most programmers have never worked
with a programming language with a really simple syntax.  In fact, when
the syntax in C and similar languages is criticized, the most common
reaction you see is statements like "I don't have any problems reading it".
The real problem with C syntax is, of course, that it is difficult to
write programs which output syntactically correct C code.

Tord



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.