close

Bilgisayar programı

Navigasyona git Aramaya git
Image
Nesne yönelimli bir tarzda yazılmış bir bilgisayar programı

Bir bilgisayar programı veya bilgisayar programı , bilgisayarda belirli bir görevi gerçekleştirmek için yazılmış bir dizi talimattır . [ 1 ] Bu aygıt, programların tipik olarak merkezi bir işlemcide program talimatlarını yürüterek çalışmasını gerektirir . [ 2 ] Program, talimatları yürütmek için doğrudan bilgisayar tarafından kullanılabilen yürütülebilir bir biçimdedir. Yürütülebilir (örneğin derlenmiş ) programların türetildiği, insan tarafından okunabilir kaynak kodu biçimindeki aynı program, bir programcının algoritmalarını incelemesine ve geliştirmesine olanak tanır . Bilgisayar programları ve ilgili verilerden oluşan bir koleksiyon, yazılım olarak bilinir .

Kaynak kodu genellikle bilgisayar programcıları olarak bilinen profesyoneller tarafından yazılır . [ 3 ] Bu kod, iki paradigmadan birini izleyen bir programlama dilinde yazılmıştır : zorunlu veya bildirimsel ve daha sonra bir derleyici tarafından yürütülebilir bir dosyaya (genellikle yürütülebilir bir program veya ikili olarak adlandırılır) dönüştürülebilir ve daha sonra bir merkezi işlem birimi . Öte yandan, bilgisayar programları bir yorumlayıcı yardımıyla çalıştırılabilir veya doğrudan donanıma gömülebilir .

Bilgisayar programları işlevlerine göre sistem yazılımı ve uygulama yazılımı olarak ikiye ayrılır . 2015 bilgisayarlarında, birden çok programı aynı anda ve verimli bir şekilde çalıştırmak, çoklu görev olarak bilinir .

Programlama

#include <stdio.h> 
#include <cone.h> 

int ana ( boşluk ) {  
    printf ( "Merhaba Dünya! \n " );
    al ();
    0 döndür ; 
}
C programlama dilinde yazılmış Hello World programının kaynak kodu
public  class  HelloWorld  { 
    public  static  void  main ( String []  args ){ 
        System . dışarı . println ( "Merhaba Dünya!" ); 
    } 
}
Java programlama dilinde yazılmış Hello World programının kaynak kodu
 Sistem kullanarak ;

class  Program  { 
    static  void  Main ( string []  args )  { 
        Konsol . WriteLine ( "Merhaba Dünya!" ); 
    } 
}
C# programlama dilinde yazılmış Hello world programının kaynak kodu

Bilgisayar programlama , kaynak kodu yazmanın veya düzenlemenin yinelemeli sürecidir . Bu tür düzenleme, ortaklaşa geliştirilen bir program durumunda, test etmeyi, analiz etmeyi ve iyileştirmeyi ve bazen diğer programcılarla koordine etmeyi içerir. Bu tekniği uygulayan kişi, bilgisayar programcısı , yazılım geliştiricisi veya kodlayıcı olarak bilinir. Bazen uzun vadeli bilgisayar programlama sürecine genellikle yazılım geliştirme denir . Yazılım mühendisliği terimi , bu faaliyet bir mühendislik disiplini olarak görüldüğü için çok popüler hale geliyor .

Paradigmalar

Bilgisayar programları, onları üretmek için kullanılan programlama dilinin paradigmasına göre sınıflandırılabilir . Ana paradigmalardan ikisi zorunlu ve bildirimseldir.

Zorunlu bir dille yazılmış programlar , ifadeler, ifadeler ve raporlar kullanarak bir algoritma belirtir. [ 4 ]​ Bir bildirim, bir değişken adını bir veri türüyle ilişkilendirir. Örneğin: var x: integer; . Bir ifade bir değer üretir. Örneğin: 2 + 2 4 üretir. Son olarak, bir ifade bir değişkene bir ifade atayabilir veya programın kontrol yapılarını değiştirmek için bir değişkenin değerini kullanabilir . Örneğin: x := 2 + 2; if x = 4 then hacer_algo();Zorunlu dillerin bir eleştirisi, bir atama ifadesinin yerel olmayan değişkenler adı verilen bir değişken sınıfı üzerindeki yan etkisidir . [ 5 ]

