Terminoloji - kaynak kodu bir program mı? [kapalı]


10

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?


1
Evet, kaynak kodu bir program olarak kabul edilir. Programlar, "kaynak kodu", "nesne kodu", "makine kodu" ve "yürütülebilir kod" gibi, içerdikleri kod türüne göre ayırt edilebilir.
Robert Harvey

6
Bu soru bana "Sığır inek mi?" hemen hemen aynı nedenlerden dolayı.
RM

1
Un ve şeker bir pasta mı?
Bryan Oakley

Yanıtlar:


16

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.


1
Cevabınız için teşekkür ederim. Doğru anlarsam, kaynak kodu bir programdır, çünkü bir bilgisayar tarafından yürütüldüğünde bir görevi gerçekleştiren bir talimatlar grubunu tanımlar. Ancak bu talimatlar sonunda CPU tarafından yürütülen talimatlar olmasa bile, CPU, üst düzey bir dilde tanımlanan talimatların çevirileri olan talimatları yürütür?
Othman

7

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 ...


1

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.


0

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 mainbir işletim sistemi tarafından programın giriş noktası olarak kullanılan bir

Genel olarak, bir program çalışırken buna süreç denir.


1
Lütfen "fikri mülkiyet" ten söz etmeyin, çünkü bu kasten insanları şaşırtmak anlamına gelir.
whatsisname

0

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) .cC dosyaları ve .hbaş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!.yenum

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 ).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.