Hello ! I have a problem which I can't resolve. I wrote program for 89C2051 for one of my friend in Basom Basic compiler (http://www.mcselec.com). Compiled code was about 1945 bytes. Since I prefer C, I transalte Bascom basic to C. But when I compile, generated code was 2313. I try to change optimization parameters, but generated code never go below 2313. Even bigger. Where am I wrong ? Is it possible that stupid Basic make smaller code tne best C compiler ? Then I find out that this code: while (1) { printf ("Hello World\n"); } generate fully 1093 bytes (!) for Atmel 89C2051. 1093 bytes???? Three lines? Same program in Bascom generate only 154 (!) bytes. When I remove all "printf" from my C code, generated code was arond 2200 byte. But, with same action in Basic code (remove all "print") 1340 bytes long code. Exactly same program in Keil C and Bascom basic generate 860 byte smaller code ! I don't belive this. Do I have to program in (stupid) Basic if I want smaller code ? I still belive I did mistake somewhere, so I need help. I will send both C and basic code for interested people. With best regards !
You can write bloated code in any language, including assembly. I agree; however it is a characteristic of "real programmers" as opposed to "embedded programmers" to concentrate on the elegance (in their opinion) and state of the art of the code rather than the efficiency. I consulted for a while with a major cellphone company and the "real programmers" decided to go to C++. This led to the need to double the clockspeed of the processor. Before this happened I said, wrote and almost screamed "faster clock is more battery usage and one of the problems we have is is battery charge life". They went ahead anyhow "because it is the right thing to do" and now the lack of battery life has led to a sharp decline in sales for that company. Erik