Programlama dili; Bilgisayar bilimleri dâhilinde bir bilgisayarın programlanması için geliştirilen bir dildir. Bilgisayar aslında sadece donanımsal yapıdan oluşan bir elektronik cihazdır. Bilgisayarın içerisinde manyetik etki alanı tutabilen bazı donanımsal yapılar vardır ( sabit disk ). İlgili manyetik etki alanı tutabilen donanımsal yapılara, dış ortamdan manyetik alan atanabilir veya silinebilir. Bunlar tamamen elektriksel sinyaller ile gerçekleştirilir.
Manyetik etki alanlarını küçük elektrik sinyallerine dönüştüren ve bilgisayar için anlamlı bir yapıda sisteme gönderen bilgisayar içindeki çevre birimleri, manyetik alanlardan anlamlı bazı çatılar oluşturur. Bu işlemleri gerçekleştiren çeşitli donanımsal yapılar bilgisayar içerisinde mevcuttur. Aslında bilgisayarın ne yapması gerektiğini bu manyetik alanlar belirler. Her şey bu manyetik alanların nasıl doldurulduğu ile ilgilidir. İşte bu noktada ortaya yazılım dilleri çıkar.
Bilgisayarları nasıl bir manyetik alanla doldurursak, ilgili manyetik alan yığdığımız noktaya gelindiğinde yığını nasıl anlarsa o şekilde yürütecektir.
Kullanmış olduğumuz programlama dilinde yazmış olduğumuz komutun ilgili donanım kaynağında bir karşılığı bulunur. Aslında yazılım olarak yaptığımız tek şey donanım kaynaklarını kullanmaktır. Ancak yazılımcıların çoğu bunu fark etmez çünkü yazılım kendi içerisinde iki ana gruba ayrılır. Bunlardan birincisi İşletim Sistemleri ve ikincisi Uygulama Yazılımlarıdır. İşletim sistemler donanıma en temelden erişen yazılımlardır, Windows ve Linux gibi. En temelden donanım kaynaklarını kullanmak çok zordur. Bizim yapacağımız ve birçoğunun yaptığı şey kurulu bir platform üzerinde uygulamalar geliştirmektir, yani uygulama yazılımı geliştirmektir.
İşletim sistemleri donanım kaynaklarına uyumlu olmak zorundadır, nasıl ki uyumlu olmayan bir parça taktığınız zaman ilgili donanımı tanıması için bir sürücü yazılımı yüklemeniz gerekiyorsa, aynı şekilde işletim sisteminin de donanım kaynaklarına erişebilmesi ve yönetebilmesi gerekir. Bir işletim sisteminin kalitesi, donanım kaynaklarını ne kadar performanslı ve verimli yönetebildiğine bağlıdır.
Aynı şartlar altında bir uygulama yazılımı da işletim sistemine uyumlu olmak zorundadır. Eğer işletim sistemine uyumlu olmayan bir uygulama yazılımı geliştirirseniz, yazılımınız ilgili işletim sisteminde çalışmayacaktır.
Programlama dilleri ise bilgisayar içerisinde az önce bahsi geçen süreci kolaylaştıran bir tekniktir. Bilgisayar içerisindeki komutları bazı terimlerle isimlendirerek bir söz dizimi yaratılmıştır. Kendi içerisinde bir dil gibidir, kuralları, yazım sitili, işaretleri ve sıralamaları vardır. Yazılım dilleri sayesinde bilgisayara yapmasını istediğimiz bir işi satırlarca işlemler gerçekleştirerek değil de sadece tek bir komut uygulayarak da gerçekleştirebiliriz. Programlama dilleri, donanım ile insan arasında, programlama açısından bir köprü görevi üstlenir.
Programlama dillerinin kalitesi; kullanışlı, kolay ve en önemlisi problemi olabildiğince basit çözebilme yeteneğine bağlıdır. Problem büyüdükçe karmaşıklaşmamalıdır.