Re: C, C++, C#, Python

Poslao slobodan on 27.05.2006 15:59:48
Zapravo, ako ćemo bit precizni, GCC je skraćenica od GNU Compiler Collection, odnosno skup gnu kompajlera. Sasvim slučajno je slična skraćenica i gcc koja je zapravo gnu c compiler.

No kao što kaže
gcc --help
postoji opcija
-x Specify the language of the following input files Permissible languages include: c c++ assembler none 'none' means revert to the default behavior of guessing the language based on the file's extension

Znači, gcc zapravo radi "inteligentnu stvar". Ako ga pozoveš sa gcc program.c skužit će (odnosno probati skužiti) da je u pitanju C source, i skompajlirati (odnosno gcc će pozvati "C kompajlerski podmodul") sa C kompajlerom. Ali ako mu proslijediš recimo -x c++ onda će ga skompajlirati sa C++ kompajlerom...

U biti, prvo se pozove parser koji prođe kroz sve .h i .c datoteke koje su logički povezane, pospoji ih u jedan i procesira po potrebi, a C kompajler će samo producirati object code (ili čisto konvertirati C u asemblerski kod koji se zatim može asemblerom pretvoriti u object code ovisno o našim potrebama), koji zatim linker treba finiširati do kraja (pospojiti s drugim object code elementima i/ili gotovim library rutinama u raznim libovima, izgenerirati odgovarajući ELF header te sve to nakraju spremiti u odgovarajuću datoteku koju poslije toga nazivamo program), ali ajd nekompliciranja radi, gcc će kompajlirati C source i kreirati program... Ista je priča i za c++ te ostale jezike koje GCC podržava...

Inače, GCC skup kompajlera sadrži podršku za nekoliko različitih jezika, a koji su dostupni ovisi o distribuciji te instaliranim paketima.

Da li učiti C, C++ ili python...? Pa... najbolje je barem malo poznavati sve od njih, tek tad možeš znati što od njih ti zapravo treba, a ako se OP misli baviti profesionalno programiranjem ionako će u svojim projektima koristiti više od jednog programskog jezika (pod tim podrazumijevam i skriptne jezike kao što su sh i perl), tako da ih u biti sve treba znati...

Ova poruka je od: http://www.linux.hr/newbb/viewtopic.php?forum=8&topic_id=895&post_id=5880