Bir derleyicinin programcı adına eşzamanlılık ile ilgili akıllı seçimler yapabilmesi için neyin gerekli olacağını daha iyi anlamaya çalışıyorum. Bu sorunun çok zor yönlerinin olduğunu anlıyorum:
- Yarış koşullarının olmamasını sağlamak
Kodun aynı anda çalıştırılmasını sağlamak, kodun anlambilimsel anlamını etkileyen yan etkilere sahip olmamasını sağlamak
Kodda mevcut olan paralellik derecesi göz önüne alındığında, ipliğin bükülmesinden kaynaklanan ek yükün değip değmeyeceğine karar verme
Anladığım kadarıyla, modern derleyicilerde kullanılan iki büyük ara gösterim, prosedürel ve nesne yönelimli diller için statik tekli atama ve işlevsel diller için stil geçen sürekliliklerdir. Yukarıda listelenen sorunlardan herhangi biri hakkında düşünmek, bu ara formları kullanarak zor görünmektedir. Teorik olarak otomatik paralelleştirme konusunda en iyi şansa sahip olan diller bile (yan etki garantisi olmayan Haskell gibi saf fonksiyonel diller) bu cephede sınırlı ilerleme kaydetmiştir.
Öyleyse sorum şu ki, bu sorunu çözmek ve çözmek için hangi ara temsiller kullanıldı? Akademik araştırmalarda, farkında olmadığım ve bu göreve daha uygun olan başka temsiller var mı? Derleme bir ara gösterimine gelmeden önce soyut sözdizimi ağacını manipüle ederek derleyici ön ucu tarafından temel olarak çözülmesi gereken bu sorun mu?