
Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını istediğini anlatmasının tektipleştirilmiş yoludur. Programlama dilleri, yazılımcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar.

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

Pascal bilgisayar programlama dili pek çok öğrenciye bilgisayar programlamayı öğreten ve çeşitli versiyonları bugün hâlâ yaygın olarak kullanılmaya devam eden en önemli programlama dillerinden biridir. İlk Macintosh işletim sisteminin çoğu ve TeX Pascal ile yazılmıştır.
Fortran, özellikle sayısal hesaplama ve bilimsel hesaplama için uygun olan genel amaçlı, yordamsal, zorunlu programlama dilidir.

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır.
Yapısal programlama, programlama dilleri kullanılarak yazılan, mantıksal bütünlük gösteren bloklara (bölümlere) bölünebilirler. Bu yolla uzun ve karmaşık programların, bloklara ayırarak daha kolay biçimde yazılabilmesi mümkün olmaktadır.

Ada, yapısal, statik tipli, zorunlu, geniş spektrumlu ve nesne yönelimli bir üst düzey bilgisayar programlama dilidir. Pascal ve diğer dillerin genişletilmiş halidir. Gömülü design-by-contract (DbC), güçlü yazımı, açık eşzamanlı, senkronize mesaj geçişi, korunmuş objeli ve belirsiz bir dildir. Ada kod güvenliğini ve sürdürebilirliğini derleyicide hataları bularak geliştirdi.

Yordamsal programlama, yordamların çağrılması mantığına dayanan bir yöntemdir. Fonksiyon, altyordam, altprogram, metot gibi de adlandırılan yordamlar içlerinde hesaplama adımları barındıran program parçacıklarıdır. Tanımlanmış yordamlar program sırasında herhangi bir zamanda çağrılabilirler. Yordamlar diğer yordamların içindende çağrılabilecekleri gibi kendi kendilerini de çağırabilirler.

Makine dili, mikroişlemci ya da mikrodenetleyici gibi komut işleme yeteneğine sahip entegrelerin işleyebilecekleri, yapısına göre değişebilen ama genellikle her biri 8 adet 0-1'den (bit) ibaret komutlardan oluşan dile verilen addır. Her bir komutun mnemonic olarak adlandırılan bir tanımı ve işlem kodu olarak adlandırılan bir sayı karşılığı vardır. Mnemonic'ler, op kodun ne işe yaradığını hatırda tutmaya yarar. Örneğin Z-80 mikroişlemcisinde bir alt yordamı çağırmak için kullanılan komutun mnemonic'i Call NNdir ve program yazarken Call NN mnemonic'inin işlem kodu olan "205" sayısı programa konur. Yani bir makine dili program 205 14 45 195 22 15 gibi ardışık sayılardan, daha doğrusu bu sayıların binary karşılığı olan 0 ve 1'lerden oluşur.

Assembly dili, bir işlemcinin komut kümesi üzerine tanımlanmış alt seviye bir dildir. Assembly dili kolay hatırlanabilir semboller tanımlar ve böylece işlemcinin makina koduna karşılık gelen sayı dizilerinin bilinmesine gerek kalmaz. Assembly dili, platformdan bağımsız yüksek seviyeli programlama dillerinin aksine, işlemci mimarisine bağımlıdır. Tipik uygulamaları; cihaz sürücüleri, alt seviyeli dahili (embedded) ve gerçek zamanlı sistemlerdir. Bır assembly programı assembler kullanılarak makine koduna çevrilir.

Programlama ya da diğer adı ile yazılımlama, bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar, kelimeler, aritmetik işlemlerdir. Diğer bir tanımla programlama, bilgisayar programlarının yazılması, test edilmesi ve bakımının yapılması sürecine verilen isimdir.

Bilgisayar biliminde fonksiyonel programlama programların fonksiyonları uygulayarak ve oluşturarak yapıldığı bir programlama paradigmasıdır.
Mikroişlemcilerde kural dışı durumlar, programların çalıştırılması esnasında verilen komutlar neticesinde oluşan hatalardır. Bu hatalar nedeniyle program istenilen şekilde çalışmaz. Hatta işlemcinin kilitlenmesine bile sebep olabilir. Bu tür durumlar normal bir işleyiş olmadığından kural dışı durum oluşturur.
Uzak yordam çağrısı (ya da uzak prosedür çağrısı; İngilizce: Remote Procedure Call , bir diğer adres uzayı üzerinde programcı açıkça bu uzaktan etkileşim detayları kodlama olmadan çalıştırmak için bir alt yordam veya prosedürü sağlayan bilgisayar programına izin veren süreçler arası iletişim teknolojisidir. Sunucu üzerindeki servisleri kontrol ettiğimizde karşımıza çıkan RPC, arka plânda birçok şeyi gerçekleştiren bir servistir. RPC, temelde istemci ve sunucu arasında yapılan işlemlerin iletişimi için tasarlandı. Bir işlemin gerçekleşmesi için bir gönderici ve bir de istemci vardır.. Yani programcı, alt prosedür ister çalışan programın yerelinde ister uzağında olsun, temelde aynı kodu yazar. Bu bir tür istemci-sunucu etkileşimidir ve tipik olarak bir istek-yanıt mesaj geçirme sistemi aracılığıyla uygulanır. Nesne yönelimli programlama modelinde, RPC'ler uzaktan yöntem çağırma ile temsil edilir. RPC modeli bir konum şeffaflığı seviyesini ifade eder, yani çağrı prosedürleri yerel ya da uzak olsun büyük ölçüde aynıdır, ancak genellikle aynı değildirler, bu nedenle yerel çağrılar uzak çağrılardan ayırt edilebilir. Uzak çağrılar genellikle yerel çağrılardan çok daha yavaş ve daha az güvenilirdir, bu nedenle bunları ayırt etmek önemlidir.
Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmanın bir yoludur. Diller birden fazla paradigma içinde sınıflandırılabilir.
Bilgisayar programı, bilgisayara belirli bir işlemi ya da işlemleri gerçekleştirebilmesi için verilen komut ya da komutlar bütünüdür. Bilgisayar programı genellikle bilgisayar programcısı tarafından bir programlama dili kullanılarak yazılır.
Programlama bilgisayarda, bir altyordam bir birim olarak paketlenmiş belirli bir görevi yerine getiren bir dizi program talimatıdır. Bu birim daha sonra söz konusu görevin yapılması gereken her yerde programlarda kullanılabilir.
Kuantum programlama, bir kuantum bilgisayarda çalışabilen, kuantum programları olarak adlandırılan talimat dizilerini birleştirme işlemidir. Kuantum programlama dilleri, yüksek seviyeli yapılar kullanarak kuantum algoritmalarının ifade edilmesine yardımcı olur.
Bilgisayar biliminde, bildirimsel programlama bir programlama paradigmasıdır. —bilgisayar programlarının yapısını ve öğelerini oluşturma stili— bir hesaplamanın mantığını kontrol akışını tanımlamadan ifade eder.
Tanımsız durum, programlamada bir standartın bir durumu tanımlayamacağı durumlara denmektedir.