[LLVM'in yaratıcısı Chris Lattner] Claude C Compiler'ın gösterdiği yazılım mühendisliğinin geleceği
(modular.com)Temel özet
Anthropic'in duyurduğu Claude C Compiler (CCC), yapay zekanın basit kod parçacıkları üretmenin ötesine geçerek, birden fazla alt sistem boyunca tutarlı bir mimariyi koruyup büyük ölçekli mühendislik yapabildiğini gösteren önemli bir kilometre taşıdır. LLVM ve GCC gibi onlarca yıl boyunca birikmiş derleyici mühendisliğinin 'ders kitabı niteliğindeki bilgisini' kusursuz biçimde yeniden üretse de, yeni soyutlamalar icat etmekten ziyade testleri geçmek için mevcut kalıpları birleştirme sınırında kaldığını da gösterdi. AI coding'in 'uygulamanın otomasyonu' aşamasına girmesiyle birlikte, gelecekte mühendislerin temel yetkinliği kodlamanın kendisinden çok sistem mimarisi tasarımı ve yön tayinine kayacaktır.
Derinlemesine analiz
1. Yerel kod üretiminden küresel sistem mühendisliğine geçiş
Önceki nesil yapay zeka kodlama araçları, tek bir fonksiyon yazımı ya da script üretimi gibi kısa vadeli ve yerel akıl yürütmeyle sınırlıydı. Buna karşılık CCC, frontend, ara temsil (IR) ve backend'e uzanan karmaşık alt sistemler arasındaki mimariyi tutarlı biçimde korudu. Derleyici gibi katı değişmezler (invariant) ve doğruluk gerektiren bir alanda, yapay zekanın karmaşık geri bildirim döngülerinden (test-başarısızlık-düzeltme) geçerek tüm mühendislik sürecine katılabildiğini kanıtlamış oldu.
2. İstatistiksel dağılım takipçisi (Distribution Follower) olarak LLM ve sınırları
CCC'nin ilk büyük commit'i, tipik bir derleyici yapısını tek seferde (one-shot) kurdu. Bu, modern LLM'lerin devasa kod tabanlarını öğrenerek 'mevcut bilginin merkez eksenini' bulabilen güçlü dağılım takipçileri olduğunu gösterir. Richard Sutton'ın 'Bitter Lesson' yaklaşımıyla da bağ kurar; bilinen soyutlama tekniklerini son derece iyi taklit eder.
Ancak CCC'nin yaptığı hatalar, günümüz yapay zeka kodlamasının net sınırlarını da ortaya koyuyor. Genel amaçlı bir soyutlama mimarisi kurmaktan ziyade, verilen test paketini geçmeye aşırı uyum (overfitting) gösterme eğilimindeydi. Yani var olan kavramları birleştirme ve çevirmede çok başarılı olsa da, tamamen yeni bir IR ya da optimizasyon modeli icat edecek 'kavramsal sıçrama (innovation)' düzeyine ulaşamadı.
3. Yazılım geliştirme paradigmasının kayması
Uygulama, çeviri ve refactoring gibi kodlama işleri giderek yapay zeka yerel görevleri olarak otomatikleştikçe, yazılım inşa etmenin marjinal maliyeti hızla düşüyor. Bu da paradoksal biçimde, 'ne inşa edileceği' ve 'nasıl yapılandırılacağı' konularında insan mühendislerin vizyonunu ve muhakemesini (taste) daha önemli hale getiriyor. Özellikle yapay zeka sistemleri iyi yapılandırılmış bilgiyi büyütme ve belgelenmemiş sistemleri dışlama eğiliminde olduğundan, açık mimari tasarım ve dokümantasyon geleceğin mühendisliğinde temel altyapı olacaktır.
Başlıca veriler ve teknik özellikler
Desteklenen mimariler (Backend)
x86-32,x86-64,RISC-V,AArch64
Mimari tasarımda görülen LLVM/GCC etkileri (IR kavramları)
GetElementPtr: bellek adresi hesaplama talimatıMem2Reg: bellek tahsisini register'a yükselten (promotion) optimizasyon geçişi- temel blokların (basic block)
Terminatorsyapısı
CCC uygulamasındaki başlıca teknik kusurlar (test odaklı optimizasyonun yan etkileri)
| Kusur alanı | Ayrıntı |
|---|---|
| Kod üreticisi | Genel amaçlı IR kullanmak yerine assembly metnini yeniden ayrıştıran (reparsing) yapısal sorun ('Toy' seviyesinde kalıyor) |
| Parser | Hata kurtarma (error recovery) mekanizması zayıf ve uç istisna durumlarını (corner case) işlemekte başarısız |
| Sistem başlıkları | Ayrıştırması zor sistem header'larının işlenmesini atlayıp, testleri geçmek için gerekli öğeleri hardcode ediyor |
7 yorum
https://github.com/anthropics/claudes-c-compiler/issues/1
Derleyici yapması etkileyici hissettiriyor ama bir yandan da derleyici kadar girdi/çıktı spesifikasyonu net olan program çok azdır; bu yüzden LLM’in üretmesine de o kadar uygunmuş gibi görünüyor.
Yine de gerçekten etkileyici.
Sırada OS mi var...? "Win32 programlarını çalıştıran bir OS oluştur, model."
Okuyup da ne dendiğini anlayamayan tek ben miyim?.. Yoksa demek istedikleri, gcc’yi vibe coding ile yazmışlar gibi bir şey mi?
Bu, bu ölçekte bile "vibe coding"in tutarlı biçimde mümkün olabildiğini gösteriyor sayılmaz mı?
Claude가 생성한 C 컴파일러와 GCC 비교
병렬 Claude 팀을 활용한 C 컴파일러 구축
Muhtemelen model, gcc ile ilgili bilgilerin tamamını izinli ya da izinsiz zaten toplayıp öğrenmiştir; bu yüzden bunu LLM performansını gösteren bir örnek olarak sunmak da uygunsuz görünüyor..
Büyük ölçekli bir projeyi vibe coding ile başarmış olmasının bir anlamı vardır,
ancak söylediğiniz gibi gcc öğrenilmiş bir içerik olacağı için bunun biraz uygunsuz olduğu görüşüne ben de katılıyorum.
Bu videoda da benzer bir şeyden bahsediliyor: https://www.youtube.com/watch?v=6QryFk4RYaM
Chris Lattner olunca güven veriyor.