Bildirimsel bir dilde yazılmış programlar, çıktı için sahip oldukları veya taşıması gereken özellikleri belirtir. Yürütme makinesinin kontrol akışı açısından ifade edilen ayrıntıları belirtmezler, ancak bildirilen nesneler ve özellikleri arasındaki matematiksel ilişkileri belirtirler. İşlevsel ve mantıksal diller , iki geniş bildirimsel dil kategorisidir. İşlevsel dillerin ( Haskell gibi) arkasındaki ilke , yan etkilere izin vermemektir , bu da programlar hakkında matematiksel işlevlermiş gibi akıl yürütmeyi kolaylaştırır. [ 5 ] Mantık dillerinin ( Prolog gibi ) arkasındaki ilke, çözülmesi gereken sorunu - hedefi - tanımlamak ve ayrıntılı çözümü Prolog sisteminin kendisine bırakmaktır. [ 6 ]​ Hedef, alt hedeflerin listesi sağlanarak tanımlanır. Ardından, her bir alt hedef, alt hedeflerinin listesi vb. sağlanarak yukarıda tanımlanır. Alt hedef yolu bir çözüm bulamazsa, o alt hedef geriye doğru izlenir ve sistematik olarak başka bir yol denenir.

Programın oluşturulma şekli metinsel veya görsel olabilir. Bir görsel dil programında , öğeler metinsel olarak belirtilmek yerine grafiksel olarak işlenir.

Derlenmiş veya yorumlanmış

İnsan tarafından okunabilen bir bilgisayar programlama dili biçimindeki bir bilgisayar programına kaynak kodu denir . Bu tür kaynak kodu, bir derleyici tarafından yürütülebilir bir görüntüye dönüştürülebilir veya bir yorumlayıcı yardımıyla hemen çalıştırılabilir .

Derlenmiş veya yorumlanmış programlardan herhangi biri, insan müdahalesi olmadan toplu işlemde çalıştırılabilir , ancak yorumlanmış programlar, kullanıcının etkileşimli bir oturumda komut yazmasına izin verir . Bu durumda programlar, yürütülmesi sırayla ve dolayısıyla aynı anda gerçekleşen ayrı komutlardır. Bir yazılım uygulamasına ( Unix kabuğu veya başka bir komut satırı arabirimi gibi) komut vermek için bir dil kullanıldığında , buna betik dili denir .

Derleyiciler, bir programlama dilinin kaynak kodunu nesne koduna veya makine koduna çevirmek için kullanılır . [ 7 ] Nesne nesne kodunun makine kodu haline gelmesi için ek işleme ihtiyacı vardır ve makine kodu, yürütmeye hazır merkezi işlem biriminin yerel kodudur . Derlenmiş bilgisayar programları genellikle yürütülebilir dosyalar, ikili görüntüler veya yalnızca ikili dosyalar olarak bilinir; bu, yürütülebilir kodu depolamak için kullanılan ikili dosya biçimine atıfta bulunur .

Bir toplu iş veya etkileşimli oturumda yorumlanan bilgisayar programlarının ya kodu çözülür ve ardından hemen yürütülür ya da gelecekteki yürütme için bazı verimli ara temsillere dönüştürülür. BASIC , Perl ve Python , anında yürütülen bilgisayar programlarına örnektir. Öte yandan, Java bilgisayar programları önceden derlenir ve bytecode adı verilen makineden bağımsız kod olarak saklanır . Bu bayt kodu daha sonra sanal makine adı verilen bir yorumlayıcının isteği üzerine yürütülür .

Tercümanların ana dezavantajı, bilgisayar programlarının derlendikleri zamandan daha yavaş çalışmasıdır. Kodu yorumlamak, derlenmiş sürümü çalıştırmaktan daha yavaştır, çünkü yorumlayıcının her yüklendiğinde her ifadenin kodunu çözmesi ve ardından istenen eylemi gerçekleştirmesi gerekir. Ancak, bir yorumlayıcı kullanılarak yazılım geliştirme daha hızlı olabilir, çünkü derleme adımı atlandığında test hemen gerçekleşir. Tercümanların diğer bir dezavantajı, bilgisayar programının yürütülmesi sırasında bilgisayarda en az birinin bulunması gerektiğidir. Buna karşılık, derlenmiş bilgisayar programlarının yürütme sırasında bir derleyiciye ihtiyacı yoktur.

Bir programlama dilinin özellikleri özel olarak derleniyorsa veya özel olarak yorumlanıyorsa gerekli değildir. Genel olarak, sınıflandırma, dili yürütmenin en popüler yöntemini yansıtır. Örneğin, BASIC derleyicileri ve C yorumlayıcılarının varlığına rağmen BASIC yorumlanmış bir dil ve C derlenmiş bir dil olarak kabul edilir.Bazı sistemler çalışma zamanı (JIT) derlemesini kullanır , bu sayede kaynağın bölümleri 'anında' derlenir ve için depolanır. sonraki infazlar.

Kendilerini değiştiren programlar

