Yazılım, en genel anlamıyla, bir bilgisayara belirli görevleri yapması için talimat veren bir dizi talimat veya programdır. Yazılım, bilgisayar programlarını tanımlamak için kullanılan genel bir terimdir. Komut dosyaları, uygulamalar, programlar ve bir dizi talimat, genellikle yazılımı tanımlamak için kullanılan terimlerdir.

Yazılım teorisi ilk olarak 1935 yılında Alan Turing tarafından “Entscheidungsproblem’e başvuru ile hesaplanabilir sayılar” makalesinde önerilmiştir. Bununla birlikte, yazılım kelimesi elektronik hesap makinelerinin programlarını tartıştığı Amerikan Matematik Aylığı’nın 1958 sayısında matematikçi ve istatistikçi John Tukey tarafından icat edildi.

Yazılım genellikle üç kategoriye ayrılır:

Sistem yazılımı, uygulama yazılımı için bir temel görevi görür. Sistem yazılımı, aygıt sürücülerini, işletim sistemlerini (OS), derleyicileri, disk biçimlendiricileri, metin düzenleyicileri ve bilgisayarın daha verimli çalışmasına yardımcı olan yardımcı programları içerir. Ayrıca, donanım bileşenlerinin yönetilmesinden ve göreve özgü olmayan temel işlevlerin sağlanmasından da sorumludur. Sistem yazılımı genellikle C programlama dilinde yazılır.

Programlama yazılımı, geliştiricilere program yazmada yardımcı olacak bir dizi araçtır. Mevcut çeşitli araçlar derleyiciler, bağlayıcılar, hata ayıklayıcılar, tercümanlar ve metin editörleridir.

Uygulama yazılımı belirli görevleri yerine getirmeyi amaçlamaktadır. Uygulama yazılımlarına örnek olarak ofis paketleri, oyun uygulamaları, veritabanı sistemleri ve eğitim yazılımları verilebilir. Uygulama yazılımı tek bir program veya küçük programlardan oluşan bir koleksiyon olabilir. Bu tür yazılımlar tüketicilerin en çok “yazılım” olarak düşündükleri yazılımdır.