GCC neden varsayılan olarak AT&T sözdizimini kullanıyor?


9

Bence başlık her şeyi söylüyor :)

GCC'nin AT & T / GAS sözdizimini neden kullandığı belirli bir pratik neden var mı?

Not: Bunun sadece varsayılan olduğunu biliyorum ve değiştirebilirsiniz

Not 2: Kişisel olarak "Intel sözdizimi" ni daha okunaklı buluyorum, bu yüzden beni şaşırtıyor.


3
Bu işlevselliği ekleyen ve 'neden' diye soran kişiyi avlamadığınız sürece cevap muhtemelen bilinemez.

1
@MichaelT Bu olasılığın farkındayım, ama yine de oldukça ilginç bir konu buluyorum ... Belki birisi bir teklif gördü.
Vyktor

@ Vyktor gibi sorular bazen cevapsız, ama hala "bilim -konu " gri alanda bile bilgisayar bilimi tarihinin ilginç buluyorum

@Snowman kabul etti, ancak GlenH7'nin yaptıklarını yapmak bana geldiğinde (googling yerine gcc tarihine gidin why gcc uses at&t) bu soruyu sormazdım.
Vyktor

Yanıtlar:


13

GCC, AT&T sözdizimini varsayılan olarak kullanır çünkü başlangıçta AT&T System V (şimdi UNIX olarak bilinir) kullanan veya System V'e benzeyen sözdizimine sahip bir sisteme yazılmıştır .

Gönderen Wikipedia'da GCC üzerinde

GNU işletim sistemini önyüklemek için Richard Stallman, Amsterdam Derleyici Kiti'nin (Serbest Üniversite Derleyici Kiti olarak da bilinir) yazarı Andrew S. Tanenbaum'a bu yazılımı GNU için kullanıp kullanamayacağını sordu. Tanenbaum, Özgür Üniversite özgürken, derleyicinin değildi, Stallman'ın kendi yazmaya karar verdiğini söyledi. Stallman'ın ilk planı, Lawrence Livermore Laboratuvarı'ndan mevcut bir derleyiciyi Pastel'den C'ye Len Tower ve diğerlerinin yardımıyla yeniden yazmaktı. Stallman, Livermore derleyicisi için yeni bir C ön ucu yazdı, ancak daha sonra megabayt yığın alanı, sadece 64K ile 68000 Unix sisteminde imkansızlık gerektirdiğini ve sıfırdan yeni bir derleyici yazması gerektiği sonucuna vardı. Stallman yazdığı C ön ucunu kullanmasına rağmen, Pastel derleyici kodunun hiçbiri GCC'de sona ermedi.

Aşağıdaki bölüme dikkat edin:

Stallman, Livermore derleyicisi için yeni bir C ön ucu yazdı, ancak daha sonra megabayt yığın alanı, sadece 64K ile 68000 Unix sisteminde imkansızlık gerektirdiğini fark etti ...

Bu GCC was first released March 22, 1987* ve System V Release 3 was released in 1986** olduğu düşünüldüğünde, GCC'nin SVR2 veya SVR3 üzerine yazılmış olması büyük olasılıktır.


Wikipedia alıntısı, Stallman'ın Lawrence Livermore Labs'ın Unix tabanlı ve bu nedenle Sistem V olan ekipmanı üzerinde çalıştığını açıkça ortaya koyuyor. Böylece orada durabilir ve sadece "üzerinde çalışmak zorunda olduğu şey" diyebiliriz. Ama aynı zamanda mevcut MS-DOS / PC-DOS sistemlerine o zaman bakmak da ilginç . Bu zaman çizelgesine göre , PC-DOS 1 için olası aday 3.2 sürümü olurdu.

Bilgisayarlar (kişisel bilgisayarlar) o zamanlar akademik veya araştırma ortamlarında yaygın olarak kullanılmadı çünkü ağ tesisleri Unix tabanlı sistemlerin sağlayabileceği kadar iyi değildi. Sunucu / terminal tipi ortamlar için de geçmişte bir tercih vardı. Sunucu / terminal sistemleri PC'lerin varlığından önce mevcuttu ve genellikle bir PC'nin karşılayabileceğinden çok daha fazla işlem gücü ve diğer kaynaklar sağlamıştı.

Stallman Yani süre olabilir PC'de gelişmiş GCC, o muhtemelen onun birincil çalışma Unix sistemleri üzerinde olurdu çünkü hiç istemezdi.

Ve bir yorumda belirtildiği gibi , Unix sistemlerine güç veren CPU'lar ve PC'ler arasında temel bir mimari fark vardı .

Tüm bu parçaları bir araya getirin ve Stallman'ın GCC'yi geliştirirken neden Intel üzerinden AT&T sözdizimini seçtiği oldukça açık.

1 MS-DOS 3.31 sürümünden önce PC-DOS çağrıldığını söylemek en kolay unutmayın . Bununla birlikte, DOS geliştirme tarihinin bu sorunun kapsamı dışında kalan çok şey var.


Ben cevapsız anlamıyorum bu " Intel sözdizimi MS-DOS ve Windows dünyasında egemen olduğu, ve Unix AT & T Bell Laboratuarlarında oluşturulduktan sonra AT & T sözdizimi, Unix dünyasında egemen olduğunu. " Cevabınız ile Katılım onun sadece görünmek çok düz ileri.
Vyktor

Ancak bu cevabın değinmediği şey, GAS'ın diğer pek çok CPU mimarisi için neden "doğal" sözdizimini kullanmasıdır. x86 işlemcileri bana AT&T sözdizimini kullandığı birkaç programdan biri gibi geliyor.
Dolda2000

“... Unix sistemlerine güç veren CPU'lar ve PC'ler arasında temel bir mimari fark vardı.” Ha? İşlemciler aynıydı. Komut kümesi mimarisi aynıydı. AT&T sözdizimi her zaman aynı temel mimari için alternatif bir gösterim olmuştur . Sağ?
Maksimum

1
@Maxpm - İşlemciler aynı değildi ve büyük ve küçük endian mimarilerinin önemli olduğu yer burası.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.