Çalışan bir bilgisayar programı normalde çalıştığı verilerden farklı bir şey olarak değerlendirilir . Bununla birlikte, bazı durumlarda, özellikle bir program kendini değiştirdiğinde, bu ayrım belirsizdir. Değiştirilen program, aynı programın parçası olarak sırayla yürütülür. Makine kodu , montaj dili , Lisp , d , COlOL , PL/9 ve Prolog ve JavaScript (değerlendirme işlevi) ile yazılmış programlar söz konusu olduğunda, diğerlerinin yanı sıra kendini değiştiren koda sahip olmak mümkündür.

Programları çalıştırma ve kaydetme

Tipik olarak, programlar kalıcı bellekte (örneğin bir disk) saklanır, böylece bilgisayar kullanıcısı doğrudan veya dolaylı olarak bunların yürütülmesini ister. Böyle bir istek anında program, işlemciye doğrudan erişebilen işletim sistemi adı verilen yazılımın kontrolü altında bilgisayarın rastgele erişimli belleğine veya RAM'ine yüklenir . İşlemci programı çalıştırır (çalışır), tamamlanıncaya kadar talimat ile talimat verir. Çalışan bir programa genellikle süreç de denir . Bir program normal olarak veya bir hata nedeniyle çalışmasını sonlandırabilir, bu hata yazılım veya donanım olabilir .

Donanıma gömülü programlar

Image
USB çubuğunun sağındaki mikro denetleyici , yerleşik bellenim tarafından kontrol edilir

Bazı programlar donanıma gömülüdür . Depolanmış program mimarisine sahip bir bilgisayar, önyükleme yapmak için ROM'unda depolanmış bir başlangıç ​​programı gerektirir . Önyükleme işlemi, işlemci kayıtları , aygıt sürücülerinden RAM içeriğine kadar sistemin tüm yönlerini tanımlamak ve başlatmaktır . [ 8 ]​ Başlatma işleminin ardından, bu ilk program işletim sistemini yükler ve normal işlemlere başlamak için program sayacını başlatır . Bilgisayardan bağımsız olarak, bir donanım aygıtı , işlemlerini denetlemek için yerleşik bellenime sahip olabilir . Bellenim, programın nadiren değişmesi veya hiç değişmesi beklenmediğinde veya güç olmadığında programın kaybolmaması gerektiğinde kullanılır. [ 9 ]

Manuel olarak yüklenen programlar

Image
Data General Nova 3'te manuel şarj için anahtarlar

Geçmişte, programlar anahtarlar aracılığıyla merkezi işlemciye manuel olarak yüklenirdi. Bir talimat, açık veya kapalı bir anahtar durumu ayarıyla temsil edildi. Yapılandırmayı ayarladıktan sonra, bir çalıştırma düğmesi yürütüldü. Bu süreç tekrarlayıcıydı. Benzer şekilde, programlar kağıt bant veya delikli kartlar kullanılarak manuel olarak yüklendi . Program yüklendikten sonra anahtarlar kullanılarak başlangıç ​​adresi belirlendi ve çalıştır düğmesine basıldı. [ 10 ]

Otomatik olarak oluşturulan programlar

Makine programlama , programcı üretkenliğini artırmak için genel sınıfları , prototipleri , şablonları, dış görünümleri ve kod oluşturucuları kullanarak kaynak kodu oluşturan bir programlama stilidir . Kaynak kodu, şablon oluşturucu veya IDE gibi programlama araçlarıyla oluşturulur . Bir kaynak kodu oluşturucunun en basit biçimi, kaynak kod kalıplarını nispeten basit kurallara göre değiştiren C önişlemcisi gibi bir makro işlemcidir.

Bir yazılım motoru, aynı anda başka bir bilgi işlem sürecine girdi haline gelen kaynak kodu veya biçimlendirme dili çıkarır . Makine kodunun yakıt olarak yakılmasıyla bir işlemin diğerini sürmesi benzetmesini düşünebiliriz. Uygulama sunucuları , uygulamaları istemci bilgisayarlara teslim eden yazılım motorlarıdır . Örneğin wiki yazılımı , kullanıcıların makalelerden derlenmiş dinamik içerik geliştirmesine olanak tanıyan bir sunucu uygulamasıdır . Wikiler , bir web tarayıcısı tarafından yorumlanan HTML , CSS , Java ve JavaScript üretir .

Eşzamanlı yürütme

