Bilgisayar programlamasında, insan tarafından okunabilen kaynak kodu bir derleyici tarafından ayrıştırıldığında, derleyici kaynak komutlarını çoğu zaman yerel makine kodu olmayan ancak derleyici veya başka bir yazılım tarafından işlenebilen, en iyi duruma getirilebilen veya derlenebilen bir komutlar dizisine dönüştürür araçlar. Üretilen dosyalar, bir ara dilde olduğu söylenen talimatları içerir, çünkü derleyici tarafından kullanılan dil ne büyük işletim sistemi için ne de programcının ilk önce kodu yazmak için kullandığı dil için anlam ifade etmemektedir. Programın yazılması ve yürütülmesi arasında bir köprü görevi gören bir dildir. Bir ara dil bazen bir derleyicinin çok hassas optimizasyonlar yapmasını sağlamak için kullanılır, böylece program daha verimli çalışır, ancak farklı, uyumsuz sistemler arasında taşınabilir çıktı dosyaları üretmek için de kullanılabilir. Dilin gerçek sözdizimi, makine koduna veya insan tarafından okunamayan diğer bytecode türlerine benzeyebilir veya dil yalnızca mevcut bir platformlar arası bilgisayar programlama dili olabilir.
Derleyici optimizasyonu için kullanıldığında, bir dil derleyici her bir ifadeyi bir kaynak kod dosyasında alır ve komutu ara dile indirir. İnsan tarafından okunabilen tek bir programlama ifadesi düzinelerce makine dili komutuna bölünebilir, bu nedenle ara dil, derleyicinin önce kodu bağlamak zorunda kalmadan optimizasyonların yapılabileceği alanları tanımlamak için kullanabileceği bir soyutlama düzeyi oluşturur. herhangi bir yerel uygulama veya kitaplık. Tamamlandıktan sonra, ara kod dosyası daha sonra yerel bir ikili dosya oluşturmak için derlenebilir veya tercüman olarak bilinen başka bir programda çalıştırılabilir ve bu kodu gerektiği gibi yerel talimatlara göre derleyerek çalıştırabilir.
Java® gibi bazı diller, en iyi duruma getirilmiş, ancak diğer bilgisayar sistemlerine de taşınabilir olan derlenmiş dosyalar oluşturmak için bir ara dil kullanır. Bu kod türü bazen bytecode olarak bilinir ve makine koduna veya assembly diline benzer. Bayt kodu, platformdan bağımsız bir şekilde dosyalarda depolanır; bu, bir tercüman çalıştırabilecek herhangi bir bilgisayar sistemine veya aygıta aktarılabileceği anlamına gelir. Bayt kodu bir sisteme girdiğinde, yorumlanmış bir program olarak çalıştırılabilir veya hedef sistemde yerel olarak çalışmak için derlenebilir.
Bazı durumlarda, bir bilgisayar dili etkileşimli web uygulaması gibi belirli bir sona doğru programlamayı kolaylaştıracak şekilde tasarlanmıştır, ancak tasarımcılar farklı sistemler için özel derleyiciler, tercümanlar veya eklentiler eklemek istemezler. Bu durumlarda, derleyicinin orta dili, zaten platformlar arası tercümanlar kuran mevcut bir dil olabilir. Bu durumda ortaya çıkan ara dil insan tarafından okunabilir. Ara dil olarak da kullanılan bir bilgisayar programlama diline bir örnek, 2011'den itibaren neredeyse her web tarayıcısında herhangi bir platformda çalışabilme avantajına sahip olan JavaScript®'tir.


