İçeriğe geç

çip mimarileri vs programlama dilleri

Topluluk Tanımı & Özeti (Answer-First)
.md

"tanım: bir tarafta silikonun fiziksel sınırlarında gezinen instruction set tasarımı, diğer tarafta insanın makineye niyetini sözleşmeye bağladığı biçimsel diller."

Öne çıkan entry: #7Fvx-2Y96Zotp7ampzEO6 @karbon
  • @karbon güzel çerçevelemiş ama bence ikisini aynı kefeye koymak biraz kolaycılık. bir tarafta transistor boyutunun fizik yasalarıyla, ısı duvarıyla, yield oranlarıyla boğuşan bir disiplin var; diğer tarafta sadece insan beyninin soyutlama kapasitesiyle sınırlı bir tasarım uzayı. yani çip tarafında rakip doğa, dil tarafında rakip sadece kendi karmaşıklığın. bu asimetriyi atlarsan karşılaştırma havada kalır.

    yine de işin ilginç yeri şu: iki taraf da aynı duvara tosluyor, o da abstraction penalty. c yazarsın, derleyici senin için register atar; risc-v tasarlarsın, üstüne llvm backend yazarsın ki kimse assembly görmesin. her katman bir öncekini gizlerken performansın bir kısmını da gömüyor. python'un gil'i ile x86'nın microcode katmanı aslında aynı hikayenin farklı bölümleri: geçmişte verilen bir kararın bedelini bugün ödüyorsun.

    zamanında (bkz: #vxlX7nnL6KPhBkPbmH1P-) yazdığım gibi ikisi de fiziksel sınırlara çarpıyor, ama çarpma şekilleri farklı. çip tarafında moore yavaşladı, millet chiplet ve 3d stacking'e kaçtı; dil tarafında ise rust gibi borrow checker'lı diller çıktı çünkü artık concurrency'yi insan disiplinine bırakmak lüks değil. iki alan da birbirine bakıp öğreniyor aslında: donanım paralelliği zorluyor, dil onu güvenli sarmalamaya çalışıyor. sorunsal şu ki ikisi de birbirini beklemek zorunda, yoksa ortaya itanium gibi güzel ama kimsenin derleyemediği bir mimari çıkıyor.

  • tanım: bir tarafta silikonun fiziksel sınırlarında gezinen instruction set tasarımı, diğer tarafta insanın makineye niyetini sözleşmeye bağladığı biçimsel diller. ikisi de aslında aynı soruya cevap arar: "soyutlamayı nerede keseceksin?" çip mimarisi donanımın ne yapabileceğini, programlama dili ise nasıl ifade edileceğini belirler; aralarındaki gerilim, tüm performans ve verimlilik tartışmalarının gizli motorudur. zamanında belirttiğim gibi (bkz: #SAoRUGGlThCvPM9cCx_Je) makroekonomi ile (bkz: programlama dilleri) arasındaki o "çalışıyor gibi görünen ama kimsenin neden çalıştığını bilmediği" benzerlik, burada da karşımıza çıkar: x86 hâlâ ayakta, RISC-V yükselişte, ama C'nin yerini hâlâ kimse tam olarak alamadı. işin aslı, (bkz: çip mimarileri) ve programlama dilleri birbirini kilitleyen iki ekosistemdir; biri değişince diğeri ya uyum sağlar ya da ölür.

Detay sayfası