Man kan rent praktisk dele programmeringsspråkene inn to hovedgrupper ut i fra hvordan de brukes. Se også video.
A. Tolkede språk.
Disse krever en «programtolk» installert på maskinen for å kunne kjøres. For de tolkede språkene så vil det være nødvendig å distribuere kildekoden fra maskin til maskin, hvis man ønsker å kjøre koden på flere maskiner. På den annen side så blir «tolkede språk» plattformuavhengig, ved at man kan forskjellige programtolker tilpasset de ulike operativsystem og plattformer.
Eksempler på tolkede språk er Python, PHP og Java-script.
Tolkede språk kjører forholdsvis langsomt. De kan også kjøres linje for linje, dvs en og en linje, slik at de er godt egnet i de tilfeller at vi ønsker å eksperimentere med en programkode.
B. Kompilerte språk.
For kompilerte språk så behøver vi en kompilator som oversetter kildekoden til maskinkode før vi kan kjøre den på en «plattform» eller i et operativsystem. Etter at vi har kompilert kildekoden over på maskinkode til en bestemt plattform, så er det bare mulig å kjøre denne maskinkoden på en bestemt plattform, for eksempel Windows, Linux eller Mac.
Det kan ellers være mulig å kompilere kildekoden over til forskjellige plattformer og forskjellige operativsystem. Den samme kildekoden kan for eksempel kompileres til Windows og til Mac.
Eksempler på kompilerte språk er C og C++. Disse er kjent for å kjøre svært hurtig, når de er kompilert over til maskinkode. Koden består bare av «maskinkode» og den kan sånn sett ikke leses av mennesker. Hvis man skal gjennomføre endringer i koden, så må man redigere i «kildekoden» og så kompilere på nytt.
C. Java virtual maskin.
En tredje variant som ble innført i forbindelse med programmeringsspråket Java, det er det som man kalte for en «virtual maskin». Dette utgjør en slags mellomting mellom et tolket språk og et kompilert språk.
For Java så bruker man en kompilator, men man oversetter ikke koden hele veien til maskinkode. Man gjennomfører i stedet en «oversettelse til delvis maskinkode», til noe man kaller for «bytecode», slik at den kan kjøres på en maskin som har installert en «Java Virtual Machine». Ved å ha «Java Virtual Machine» for forskjellige plattformer, så oppnås til en viss grad en plattformuavhengighet.
Java representerer således en slags mellomting mellom et kompilert og et tolket språk. Man oppnår plattformuavhengighet, men det er ikke nødvendig å distribuere kildekoden.
I ettertid så har det kommet til flere andre programmeringsspråk og kompilatorer som fungerer på noenlunde samme måte, for eksempel Microsoft Visual Basic og C#.