lågnivåspråk

(low-level programming language) – programspråk som i detalj anger hur datorns processor ska arbeta och hur minnet ska användas. När man program­me­rar i lågnivåspråk beskriver man vad datorns processor ska göra, men när man programmerar i högnivåspråk beskriver man vad programmet ska göra, och låter sedan en kompilator omvandla källkoden till instruktioner som datorns processor kan exekvera. Att programmera i lågnivåspråk kräver ingående kunskaper om hur en viss dator, främst processorn, fungerar. Minsta misstag kan göra ett program oanvändbart, och felet kan vara svårt att hitta.

  • – Fördelen med programmering i lågnivåspråk är att programmen kan bli mycket snabba och använda lite minne;
  • – Nackdelar är dels att programmering i lågnivåspråk är svårt, dels att programmen inte blir flyttbara (portabla), utom till datorer med samma processor. Programmen blir också svåra att underhålla.

– Den mest renodlade formen av lågnivåprogrammering är maskinkod. Maskinkod är inte något programspråk alls, utan man använder samma instruktioner som processorn använder. Alla instruktioner skrivs som sifferkoder. Man måste ange exakt var värden ska lagras i minnet och var värden ska hämtas. Koden kan sedan matas in i datorn direkt och köras. – Nästa steg är assembler, som enkelt uttryckt är maskinkod, fast instruktion­erna har fått namn som är begripliga för människor. – Numera används lågnivåspråk mycket sällan, utom för funktioner i operativsystem som kräver mycket snabb exekvering. – Man kan också säga att det finns en glidande skala från lågnivåspråk till högnivåspråk. Det kanske mest spridda och efterliknade programspråket, C, är i vissa avseenden ett lågnivåspråk, eftersom det ger programmeraren stora möjligheter till detaljstyrning, men program skrivna i C kan, till skillnad från program i maskinkod och assembler, köras på vilken dator som helst efter kompi­ler­ing. – Liknelse: Högnivåspråk fungerar som om man skulle säga till en självkörande bil: ”kör till Oslo!”. Lågnivåspråk förutsätter att du vet exakt var bilen står, sedan skriver du: ”starta motorn”, ”kolla backspegeln” och så vidare, gatukorsning efter gatukorsning hela vägen till Oslo. Man inser att alla instruktioner och värden som man måste ange i lågnivåspråk på något sätt också måste ges när man exekverar program skrivna i högnivåspråk. 

[programspråk] [7 juni 2017]

semafor

(semaphore) – i programmering: en datatyp som håller räkning på tillgången till gemensamma och begränsade resurser i ett it‑system. Semaforerna har två lägen som motsvarar ledig och upptagen. För varje resurs som har semaforer finns det lika många semaforer som det maximala antalet processer som samtidigt kan använda resursen. Det maximala antalet markeras traditionellt med bokstaven S. (Om bara en process åt gången kan använda resursen talar man om en binär semafor, annars om räknande semaforer.) En process som använder en resurs skickar en instruktion att en semafor ska markeras som upptagen (wait, traditionellt marke­rat med bokstaven P). När processen inte behöver resursen längre skickar den en instruktion om att en semafor ska slå om till ledig (signal, tradition­ellt mark­e­rat med bokstaven V). Och innan en process använder en resurs kollar den sema­for­erna för att se om det finns någon ledig plats; om ingen tillgång till resursen är ledig måste processen vänta. Semaforerna håller bara räkning på antalet lediga respektive upptagna resurser, inte på exakt vilka det är. – Ordet: Från början var en semafor en mekanisk signal i form av en rörlig skylt, använd på järnvägar och avsedd att kunna avläsas på långt håll. Det är en förfranskning av grekiska sema – tecken och phoros – bärare.

[programmering] [5 juni 2017]

processkontrollblock

del av operativsystemet som innehåller information som behövs för att hantera en viss process. (En applikation körs som en eller, vanligtvis, flera processer.) Processkontrollblocket ingår i operativsystemets kärna, och är skyddad mot åtkomst av användaren. Processkontrollblocket inne­håller information:

  • – som identifierar processen: dess namn och nummer, vilken användare som har initierat den, vilka rättigheter som är knutna till den, vilka resurser den får disponera, med mera;
  • – om processens tillstånd: påbörjad, avslutad, avbruten, vilande, nästa instruktion som ska behandlas av processorn, med mera;
  • – om antal använda processorcykler och minnesåtkomster;
  • – som behövs för utbyte av information med andra processer.

– Förkortas PKB, på engelska process control block, förkortat PCB.

[operativsystem] [programmering] [4 juni 2017]

deobfuskering

(deobfuscation) – omvandling av tillkrånglad programkod till pro­gramkod som är lätt att överblicka och förstå. Termen används främst när det gäller programkod som är avsiktligt tillkrånglad, se obfuskering. – En dator­veten­skap­lig artikel om tekniker för deobfuskering finns på denna länk.

[datorvetenskap] [programmering] [26 maj 2017]