Re: A89: Re: Game Programming -- Pure Assembly vs. TI-GCC?


[Prev][Next][Index][Thread]

Re: A89: Re: Game Programming -- Pure Assembly vs. TI-GCC?




Robin Kirkman wrote:
> 
> Bleh.. you have a few techinical inaccuracies...

I figured this would come sooner or later...

> Seth Peelle wrote:
> >
> > Daniel Wood wrote:
> > >
> > > Well, I'm not a programmer, but I believe that the TI-GCC translates the C
> > > into ASM(Don't quote me on this).
> >
> > Actually, what a compiler does (for ASM, C, or any other programming
> > language) is take the "source code" that the programmer writes and
> > translate it into "object code", which only the computer can understand
> > -- this is the end result of designing a program.
> 
> A C compiler translates C code to assembly! This is done by the program 'cc1' in
> gcc.

Bleh... shows you how much I actually know :P

> Next, it is assembled (by 'as' usually, but 'a68k' in ti-gcc i believe...) into
> object code.
> Then, if you have a decent linker, your object files are combined with libraries
> to make a final executable. In the case of the tigcc linker... Well, put simply,
> it kinda stinks because it lacks the ability to use labraries. (*.a). What would
> be nice is a port of GNU ld with the tigcc modifications (calling structure,
> etc) so that you could link everything into one object file, -then- run it
> through the tigcc linker.

<BLUSH_OF_EMBARASSMENT>
Hmm, maybe I shouldn't have been the one to speak up here :)  Well let
me explain just where I'm at, anyways: I don't know C.  I do know C++. 
And I don't really know the differences between C and C++.  And I'm not
too familiar with the compiling/linking process.  And I thought I knew
what I was talking about, which I obviously didn't, when I started
blabbering on like I did ;P  My sincere apologies, I'll try to talk only
about stuff I actually know from now on.
</BLUSH_OF_EMBARASSMENT>

> BTW.. anyone interested in a linux port of the tigcc linker? i did one...
> 
> >
> > Languages like ASM are called "low-level" programming languages because
> > they are very "close" to the machine's language -- the programmer does a
> > vast amount of work using this language (he/she must be extremely
> > specific in telling the program what to do, which can get very difficult
> > and tedious), but the compiler doesn't need to translate it very far to
> > make it into the machine's own language.  This way, the programmer has
> > complete control over the program, and he/she can fine-tune (or
> > "optimize") it so that it runs very fast and efficiently.
> 
> C is low-level... B was more so...

So then what would be some examples of high-level languages?

> > At the other end, languages like C are called "high-level" programming
> > languages because they are closer, in a sense, to the programmer's
> > language (English, French, etc.).  It is far easier for the programmer
> > to understand and work in a language like this.  However, the compiler
> > must work harder to be able to translate this into the machine's
> > language.  The programmer doesn't have as much fine control over a
> > program written in this language -- as a result, it cannot be optimized
> > as much and may mot be as fast and efficient.
> 
> Not so.. C is not high-level, nor does it take away control.
> C itself is a low-level language, but because of its expandability many people
> think it is high-level because it can be very powerfull.
> 
> >
> > Here's an analogy: You are a native English speaker.  You meet a person
> > who speaks only Japanese (which you don't know a single word of).
> > Obviously it is very difficult and inefficient for you to communicate
> > with him, since you must use tons of gestures and mime acts just to
> > convey simple concepts to him.  In addition, he is from a culture that
> > is quite unlike yours -- just one particular gesture that you may think
> > is appropriate for what you want to tell him may, to him, be extremely
> > offensive.  He may even become infuriated and refuse to communicate
> > further with you.  ASM is kind of like this -- and the refusal to
> > communicate further would be the program locking up ;)
> >
> > Now you come across a German.  You notice that his language has many
> > similarities to yours, and you can even find some words in his speech
> > that are almost identical to your own.  His culture is also very much
> > like yours, so you feel more comfortable (and are more efficient) in
> > attempting to talk with him.  C is kind of like this.
> 
> Interesting analogy.. but well written C code is system independant.

Well yes.. but I didn't want to try & implement that somehow into the
analogy ;P  Just to convey the basic idea...

Anyway, thank you for correcting me :)

> > That's just to give you a general idea of the concept.  And I imagine
> > this is far more than what you were expecting to hear, so I'll shaddup
> > now ;P


BeaT (Seth Peelle)
beat@drigon.com
http://www.drigon.com/~beat


References: