programlama dilleri bilgisayarımızın asıl anladığı veriler olan 0 ve 1'leri insanın mantıklı bir şekilde yazabilmesi açısından geliştirilmiş komut setleri olarak tanımlanabilir. örnek bir pascal kodu: if a=10 then begin write(a); end; yani eğer a değişkeninin değeri 10 ise a değişkenini ekrana yaz şeklinde açıklayabileceğimiz kod parçasının bilgisayarımız için hiçbir anlamı yoktur aslında. derleyici ile kodumuzu derlediğimizde bu kod parçası bilgisayarın anlayabileceği hale dönüştürülür ve çalıştırılır.
alçak düzeyli ve yüksek düzeyli olmak üzere iki sınır arasında gezerler bunlar. alçak düzeyli dil bilgisayara yakınken yüksek düzeyli diller insana yakındır. ne kadar yüksek düzeyli o kadar iyi diye bir mantık da yoktur. c gibi kıvamında olması daha makbuldür. bir de çok yüksek düzeyli diller vardı. bunlar insanla kankadırlar:
hacı kullanıcıdan bi sayı iste önce;
- evet abi -
şimdi onu ikiyle çarp;
- çarptım -
on ekle;
- ok ekledim -
şimdi karesini al;
- aldım ee? -
çıkan sayı sana girsin azuaauaahahahaha;
- ahahahaah ulan ben de mal gibi yapıyorum ne dediysen -
ehe ehe;
- bu noktalı virgülü de kaldıralım artık istersen -
aile ailedir bunlar. aile içinde bir dili bilen diğerini öğrenmekte zorlanmaz. çünkülüm her aile için belirli bir düşünce tarzına uygun olarak bilgisayara derdinizi anlatmanız gerektirir. bu nedenle de "haha ben c biliyorum hepsini öğrenirim artık,yırttık abicim yırttık" diyen bir insan java görünce "eh biraz değişikmiş bu" der, lisp kodu gördü mü "ne boktan şeymiş lan bu" der, prolog kodu için ise "ne güzel şey bu işaretler falan" şeklinde tepkiler gösterebilir. ha prologu memlekette kim ne yapsın o ayrı.