Birçok program aynı bilgisayarda aynı anda çalışabilir ; bu, yazılım veya donanım mekanizmaları aracılığıyla gerçekleştirilebilen çoklu görev olarak bilinen bir gerçektir . Modern işletim sistemleri, işlemcideki işlemlerin sayısını sık sık değiştirmek için bir yazılım mekanizması olan işlem zamanlayıcı aracılığıyla birden çok programı çalıştırabilir , böylece kullanıcılar çalışırken her programla etkileşim kurabilir. [ 11 ] Çoklu görev, donanım aracılığıyla da gerçekleştirilebilir; birden çok işlemci veya birden çok çekirdekli işlemci kullanan modern bilgisayarlar aynı anda birçok programı çalıştırabilir. [ 12 ]

İşlevsel kategoriler

Programlar, işlevsel kriterler uygulanarak kategorize edilebilir. Bu işlevsel kategoriler, sistem yazılımı ve uygulama yazılımıdır . Sistem yazılımı , donanımı uygulama yazılımıyla birleştiren işletim sistemini içerir . [ 13 ] İşletim sisteminin amacı, uygulama yazılımlarının uygun ve verimli bir şekilde çalıştığı bir ortam sağlamaktır. [ 13 ] Sistem yazılımı , işletim sistemine ek olarak, bilgisayarı yönetmeye ve yapılandırmaya yardımcı olan yardımcı programları içerir . Bir program sistem yazılımı değilse, o zaman uygulama yazılımıdır . Ara yazılım aynı zamanda sistem yazılımını kullanıcı arayüzü ile birleştiren uygulama yazılımıdır . Kullanıcıların sıralama ihtiyacı gibi uygulama sorunlarını çözmelerine yardımcı olan yardımcı programlar da uygulama yazılımlarıdır .

Ayrıca

Referanslar

  1. Merdiven, Ralph M., et al . (2003). Bilgi Sistemlerinin İlkeleri, Altıncı Baskı . Thomson Learning, Inc. s. 132. ISBN  0-619-06489-7 . 
  2. Silberschatz, Abraham (1994). İşletim Sistemi Kavramları, Dördüncü Baskı . Addison-Wesley. p. 58. ISBN  0-201-50480-4 . 
  3. ^ "Algoritmalar ve Bilgisayar Programlama " . Erişim tarihi: 8 Eylül 2014 . 
  4. ^ Wilson, Leslie B. (1993). Karşılaştırmalı Programlama Dilleri, İkinci Baskı . Addison-Wesley. p. 75. ISBN  0-201-56885-3 . 
  5. ^ a b Wilson, Leslie B. (1993). Karşılaştırmalı Programlama Dilleri, İkinci Baskı . Addison-Wesley. p. 213. ISBN  0-201-56885-3 . 
  6. ^ Wilson, Leslie B. (1993). Karşılaştırmalı Programlama Dilleri, İkinci Baskı . Addison-Wesley. p. 244. ISBN  0-201-56885-3 . 
  7. "Derleyici Nedir?" (İngilizce olarak) . Erişim tarihi: 10 Ocak 2012 . 
  8. Silberschatz, Abraham (1994). İşletim Sistemi Kavramları, Dördüncü Baskı . Addison-Wesley. p. 30. ISBN  0-201-50480-4 . 
  9. Tanenbaum, Andrew S. (1990). Yapılandırılmış Bilgisayar Organizasyonu, Üçüncü Baskı . Prentice Salonu. p. 11. ISBN  0-13-854662-2 .  (İngilizcede).
  10. Silberschatz, Abraham (1994). İşletim Sistemi Kavramları, Dördüncü Baskı . Addison-Wesley. p. 6. ISBN  0-201-50480-4 . 
  11. Silberschatz, Abraham (1994). İşletim Sistemi Kavramları, Dördüncü Baskı . Addison-Wesley. p. 100. ISBN  0-201-50480-4 . 
  12. ^ Akhter, Shameem (2006). Çok Çekirdekli Programlama . Richard Bowles (Intel Press). s. 11-13. ISBN  0-9764832-4-6 .  .
  13. ^ a b Silberschatz, Abraham (1994). İşletim Sistemi Kavramları, Dördüncü Baskı . Addison-Wesley. p. 1.ISBN 0-201-50480-4  ._ _ 

Bibliyografya

  • Knuth, Donald E. ( 1997 ). Bilgisayar Programlama Sanatı, Cilt 1, 3. Baskı . Boston: Addison-Wesley. ISBN  0-201-89683-4 . 
  • Knuth, Donald E. ( 1997 ). Bilgisayar Programlama Sanatı, Cilt 2 , 3. Baskı . Boston: Addison-Wesley. ISBN  0-201-89684-2 . 
  • Knuth, Donald E. ( 1997 ). Bilgisayar Programlama Sanatı, Cilt 3 , 3. Baskı . Boston: Addison-Wesley. ISBN  0-201-89685-0 . 

Dış bağlantılar