Perché GCC utilizza la sintassi AT & T per impostazione predefinita?

9

Penso che il titolo dice tutto:)

C'è qualche particolare motivo pratico (immagino sia per lo più storico, ma non riesco a trovarlo da solo) perché GCC usa la sintassi AT & T / GAS?

Nota: so che questo è solo predefinito e puoi cambiarlo

Nota 2: Personalmente trovo che la "sintassi Intel" sia molto più leggibile, ecco perché mi sorprende.

    
posta Vyktor 21.11.2014 - 23:45
fonte

1 risposta

13

GCC utilizza la sintassi AT & T per impostazione predefinita perché è stata originariamente scritta su un sistema che utilizzava AT & T System V (ora noto come UNIX) o con sintassi simile a System V.

Da Wikipedia su GCC

In an effort to bootstrap the GNU operating system, Richard Stallman asked Andrew S. Tanenbaum, the author of the Amsterdam Compiler Kit (also known as the Free University Compiler Kit) if he could use that software for GNU. When Tanenbaum told him that while the Free University was free, the compiler was not, Stallman decided to write his own. Stallman's initial plan was to rewrite an existing compiler from Lawrence Livermore Laboratory from Pastel to C with some help from Len Tower and others. Stallman wrote a new C front end for the Livermore compiler, but then realized that it required megabytes of stack space, an impossibility on a 68000 Unix system with only 64K, and concluded he would have to write a new compiler from scratch. None of the Pastel compiler code ended up in GCC, though Stallman did use the C front end he had written.

Nota la seguente parte:

Stallman wrote a new C front end for the Livermore compiler, but then realized that it required megabytes of stack space, an impossibility on a 68000 Unix system with only 64K...

Dato che GCC was first released March 22, 1987 * e che System V Release 3 was released in 1986 ** , è molto probabile che GCC sia stato scritto su SVR2 o SVR3.

La citazione di Wikipedia chiarisce che Stallman stava lavorando sull'equipaggiamento dei Lawrence Livermore Labs, che era basato su Unix e quindi su System V. Quindi potevamo fermarci lì e dire semplicemente "è quello su cui doveva lavorare". Ma è anche interessante guardare i sistemi disponibili MS-DOS / PC-DOS in quel momento. Secondo questa timeline , la probabile candidata per PC-DOS 1 sarebbe stata la versione 3.2.

I PC (personal computer) non erano così ampiamente utilizzati in ambito accademico o di ricerca in quel momento, perché le loro strutture di rete non erano così buone come i sistemi basati su Unix. C'era anche una preferenza storica per gli ambienti di tipo server / terminale. I sistemi server / terminali erano disponibili prima dell'esistenza dei PC e in genere fornivano una potenza di elaborazione e altre risorse molto maggiore di quella che un PC poteva offrire in modo economico.

Quindi, mentre Stallman potrebbe avere sviluppato GCC su un PC, probabilmente non lo avrebbe voluto dal momento che il suo lavoro principale sarebbe stato sui sistemi Unix.

E come indicato in un commento , c'era una differenza architettonica sottostante tra le CPU che alimentano i sistemi Unix e i PC.

Metti insieme tutti questi pezzi ed è abbastanza chiaro perché Stallman abbia scelto la sintassi AT & T su Intel durante lo sviluppo di GCC.

1 Nota che è più facile dire che MS-DOS era chiamato PC-DOS prima di versione 3.31. Detto questo, c'è molto nella storia dello sviluppo di DOS che non rientra nell'ambito di questa domanda.

    
risposta data 21.11.2014 - 23:51
fonte

Leggi altre domande sui tag