Yazılım - Software

Nasıl olduğunu gösteren bir şema kullanıcı Ile etkileşim kurar Uygulama yazılımı tipik olarak masaüstü bilgisayar. Uygulama yazılımı katmanı, işletim sistemi ile iletişim kurar donanım. Oklar bilgi akışını gösterir.

Yazılım bir koleksiyon veri veya bilgisayar bilgisayara nasıl çalışacağını söyleyen talimatlar. Bu, zıttır fiziksel donanım sistemin inşa edildiği ve aslında işi gerçekleştirdiği yer. İçinde bilgisayar Bilimi ve yazılım Mühendisliği bilgisayar yazılımı hepsi bilgi tarafından işlendi bilgisayar sistemleri, programları ve veri. Bilgisayar yazılımı şunları içerir: bilgisayar programları, kütüphaneler ve ilgili yürütülemez veri, gibi çevrimiçi belgeler veya dijital medya. Bilgisayar donanımı ve yazılımı birbirini gerektirir ve hiçbiri kendi başına gerçekçi bir şekilde kullanılamaz.

En düşük programlama seviyesinde,[açıklama gerekli ] çalıştırılabilir kod içerir makine dili bir birey tarafından desteklenen talimatlar işlemci - tipik olarak a Merkezi işlem birimi (CPU) veya a Grafik İşleme Ünitesi (GPU). Bir makine dili aşağıdaki gruplardan oluşur: ikili değerler gösteren işlemci talimatları bilgisayarın durumunu önceki durumundan değiştiren. Örneğin, bir talimat bilgisayardaki belirli bir depolama konumunda depolanan değeri değiştirebilir - bu, kullanıcı tarafından doğrudan gözlemlenemeyen bir etki. Bir talimat ayrıca çağırabilir çoğundan biri giriş veya çıkış işlemleri örneğin bir bilgisayar ekranında bazı metinlerin görüntülenmesi; görünür olması gereken durum değişikliklerine neden oluyor kullanıcı. İşlemci yürütür talimat verilmedikçe verildikleri sırayla farklı bir talimata "atla" veya kesildi işletim sistemi tarafından. 2015 itibariyle, çoğu kişisel bilgisayarlar, akıllı telefon cihazlar ve sunucular Sahip olmak birden çok yürütme birimine sahip işlemciler veya hesaplama yapan birden çok işlemci birlikte ve bilgi işlem çok daha fazlası eşzamanlı geçmişte olduğundan daha fazla aktivite.

Yazılımın çoğu şu dilde yazılmıştır: üst düzey programlama dilleri. Programcılar için daha kolay ve daha etkilidirler çünkü doğal diller makine dillerinden daha fazla.[1] Üst düzey diller, bir derleyici veya bir çevirmen veya ikisinin bir kombinasyonu. Yazılım ayrıca düşük düzeyde yazılabilir montaj dili, bilgisayarın makine dili talimatlarına güçlü bir şekilde karşılık gelen ve bir montajcı.

Tarih

Bir taslak (algoritma ) ilk yazılım parçası ne olurdu diye Ada Lovelace 19. yüzyılda planlanan Analitik Motor.[2] O yarattı kanıtlar motorun nasıl hesaplayacağını göstermek için Bernoulli Numaraları.[2] İspatlar ve algoritma nedeniyle ilk bilgisayar programcısı olarak kabul edilir.[3][4]

Yazılımla ilgili ilk teori - bugün bildiğimiz bilgisayarların yaratılmasından önce - tarafından önerildi Alan Turing 1935 tarihli makalesinde Hesaplanabilir Sayılar Üzerine, Entscheidungsproblem Uygulaması ile (karar sorunu).

