Nesne Dosyası Nedir?

Nesne dosyası, derleyici adı verilen bir program tarafından oluşturulan ve talimatların yanı sıra veri içeren bir bilgisayar dosyasıdır. Derleyiciler, programlama dili kaynak kodunu, nesne kodu olarak bilinen makine tarafından okunabilen bir orta forma çevirir. Daha küçük programlar tek bir nesne dosyasında derlenebilirken, daha büyük programlar genellikle ilgili işlevin birkaç dosyasına derlenir. Bu ayrı nesne dosyaları bir bağlayıcı ile birleştirilir ve çalıştırılabilir bir program oluşturmak için işletim sistemine özel bilgiler eklenir.

Genel uygulamada, bir nesne dosyası ".obj" dosya uzantısı ile gösterilir. Bununla birlikte, bu dosyalar için birkaç farklı format vardır. En yaygın olanı Intel® Yer Değiştirilebilir Nesne Modülü Biçimi (OMF) ve Windows® ve UNIX® Sistem V'in Ortak Nesne Dosya Biçimi (COFF). Birçok INIX® sisteminde Yürütülebilir ve Bağlanabilir Biçim (ELF) COFF değiştirin.

Biçimden bağımsız olarak, bir nesne dosyası tipik olarak diğer program modülleriyle etkileşime girmesini sağlayan üç tür bilgi içerir. Dış referansa açık olan prosedürler ve veriler, diğer modüllerden çağrılabilecekleri isimlerdir. Benzer şekilde, modül dışındaki bilgilere yapılan atıflar not edilir ancak bir isim verilmez. Dosyalar birbirine bağlandığında, adsız referanslara, başlangıçta tanımlandıkları modülde kendilerine verilen ad atanacaktır. Yerel adlar, yalnızca bir modül içinde belirtilen talimatlar ve veriler için kullanılır.

Bağlanabilir kodların tümü nesne dosyası olarak saklanmaz. Kütüphaneler, nesne kodu olarak depolanan önceden derlenmiş yordamların koleksiyonlarıdır. Nesne dosyalarıyla aynı şekilde üretilirler ve sıkça adlandırılan prosedürleri saklamak için kullanışlıdırlar. Bir bağlayıcı diğer nesne dosyalarında bir başvuru bulamadığında, otomatik olarak bir kitaplık dosyasında arayacaktır. Bir programlama dilinin çoğu uygulaması standart fonksiyon kütüphanesi ile birlikte gelir.

Dinamik bağlantı sayesinde, bir nesne dosyası aynı anda birden fazla yürütme programı tarafından kullanılabilir. Bağlandığında bir programa nesne kodunu bağlamak yerine, program yüklendiğinde veya bir prosedür referans alındığında çalışma zamanında alınır. Windows® ortamında, bunlar dinamik bağlantı kitaplıkları olarak bilinir ve ".dll" uzantısı ile gösterilir. Unix®'e benzer sistemler genellikle bu tür bir dosyayı dinamik bir paylaşılan nesne (DSO) olarak adlandırır. Bu tür nesne dosyası ayrıca belirli bir programla kullanılmak üzere de uygulanabilir ve bu programın kurulumunun bir parçası olabilir.