Noen ganger må vi bruke assembly (Low-Level Språk, LLL) fordi det er bare ikke noen annen fornuftig måte å fortelle datamaskinen hva den skal gjøre. Gjennom tidene har det vært mange språk for datamaskinen. Ulike typer språk heve forskjellige ting om problemet, og så er flinkere til å beskrive ulike aspekter av løsningen, eller til ulike typer problemer og løsninger. Computer Science er stadig skiftende, så det er kontinuerlige utviklingen av konseptene vi trenger å bruke og notasjoner for å beskrive disse begrepene.
De tidligste språk hadde få begrensninger, så de var veldig kraftig, men viste seg å være svært farlig å bruke. Etter en stund, folk utviklet språk som var mye tryggere å bruke, men det var klager om deres mangel på kraft. I dag begynner vi å se språk som er både sikkert og kraftig, men prosessen har en lang vei å gå ennå. De aller tidligste språk måtte være basert på noe, og det var trolig enkle instruksjonene gi til mennesker uten mye vokabular eller sunn fornuft vil si barn. Men selv om dette er intuitivt for enkle problemer, ble det klart at dette ikke skalere godt - dvs.
det blir uforholdsmessig vanskelig å bruke som problem størrelse øker. Overflaten skjema Et programmeringsspråk er kjent som sin syntaks. De fleste programmeringsspråk er rent tekstlig; de bruker sekvenser av tekst, inkludert ord, tall og tegnsetting, mye som er skrevet naturlige språk. Programmeringsspråk dele egenskaper med naturlige språk knyttet til sitt formål som kjøretøy for kommunikasjon, har en syntaktisk skjema atskilt fra sine semantikk, og viser språk familier av beslektede språk forgrening fra hverandre.
Mange programmeringsspråk har blitt designet fra bunnen av, endret for å møte nye behov, og kombinert med andre språk. Mange har etter hvert gått ut av bruk. Programmer må balansere hastighet, størrelse og enkelhet på systemer som spenner fra mikrokontrollere til superdatamaskiner. Tusenvis av forskjellige programmeringsspråk har blitt opprettet, hovedsakelig i databehandling feltet. Programmeringsspråk skiller s