Zema līmeņa programmēšanas valoda
Zema līmeņa programmēšanas valoda ir programmēšanas valoda, kas nodrošina mazu vai nekādu abstrakciju no datora instrukciju kopas arhitektūras, proti, zema līmeņa programmēšanas valodā rakstītās instrukcijas ir strukturāli līdzīgas noteiktā procesora instrukcijām. Faktiski var apgalvot, ka zemā līmeņa valodas ir "tuvāk" mašīnai, proti, datora aparatūrai, bet "tālāk" no cilvēka jeb šajā gadījumā - programmētāja. Zema līmeņa valodā rakstīto instrukciju izpildes laiks ir ļoti ātrs, kas ir viena no galvenajām šī līmeņa valodas priekšrocībām. Papildus tam zemā līmenī izstrādātas datorprogrammas var darboties, izmantojot ļoti minimālu datora atmiņas daļu. Atšķirībā no augsta līmeņa programmēšanas valodām, kuras izmanto vairums programmētāju datorprogrammas izveides procesā, zemā līmeņa kods ir šifrēts un cilvēkam nav lasāms. Tāpat zemā līmeņa valodā rakstīta koda izmanotjamība aprobežojas konkrētās ierīces piedāvātajā funkcionalitātē. Citiem vārdiem sakot, šādas programmas ir "nepārnesamas", jo tās ir optimizētas konkrētās ierīces sistēmas arhitektūrai. Tajā brīdī, kad augstāka līmeņa valodā rakstītās instrukcijas tiek deleģētas datora aparatūras vienībām to izpildei, tiek izmantots specifisks komunikācijas veids, ko datorzinātnēs definē kā asemblera valodu jeb montāžas valodu. Zemā līmeņa valodām atšķirībā no augstā līmeņa programmēšanas valodām nav nepieciesams kompilators vai specializēts koda tulks, jo šajā gadījumā datora procesors spēj tiešā veidā nolasīt un atbilstoši interpretēt zemā līmeņa valodā rakstītās programmas. Datorzinātnēs zemā līmeņa valodu kritērijiem atbilst divas valodas. Par pirmās paaudzes valodām, kuru darbībai nav nepieciešamas papildus darbības kā komiplēšana vai interpretēšana, ir mašīnvalodas jeb mašīnkodi. Savukārt otrās paaudzes zemā līmeņa programmēšanas valoda tiek dēvēta par asamblervalodu. Otrās paaudzes valodā ir integrētas tādas pašas instrukcijas kā mašīnkodā, bet atšķirībā no mašīnkoda, asamblervalodas sintaksē instrukcijas un mainīgie tiek definēti izmantojot arī vārdu simbolus jeb īsas abreviatūras, piemēram, "Add", "sub", "Mul" u.c. attiecīgi saskaitīšanas, atņemšanas un reizināšanas darbību izpildei, ne tikai bināros ciparus. Zemā līmeņa programmēšanas valodas tiek izmantotas ikreiz, kad augstā līmeņa programmēšanas valodās kā PHP, #C u.c. izstrādātās lietojumprogrammas darbojas, pārvalda un maina datora aparatūru un instrukciju kopas arhitektūru. Avota kods var tikt sagatavots, izmantojot vienkāršu teksta redaktoru vai integrēto izstrādes vidi (IDE), piemēram, programmēšanas valodai Java pielāgoto Eclipse vidi. Datora procesors nespēj atpazīt programmas izstrādātajā sagatavoto avota kodu tiešā veidā, tāpēc pēc tā izstrādes avota kods tiek kompilēts zemā līmeņa valodas skriptā. Augstā līmeņa valodā izstrādātas programmas tiek tulkotas mašīnkodā, izmantojot kompilētāju vai interpretētāju, bet asemblervalodas gadījumā - asembleru.