Derleyicilerin deterministik olup olmadığı sorusu, bilgisayar bilimleri ve mühendislik açısından farklı yanıtlar barındırır. Bilgisayar bilimleri perspektifinden bakıldığında, bir compiler tam girdi durumunun bir fonksiyonu olarak deterministiktir. Ancak mühendislik pratiğinde, çoğu gerçek derleme süreci tam girdi durumunu kontrol etmediği için çıktılar farklılık gösterebilir. Yazarın Ksplice'daki deneyimleri, bu pratik farklılıkları net bir şekilde ortaya koymuştur; eski ve yeni derlenmiş çıktıları karşılaştırırken, kaynak kodda semantik bir değişiklik olmamasına rağmen makine kodunda register tahsis farklılıkları veya bölüm düzeni değişiklikleri gibi tutarsızlıklar gözlemlenmiştir.
Bir derleme çıktısının (artifact) oluşumunu etkileyen faktörler arasında kaynak kod, derleme bayrakları, compiler ikili dosyası, linker ve assembler, runtime kütüphaneleri (libc + runtime), ortam değişkenleri, dosya sistemi görünümü, yerel ayarlar ve zaman dilimi, sistem saati, çekirdek davranışı ve donanım/eşzamanlılık çizelgesi gibi birçok girdi yer alır. Çoğu ekip yalnızca kaynak kodu ve belki derleme bayraklarını sabit tutarken, diğer tüm faktörleri "gürültü" olarak kabul eder. İşte bu "gürültü" alanı, derleme çıktılarının tekrarlanabilir olmamasının temel nedenidir.
Compiler'ların, programların tanımlı davranışları için çıktının kaynak dilin soyut makinesiyle gözlemsel olarak eşdeğer olmasını sağlaması beklenir; yani semantiği koruması gerekir. Bu, talimat sırası, register seçimi, inlining stratejisi ve blok düzeni gibi detayların, harici olarak görülebilir davranış aynı kaldığı sürece değişebileceği anlamına gelir. DATE, TIME, dosya yolları ve ASLR gibi faktörler de dolaylı olarak çıktı üzerinde etki yaratabilir. Dolayısıyla, "compiler'lar deterministiktir" ifadesi genellikle teorik anlamda doğru olsa da, operasyonel anlamda çoğu zaman yanlıştır.
Derleyicilerin teorik determinizmi ile pratik uygulamadaki tekrarlanamazlık arasındaki fark, yazılım güvenliği ve güvenilirliği açısından kritik öneme sahiptir.