Bu, nihayetinde akademik alanların yaratılmasına yol açtı. bilgisayar Bilimi ve yazılım Mühendisliği; Her iki alan da yazılımı ve yaratılışını inceler. Bilgisayar bilimi, bilgisayar ve yazılımın teorik çalışmasıdır (Turing'in makalesi bilgisayar biliminin bir örneğidir), yazılım mühendisliği ise mühendislik uygulaması ve yazılım geliştirmedir.

Ancak, 1946'dan önce, şimdi anladığımız gibi, yazılım henüz depolanmış program dijital bilgisayarların belleğinde depolanan programlar değildi. İlk elektronik bilgi işlem cihazları, "yeniden programlanmaları" için yeniden kablolanmıştır.

2000 yılında, Yale Hukuk Fakültesi'nde kütüphaneci olan Fred Shapiro, şunları açıklayan bir mektup yayınladı: John Wilder Tukey 1958 tarihli makalesi "Somut Matematik Öğretimi"[5][6] arama sonucunda bulunan "yazılım" teriminin bilinen en eski kullanımını içeriyordu JSTOR elektronik arşivleri, OED 2 yıl öncesine kadar alıntı.[7] Bu, birçok kişinin, özellikle aynı yıl yayınlanan ölüm ilanlarında, terimi türetmekle Tukey'e itibar etmesine yol açtı.[8] Tukey asla böyle bir madeni para için kredi talep etmedi. 1995'te Paul Niquette, iddiasını destekleyen herhangi bir belge bulamamasına rağmen, terimi ilk olarak Ekim 1953'te icat ettiğini iddia etti.[9] "Yazılım" teriminin mühendislik bağlamında bilinen en eski yayını Ağustos 1953'te Richard R. Carhart tarafından Rand Corporation Araştırma Memorandumu.[10]

Türler

Hemen hemen tüm bilgisayar platformlarında, yazılım birkaç geniş kategoriye ayrılabilir.

Amaç veya kullanım alanı

Hedefe bağlı olarak, bilgisayar yazılımı şunlara ayrılabilir:

  • Uygulama yazılımı
    bilgisayar sistemini özel işlevleri yerine getirmek veya sağlamak için kullanan yazılımdır. eğlence fonksiyonları bilgisayarın temel çalışmasının ötesinde. Modern bir bilgisayarla gerçekleştirilebilecek görev yelpazesi çok büyük olduğu için birçok farklı uygulama yazılımı türü vardır - bkz. yazılım listesi.
  • Sistem yazılımı
    yönetmek için yazılım olan bilgisayar donanımı kullanıcıların ihtiyaç duyduğu temel işlevleri sağlamak veya diğer yazılımların düzgün çalışması için davranış. Sistem yazılımı ayrıca uygulama yazılımını çalıştırmak için bir platform sağlamak üzere tasarlanmıştır,[11] ve aşağıdakileri içerir:
    • İşletim sistemleri
      kaynakları yöneten ve bunların "üzerinde" çalışan diğer yazılımlar için ortak hizmetler sağlayan temel yazılım koleksiyonlarıdır. Denetleme programları, önyükleme yükleyicileri, kabuklar ve pencere sistemleri işletim sistemlerinin temel parçalarıdır. Uygulamada, bir işletim sistemi ek yazılımla (uygulama yazılımı dahil) birlikte gelir, böylece bir kullanıcı potansiyel olarak yalnızca bir işletim sistemine sahip bir bilgisayarla bazı işleri yapabilir.
    • Aygıt sürücüleri
      bir bilgisayara bağlı belirli bir cihaz türünü çalıştıran veya kontrol eden. Her aygıtın en az bir karşılık gelen aygıt sürücüsüne ihtiyacı vardır; bir bilgisayar tipik olarak en az bir giriş cihazına ve en az bir çıkış cihazına sahip olduğundan, bir bilgisayar tipik olarak birden fazla cihaz sürücüsüne ihtiyaç duyar.
    • Araçlar
      hangileri bilgisayar programları kullanıcılara bilgisayarlarının bakımı ve bakımı konusunda yardımcı olmak için tasarlanmıştır.
  • Kötü amaçlı yazılım veya kötü amaçlı yazılım
    Bilgisayarlara zarar vermek ve bozmak için geliştirilmiş bir yazılımdır. Bu nedenle, kötü amaçlı yazılım istenmeyen bir durumdur. Kötü amaçlı yazılım, bilgisayarla ilgili suçlarla yakından ilişkilidir, ancak bazı kötü amaçlı programlar şu şekilde tasarlanmış olabilir: pratik şakalar.

Uygulama niteliği veya etki alanı

  • Masaüstü uygulamaları gibi internet tarayıcıları ve Microsoft Office, Hem de akıllı telefon ve tablet uygulamalar ("uygulamalar (Yazılım endüstrisinin bazı bölümlerinde masaüstü uygulamalarını bir dereceye kadar mobil uygulamalarla birleştirmek için bir baskı var. Windows 8, ve sonra Ubuntu Touch, aynı stil uygulama kullanıcı arabiriminin masaüstü bilgisayarlarda, dizüstü bilgisayarlarda ve cep telefonlarında kullanılmasına izin vermeye çalıştı.)
  • JavaScript komut dosyaları, geleneksel olarak gömülü yazılım parçalarıdır internet sayfaları doğrudan içinde çalışan internet tarayıcısı bir web sayfası bir web tarayıcısı eklentisine ihtiyaç duyulmadan yüklendiğinde. Diğer programlama dillerinde yazılmış yazılım, yazılım JavaScript'e çevrilmişse veya bu dili destekleyen bir web tarayıcısı eklentisi yüklüyse web tarayıcısı içinde de çalıştırılabilir; ikincisinin en yaygın örneği ActionScript tarafından desteklenen komut dosyaları Adobe Flash programı Eklenti.
  • Sunucu yazılımı, dahil olmak üzere:
    • Web uygulamaları, genellikle Web sunucusu ve dinamik olarak oluşturulmuş web sayfalarını web tarayıcılarına, örn. PHP, Java, ASP.NET, ya da Sunucuda çalışan JavaScript. Modern zamanlarda bunlar genellikle web tarayıcısında çalıştırılacak bazı JavaScript'leri de içerir; bu durumda genellikle kısmen sunucuda, kısmen web tarayıcısında çalışırlar.
  • Eklentiler ve uzantılar, başka bir yazılım parçasının işlevselliğini genişleten veya değiştiren ve bu yazılımın işlev görmesi için kullanılmasını gerektiren yazılımlardır;
  • Gömülü yazılım olarak bulunur aygıt yazılımı içinde gömülü sistemler, tek bir kullanıma veya birkaç kullanıma ayrılmış cihazlar arabalar ve televizyonlar (kablosuz yonga setleri gibi bazı yerleşik cihazlar kendilerini bilgisayar veya akıllı telefon gibi sıradan, yerleşik olmayan bir bilgisayar sisteminin parçası olabilir).[12] Gömülü sistem bağlamında, bazen sistem yazılımı ile uygulama yazılımı arasında net bir ayrım yoktur. Ancak bazı gömülü sistemler çalışır gömülü işletim sistemleri ve bu sistemler, sistem yazılımı ile uygulama yazılımı arasındaki farkı korur (tipik olarak her zaman çalışan tek bir sabit uygulama olmasına rağmen).
  • Mikro kod işlemciye söyleyen özel, nispeten belirsiz bir gömülü yazılım türüdür kendisi makine kodunun nasıl çalıştırılacağı, dolayısıyla aslında makine kodundan daha düşük bir seviyedir. Tipik olarak işlemci üreticisinin mülkiyetindedir ve gerekli düzeltici mikro kod yazılım güncellemeleri onlar tarafından kullanıcılara sağlanır (bu, yedek işlemci donanımının gönderilmesinden çok daha ucuzdur). Bu nedenle, sıradan bir programcı bununla başa çıkmak zorunda kalmayı asla beklemez.

Programlama araçları

Programlama araçları aynı zamanda programlar veya uygulamalar biçimindeki yazılımlardır. Yazılım geliştiricileri (Ayrıca şöyle bilinirprogramcılar, kodlayıcılar, bilgisayar korsanları veya Yazılım mühendisleri) oluşturmak için kullanın, hata ayıklama, sürdürmek (yani iyileştirme veya düzeltme) veya başka türlü destek yazılım.

Yazılım bir veya daha fazla programlama dilinde yazılmıştır; var olan birçok programlama dili vardır ve her biri en az bir uygulamaya sahiptir ve bunların her biri kendi programlama araçlarından oluşur. Bu araçlar, aşağıdakiler gibi nispeten bağımsız programlar olabilir: derleyiciler, hata ayıklayıcılar, tercümanlar, bağlayıcılar, ve metin editörleri, bir görevi gerçekleştirmek için bir araya getirilebilir; veya bir entegre geliştirme ortamı (IDE), bu tür bağımsız araçların işlevselliğinin çoğunu veya tamamını birleştirir. IDE'ler bunu ya ilgili bireysel araçları çağırarak ya da işlevselliklerini yeni bir şekilde yeniden uygulayarak yapabilir. Bir IDE, belirli bir projedeki dosyalarda arama yapmak gibi belirli görevleri yapmayı kolaylaştırabilir. Çoğu programlama dili uygulaması, hem bireysel araçları hem de bir IDE'yi kullanma seçeneği sunar.

Konular

Mimari

Kullanıcılar genellikle olayları programcılardan farklı görürler. Modern genel amaçlı bilgisayarları kullanan kişiler ( gömülü sistemler, analog bilgisayarlar ve süper bilgisayarlar ) genellikle çeşitli görevleri yerine getiren üç yazılım katmanını görürler: platform, uygulama ve kullanıcı yazılımı.

  • Platform yazılımı
    Platform içerir aygıt yazılımı, aygıt sürücüleri, bir işletim sistemi ve tipik olarak bir grafiksel kullanıcı arayüzü toplamda bir kullanıcının bilgisayarla ve bilgisayarla etkileşim kurmasına izin verir. çevre birimleri (Ilişkili ekipman). Platform yazılımı genellikle bilgisayarla birlikte gelir. Bir PC genellikle platform yazılımını değiştirme yeteneğine sahip olacaktır.
  • Uygulama yazılımı
    Uygulama yazılımı veya Uygulamalar, çoğu insanın yazılımı düşündüğünde düşündüğü şeydir. Tipik örnekler arasında ofis takımları ve video oyunları bulunur. Uygulama yazılımı genellikle bilgisayar donanımından ayrı olarak satın alınır. Bazen uygulamalar bilgisayarla birlikte paketlenmiştir, ancak bu, bağımsız uygulamalar olarak çalıştıkları gerçeğini değiştirmez. Uygulamalar genellikle işletim sisteminden bağımsız programlardır, ancak bunlar genellikle belirli platformlar için uyarlanır. Çoğu kullanıcı derleyicileri, veritabanlarını ve diğer "sistem yazılımlarını" uygulama olarak düşünür.
  • Kullanıcı tarafından yazılan yazılım
    Son kullanıcı geliştirme sistemleri, kullanıcıların özel ihtiyaçlarını karşılayacak şekilde uyarlar. Kullanıcı yazılımı, elektronik tablo şablonlarını ve kelime işlemci şablonlar. E-posta filtreleri bile bir tür kullanıcı yazılımıdır. Kullanıcılar bu yazılımı kendileri oluşturur ve çoğu zaman ne kadar önemli olduğunu gözden kaçırır. Kullanıcı tarafından yazılan yazılımın varsayılan uygulama paketlerine ne kadar yetkin bir şekilde entegre edildiğine bağlı olarak, birçok kullanıcı orijinal paketler arasındaki ayrımın ve iş arkadaşları tarafından eklenenlerin farkında olmayabilir.

Yürütme

Bilgisayar yazılımının bilgisayara "yüklenmesi" gerekir. bilgisayarın deposu (benzeri sabit sürücü veya hafıza ). Yazılım yüklendikten sonra bilgisayar, yürütmek yazılım. Bu geçmeyi içerir Talimatlar -den Uygulama yazılımı sistem yazılımı aracılığıyla, nihayetinde talimatı şu şekilde alan donanıma makine kodu. Her talimat bilgisayarın bir işlem yapmasına neden olur - hareketli veri, yapmak hesaplama veya değiştirerek kontrol akışı talimatlar.

Veri hareketi tipik olarak bellekteki bir yerden diğerine doğrudur. Bazen, CPU'da yüksek hızlı veri erişimi sağlayan bellek ve kayıtlar arasında verilerin taşınmasını içerir. Verilerin, özellikle de büyük miktarların taşınması maliyetli olabilir. Bu nedenle, bazen bunun yerine verilere "işaretçiler" kullanılarak bu önlenebilir. Hesaplamalar, bir değişken veri öğesinin değerini artırmak gibi basit işlemleri içerir. Daha karmaşık hesaplamalar birçok işlemi ve veri unsurunu bir arada içerebilir.

Kalite ve güvenilirlik

Yazılım kalitesi, özellikle ticari ve sistem yazılımı gibi Microsoft Office, Microsoft Windows ve Linux. Yazılım arızalıysa (hatalıysa), bir kişinin çalışmasını silebilir, bilgisayarı çökertebilir ve diğer beklenmedik şeyler yapabilir. Hatalara ve hatalara "böcekler "genellikle alfa ve beta testi sırasında keşfedilir. Yazılım aynı zamanda genellikle yazılım yaşlanması, görünmeyen hataların bir kombinasyonundan kaynaklanan aşamalı performans düşüşü.

Birçok hata keşfedilir ve ortadan kaldırılır (hata ayıklanır) yazılım testi. Ancak, yazılım testi nadiren - eğer varsa - her hatayı ortadan kaldırır; bazı programcılar "her programda en az bir hata daha vardır" (Lubarsky Kanunu) derler.[13] İçinde şelale Yazılım geliştirme yöntemi, tipik olarak ayrı test ekipleri kullanılır, ancak daha yeni yaklaşımlarda toplu olarak adlandırılır Çevik Yazılım Geliştirme geliştiriciler genellikle kendi testlerini yapar ve geri bildirim almak için düzenli olarak kullanıcılara / istemcilere yazılımı gösterir. Yazılım aracılığıyla test edilebilir birim testi, gerileme testi ve test edilecek kod miktarı oldukça büyük olabileceğinden, manuel olarak veya en yaygın olarak otomatik olarak yapılan diğer yöntemler. Örneğin, NASA birçok işletim sistemi ve iletişim işlevi için son derece titiz yazılım test prosedürlerine sahiptir. NASA tabanlı işlemlerin çoğu, komut programları aracılığıyla etkileşimde bulunur ve birbirini tanımlar. Bu, NASA'da çalışan birçok kişinin işlevsel sistemleri genel olarak kontrol etmesini ve değerlendirmesini sağlar. Komut yazılımı içeren programlar, donanım mühendisliği ve sistem işlemlerinin birlikte çok daha kolay çalışmasını sağlar.

Lisans

Yazılımın lisansı, kullanıcıya yazılımı lisanslı ortamda ve aşağıdaki durumlarda kullanma hakkı verir. ücretsiz yazılım lisansları, kopya çıkarma hakkı gibi başka haklar da verir.

Tescilli yazılım iki türe ayrılabilir:

  • ücretsiz yazılım, "ücretsiz deneme" yazılımı veya "ücretsiz "yazılım (geçmişte, terim paylaşılan yazılım genellikle ücretsiz deneme / freemium yazılımı için kullanıldı). Adından da anlaşılacağı gibi, ücretsiz yazılım ücretsiz olarak kullanılabilir, ancak ücretsiz denemeler veya ücretsiz yazılım söz konusu olduğunda, bu bazen yalnızca sınırlı bir süre için veya sınırlı işlevsellikle geçerlidir.
  • genellikle yanlış bir şekilde adlandırılan "ücret karşılığında sunulan yazılım"ticari yazılım ", yasal olarak yalnızca lisans satın alındığında kullanılabilir.

Açık kaynaklı yazılım Öte yandan, bir özgür yazılım lisansı, alıcıya yazılımı değiştirme ve yeniden dağıtma hakları verir.

Patentler

Diğer patent türleri gibi yazılım patentlerinin de teorik olarak bir mucit için özel, zamanla sınırlı bir lisans vermesi beklenir. nasıl uygulanacağına dair ayrıntılı fikir (örneğin bir algoritma) bir yazılım parçası veya bir yazılım parçasının bir bileşeni. Yazılımın yapabileceği faydalı şeyler için fikirler yapmakve kullanıcı Gereksinimler, patentlenebilir olmaması ve somut uygulamaların (yani patenti uygulayan gerçek yazılım paketlerinin) patentlenebilir olması da beklenmemektedir - ikincisi, genellikle otomatik olarak telif hakkı kapsamındadır. Bu nedenle, yazılım patentlerinin, gereksinimler ve somut uygulama arasındaki orta alanı kapsaması beklenir. Bazı ülkelerde, iddia edilen buluşun fiziksel dünya üzerinde bir etkiye sahip olması için bir gereklilik, bir yazılım patentinin geçerli kalması için gerekliliklerin bir parçası olabilir. herşey kullanışlı yazılımın fiziksel dünya üzerinde etkileri vardır, bu gereksinim tartışmaya açık olabilir. Bu arada, Amerikan telif hakkı yasası, yazılım kodunun yazılmasının çeşitli yönlerine uygulandı.[14]

Yazılım patentleri, yazılım endüstrisinde tartışmalıdır ve birçok kişi onlar hakkında farklı görüşlere sahiptir. Tartışmanın kaynaklarından biri, ilk fikirler ile patent arasındaki yukarıda bahsedilen ayrılığın, patent avukatları tarafından uygulamada onurlandırılmamış gibi görünmesidir - örneğin, Boyut Odaklı Programlama (AOP), üzerinde hak iddia ettiği iddia edildi hiç AOP fikrini uygulayan programlama aracı, nasıl uygulanırsa uygulansın. Diğer bir tartışma kaynağı, inovasyon üzerindeki etkidir; pek çok seçkin uzman ve şirket, yazılımın o kadar hızlı hareket eden bir alan olduğunu savunur ki, yazılım patentleri yalnızca büyük ek dava maliyetleri ve riskleri yaratır ve aslında inovasyonu geciktirir. Amerika Birleşik Devletleri dışındaki yazılım patentleriyle ilgili tartışmalarda, büyük Amerikan şirketlerinin ve patent avukatlarının, yazılım patentlerine izin verme veya izin vermeye devam etme olasılığının birincil yararlanıcıları olacağı argümanı ileri sürülmüştür.

Tasarım ve Uygulama

Yazılımın tasarımı ve uygulaması, yazılımın karmaşıklığına bağlı olarak değişir. Örneğin, tasarım ve yaratma Microsoft Word tasarlamaktan ve geliştirmekten çok daha fazla zaman aldı Microsoft Not Defteri çünkü ikincisi çok daha temel işlevselliğe sahiptir.

Yazılım genellikle (kodlanmış / yazılmış / programlanmış) olarak tasarlanır ve oluşturulur. entegre geliştirme ortamları (IDE) beğenmek Tutulma, IntelliJ ve Microsoft Visual Studio bu süreci basitleştirebilir ve derlemek yazılım (varsa). Farklı bir bölümde belirtildiği gibi, yazılım genellikle mevcut yazılımın ve uygulama programlama Arayüzü (API) temel alınan yazılımın sağladığı GTK +, JavaBeans veya Salıncak. Kitaplıklar (API'ler) amaçlarına göre kategorize edilebilir. Örneğin, Bahar Çerçevesi uygulamak için kullanılır kurumsal uygulamalar, Windows Formları kütüphane, aşağıdaki gibi grafik kullanıcı arayüzü (GUI) uygulamalarını tasarlamak için kullanılır. Microsoft Word, ve Windows Communication Foundation tasarlamak için kullanılır Ağ hizmetleri. Bir program tasarlandığında, API'ye dayanır. Örneğin, bir Microsoft Windows masaüstü uygulaması, .AĞ Windows Forms kitaplığı gibi Form1.Close () ve Form1.Show ()[15] uygulamayı kapatmak veya açmak için. Bu API'ler olmadan, programcının bu işlevleri tamamen kendi başına yazması gerekir. Gibi şirketler Oracle ve Microsoft birçok uygulamanın kendi API'lerini kullanarak yazılmasını sağlamak için kendi API'lerini sağlar. yazılım kitaplıkları genellikle çok sayıda API içerir.

Veri yapıları gibi karma tablolar, diziler, ve ikili ağaçlar, ve algoritmalar gibi hızlı sıralama, yazılım oluşturmak için yararlı olabilir.

Bilgisayar yazılımı, tasarımını, yaratılmasını ve dağıtımını diğer birçok ekonomik maldan farklı kılan özel ekonomik özelliklere sahiptir.[belirtmek ][16][17]

Yazılım oluşturan kişiye, programcı, yazılım Mühendisi veya yazılım geliştiricisi, hepsi benzer anlamlara sahip terimler. Programcılar için daha gayri resmi terimler de vardır, örneğin "kodlayıcı" ve "hacker"- ikinci kelimenin kullanılması kafa karışıklığına neden olabilir, çünkü daha çok yasadışı olarak bilgisayar sistemlerine giren biri.

Sanayi ve kuruluşlar

Dünyadaki çok çeşitli yazılım şirketleri ve programcılar bir yazılım endüstrisini oluşturur. Yazılım oldukça karlı bir endüstri olabilir: Bill Gates, kurucu ortağı Microsoft 2009 yılında dünyanın en zengin kişisiydi, büyük ölçüde Microsoft'ta önemli sayıda hisseye sahip olması nedeniyle, Microsoft Windows ve Microsoft Office yazılım ürünleri - kendi ürün kategorilerinde her iki pazar lideri.

Kar amacı gütmeyen yazılım kuruluşları şunları içerir: Özgür Yazılım Vakfı, GNU Projesi ve Mozilla Vakfı. Gibi standart yazılım kuruluşları W3C, IETF gibi önerilen yazılım standartlarını geliştirmek XML, HTTP ve HTML, böylece yazılım bu standartlar aracılığıyla birlikte çalışabilir.

Diğer tanınmış büyük yazılım şirketleri şunlardır: Google, IBM, TCS, Infosys, Wipro, HCL Teknolojileri, Oracle, Novell, SAP, Symantec, Adobe Sistemleri, Yan ticaret ve Corel küçük şirketler genellikle yenilik sağlar.

Ayrıca bakınız

Referanslar

  1. ^ "Derleyici yapısı". Arşivlendi 2 Kasım 2013 tarihinde orjinalinden.
  2. ^ a b Evans 2018, s. 21.
  3. ^ Fuegi, J .; Francis, J. (2003). "Lovelace & Babbage ve 1843 'notlarının oluşturulması'" (PDF). Bilişim Tarihinin Yıllıkları. 25 (4): 16–26. doi:10.1109 / MAHC.2003.1253887. S2CID  40077111.
  4. ^ "Ada Lovelace, Google doodle ile ödüllendirildi". Gardiyan. 10 Aralık 2012. Alındı 25 Kasım 2018.
  5. ^ Tukey, John Wilder (Ocak 1958). "Somut Matematik Öğretimi". American Mathematical Monthly. Taylor ve Francis, Ltd. / Amerika Matematik Derneği. 65 (1): 1–9, 2. doi:10.2307/2310294. ISSN  0002-9890. JSTOR  2310294. KOD AMMYAE. […] Bugün, dikkatlice planlanmış yorumlama rutinlerini, derleyicileri ve otomatik programlamanın diğer yönlerini içeren "yazılım", modern elektronik hesap makinesi için en az tüpler, transistörler, teller, bantlar ve benzerlerinin "donanımı" kadar önemlidir. . […]
  6. ^ Beebe, Nelson H.F. (22 Ağustos 2017). "Bölüm I - Tamsayı aritmetiği". Matematiksel Fonksiyonlu Hesaplama El Kitabı - MathCW Taşınabilir Yazılım Kitaplığını Kullanarak Programlama (1 ed.). Salt Lake City, UT, ABD: Springer International Publishing AG. s. 969, 1035. doi:10.1007/978-3-319-64110-2. ISBN  978-3-319-64109-6. LCCN  2017947446. S2CID  30244721.
  7. ^ Shapiro, Fred (2000). "Yazılım Teriminin Kökeni: JSTOR Elektronik Dergi Arşivinden Kanıtlar" (PDF). IEEE Bilişim Tarihinin Yıllıkları. 22 (2): 69–71. doi:10.1109 / mahc.2000.887997. Arşivlenen orijinal (PDF) 5 Haziran 2003. Alındı 25 Haziran 2013.
  8. ^ Leonhardt, David (28 Temmuz 2000). "John Tukey, 85, İstatistikçi; Kelime 'Yazılımını Oluşturdu'". New York Times. Alındı 24 Eylül 2012.
  9. ^ Niquette, R. Paul (2006), Softword: Word 'Yazılımının Kaynağı, ISBN  1-58922-233-4, arşivlendi 8 Ağustos 2019 tarihinde orjinalinden, alındı 18 Ağustos 2019
  10. ^ Carhart Richard (1953). Elektronik güvenilirlik sorununun mevcut durumuna ilişkin bir araştırma (PDF). Santa Monica, CA: Rand Corporation. s. 69. […] Sec'ten geri çağrılacaktır. 1.6 terim personel üretimden sahada kullanıma kadar donanımla doğrudan temas eden kişileri, yani elektronik ekipmanı monte eden, inceleyen, paketleyen, sevk eden, işleyen, kuran, çalıştıran ve bakımını yapan kişileri içerecek şekilde tanımlanmıştır. Bu aşamaların herhangi birinde personel arızaları, çalışmayan teçhizata neden olabilir. Donanım faktörlerinde olduğu gibi, bu yazılımlarla veya güvenilirlikte insan faktörleriyle ilgili neredeyse hiçbir niceliksel veri yoktur: Personel kaç hataya neden olur, neden oluşur ve hataları gidermek için neler yapılabilir. […]
  11. ^ "Sistem yazılımı". Mississippi Üniversitesi. Arşivlenen orijinal 30 Mayıs 2001.
  12. ^ "Gömülü Yazılım - Teknolojiler ve Trendler". IEEE Bilgisayar Topluluğu. Mayıs-Haziran 2009. Arşivlendi 28 Ekim 2013 tarihinde orjinalinden. Alındı 6 Kasım 2013.
  13. ^ "komut dosyası oluşturma istihbarat kitabı örnekleri". 9 Mayıs 2018. Arşivlendi 6 Kasım 2015 tarihinde orjinalinden.
  14. ^ Gerardo Con Díaz, "Makinedeki Metin: Amerikan Telif Hakkı Yasası ve Yazılımın Pek Çok Doğası, 1974–1978," Teknoloji ve Kültür 57 (Ekim 2016), 753–79.
  15. ^ "MSDN Kitaplığı". Arşivlendi 11 Haziran 2010 tarihinde orjinalinden. Alındı 14 Haziran 2010.
  16. ^ - Engelhardt, Sebastian (2008). "Yazılımın Ekonomik Özellikleri". Jena Ekonomik Araştırma Raporları. 2 (2008–045). Arşivlendi 5 Ocak 2016 tarihinde orjinalinden.
  17. ^ Kaminsky, Dan (1999). "Açık Kaynak Neden Yazılım İçin Optimum Ekonomik Paradigmadır?". Arşivlendi 22 Mayıs 2012 tarihinde orjinalinden.

Kaynaklar

Dış bağlantılar