Programlamaya yeni başlıyorum ve terminoloji konusunda iyi bir fikrim yok. C veya C ++ gibi derlenmiş bir dilde yazılmış kaynak kodunun bir program olarak kabul edilip edilmediğini bilmek ister misiniz? Değilse, kimse nedenini açıklayabilir mi?
Programlamaya yeni başlıyorum ve terminoloji konusunda iyi bir fikrim yok. C veya C ++ gibi derlenmiş bir dilde yazılmış kaynak kodunun bir program olarak kabul edilip edilmediğini bilmek ister misiniz? Değilse, kimse nedenini açıklayabilir mi?
Yanıtlar:
Program için Wikipedia girişine bakın : ( Kalın yazı tipini ekledim )
Bilgisayar programı, bilgisayar tarafından yürütüldüğünde belirli bir görevi gerçekleştiren bir talimatlar topluluğudur . Bilgisayar, programların çalışması için gerektirir ve genellikle programın talimatlarını merkezi bir işlem biriminde yürütür.
Bir bilgisayar programı genellikle bir bilgisayar programcısı tarafından programlama dilinde yazılır. Programdan, insan tarafından okunabilen kaynak kodu biçiminde , bir derleyici makine kodunu türetebilir - bilgisayarın doğrudan yürütebileceği talimatlardan oluşan bir form
Dolayısıyla, "program" bilgisayarın yürüttüğü yönergeler kümesidir ve "kaynak kodu" bu yönergelerin okunabilir sürümüdür.
C veya CPP gibi derlenmiş bir dilde yazılmış kaynak kodunun bir program olarak kabul edilip edilmediğini bilmek ister misiniz?
Evet öyle.
FAKAT
Bu düşünce çizgisi ile tehlike şu şekildedir: "bilgisayar programımı yürütür, programımı [örneğin] C, ergo'ya yazıyorum, kaynak kodun bilgisayara talimat olduğunu" yazıyorum.
Ve bu, çoğumuzun 20. yüzyılda çok uzun yıllar boyunca düşündüğü şeydi. Son on yılda öğrendiğimiz şey, diğer programcıların kaynak kodunun birincil kitlesi olması . Yani evet, bu kaynak tiyatroda olduğu gibi, diğer insanlara neler olduğunu anlatan programdır. Kaynak kodunun güzelliği, sadece programın değil, aynı zamanda bilgisayara yönelik bir dizi talimatın da olmasıdır ...
Olup bulunmadığı bağlama bağlıdır. Bu şekilde düşünün. Ben konsepti için resmi adının ne unutmak, ama sözcükler o şeydir değil açıklayın anlam taşıyan, fakat hangisi diyor dilinin bir teori vardır değil . Kırmızı elma kırmızı değildir, çünkü kırmızıdır, ama mavi değil, yeşil değil, vb. Bunun doğru olup olmadığını göz ardı edin, ama sadece bir saniyeliğine varsayalım ve bu bağlamdaki soruyu düşünün.
Bu konsepti düşündüğümüzde, kaynak kodumuzu bir evin planı ile karşılaştırabiliriz. Plana diğer taslakların bir yığınından bakıyorsanız ve "bu bir ev mi" diye soruyorsanız ve diğer taslaklar ticari binalar, köprüler vb. Çünkü plan diğer tüm şeyleri temsil etmez ve evin yönü onu diğer planlara göre ayıran şeydir.
Ancak, bir evin bir planı, içinde durabileceğiniz ahşap ve alçıpandan yapılmış gerçek bir ev ile aynı değildir. Plan ve gerçek ev arasındaki farkın anlamlı olduğu bağlamlar vardır. Plan ile teslim edilebilir arasında bir fark vardır.
Derlenmiş bir dilde bir programın kaynak kodu da plana benzer, eğer kütüphaneler, çekirdek modülleri, vb. İle karşılaştırıyorsanız, kaynak kodu ve program kavramsal olarak bir ve aynıdır. Ancak yazılımın nasıl derlendiğine, tasarlandığına ve konuşlandırıldığına bakıyorsanız, ikisi aynı değildir. Yine, plan ve teslim edilebilirler arasında bir fark var.
tl; dr: Bazen bir şeyin ne olduğu ve neyi temsil ettiği aynı şey olarak kabul edilir, ancak diğer zamanlarda değildir.
Kaynak kodu, orijinal kod satırları için genel bir terimdir (insanlar tarafından yazılmıştır). Kaynak olmayan diğer kod türleri çeviri veya başka bir program tarafından oluşturulabilir.
Fikri mülkiyet daha da geniştir ve hem kaynak kodu hem de diğer kod veya verileri içerebilir.
Bir program bütünlüğü bakımından diğer kodlardan (kaynak veya diğer) ayırt edilir. Bir program, çalıştırılabileceği (veya çalıştırılması amaçlanan) yeterince tamamlanmış bir koddur. Tüm kodlar (kaynak veya başka türlü) çalıştırmak için yeterli eksiksizliği temsil etmez. Örneğin, kütüphanelerin diğer kodlarla birleştirilmesi ve başka kodlarla kullanılması amaçlanmıştır ve bu nedenle çalıştırılamayacakları (olmaması gerektiği) için genellikle bir program olarak kabul edilmezler.
Bu bütünlük bazen main
bir işletim sistemi tarafından programın giriş noktası olarak kullanılan bir
Genel olarak, bir program çalışırken buna süreç denir.
Kaynak kodu olan tercih edilen hangi yazılımın bir şekilde insan yazılım geliştiricilerin edilir çalışma . Anlayış, yazılım geliştirmenin sosyal bir süreç olduğudur, yani kaynak kodu sosyal bir kavramdır. Kaynak kodunu bilgisayarlar için değil, çoğunlukla insanlar için geliştirirsiniz (geliştiricileriniz, hatta birkaç ay içinde aynı programda çalışıyorsunuz). C kodlu bir program için, genellikle (her zaman değil) .c
C dosyaları ve .h
başlık dosyalarıdır, ancak Makefile aynı zamanda kaynak kodudur. Ancak bazen, metaprogramming bir programdır: teknikleri kullanılmaktadır üretilmesi daha sonra C kodu ve girişbu jeneratöre kaynak kodu kabul edilir ( bu jeneratörün çıkışı C kodu olsa bile ). İki örnek: sorunları ayrıştırmak için bazı ayrıştırıcı üreteçleri ( GNU bizonu gibi ) kullanabilirsiniz , o zaman bu üretecin giriş dosyası kaynak kodudur. Ya da bazı sqlite veritabanından elde etmek için küçük bir awk ya da gawk betiği yazabilirsiniz . bu veritabanı kaynak kodu içerir!.y
enum
Buna karşılık bir bilgisayar programı , onu çalıştıran bilgisayarla ilgilidir. Genellikle elde edilir derleme bazı kaynak kodunu (bazı yazılı programlama dili ve bunlar teknik özellikleri , teknik dokümanlarda İngilizce yazılmış Görüşürüz n1570 taslağını C11 ! - değil yazılım araçları) bir ikili haline yürütülebilir .
Özgür yazılım hakkında da okuyun . Mevcut ücretsiz yazılım projelerinin kaynak koduna dalın ( bazılarını bulmak için github veya sourceforge'a bakınız ).