heltalsrepresentation

principen att alla tal som behandlas i en dator måste ha formen av positiva heltal. Detta gäller för datorns inre arbete, inte för vad användaren ser. Anledningen är att när tal ska behandlas som maskinkod finns det inget tecken som står för minustecken eller decimalkomma – alla kombinationer av ettor och nollor är nämligen upptagna, eftersom alla står för hela tal. Man måste därför ta till knep för att representera negativa tal och tal med decimaler. Vilket knep som ska användas anges genom typning:

  • – för negativa tal gör man så att man delar in talmängden som datorn kan hantera (se ordlängd) i två delar: de låga talen står för positiva heltal och de höga talen står för negativa heltal. Det finns sedan sätt att utföra matematiska operationer med positiva tal (=låga tal) och negativa tal (=höga tal) så att resultatet blir rätt – se tvåkomplementsform;
  • – för tal med decimaler används flyttalsrepresentation: alla tal noteras med lika många siffror, uppdelade i två delar. Den första delen anger så många siffror som möjligt i talet (antalet är ju begränsat), den andra delen anger hur många av siffrorna som ska stå efter decimalkommat;
  • – för potensräkning (”upphöjt till”) används en representation som liknar den som används för decimaler.

– På engelska: integer representation.

[matematik] [programmering] [ändrad 7 januari 2019]

multiprogrammering

det att flera program körs samtidigt på en processor. – Eftersom processorn bara kan exekvera en instruktion i taget måste programmen turas om att använda processorn, men eftersom växling av program kan ske många gånger i sekunden verkar det för användaren som om programmen körs samtidigt. Numera talar man i stället om multikörning, på engelska multitasking. Multiprogrammering är en äldre teknik, och det finns skillnader mellan multiprogrammering och multikörning. En skillnad är att i multikörning är det processer, inte hela program, som delar på processorn. En annan skillnad är att multikörning har bättre funktioner för att se till att alla processer får tillgång till processorn utan att blockera varandra. Multiprogrammering gav effektivt utnyttjande av processorns tid, men var inte nödvändigtvis optimalt för programmen som kördes. – På engelska: multiprogramming.

[programkörning] [10 september 2018]

tvåkomplementsform

ett sätt att ange positiva och negativa tal med binär representation så att man kan göra beräkningar. Förutsättningen är att det inte går att ange minustecken: negativa tal måste därför anges som positiva tal på ett sätt som gör att man ändå kan göra matematiska beräkningar och få rätt svar:

  1. – Tvåkomplementsform förutsätter att alla tal i beräkningen skrivs med samma antal binära siffror (ettor och nollor). I följande exempel används åtta binära siffror, men det går bra med vilket antal som helst. Det största tal som kan skrivas med åtta binära siffror är ”11111111” (=255). Om en beräkning ger ett resultat som blir 256 eller mer ”slår kilometerräknaren om”, så efter ”11111111” kommer ”00000000”. Med vanliga decimala siffror: 255 följs av 0;
  2. – Positiva tal måste i tvåkomplementsform börja med 0. Det innebär att det största positiva tal som i tvåkomplementsform kan skrivas med åtta binära siffror är ”01111111” (=127). Positiva tal noteras som vanligt, fast alltid med så många nollor i början som behövs för att det ska bli åtta binära siffror;
  3. – Negativa tal börjar med 1. Man räknar baklänges från 256. Talet -1 skrivs i tvåkomplementsform som ”11111111” (=255), -2 blir ”11111110” (=254) och så vidare. Det minsta negativa tal som kan skrivas med åtta binära siffror blir alltså ”10000000” (=128), som här alltså står för -128;
  4. – Subtraktion görs sedan genom addition: det positiva talet adderas till det negativa. – Exempel (med decimala siffror): 10-3=7 blir i tvåkomplementsform 10+253=263 – men eftersom räkneverket ”slår om” till 0 vid 256 blir resultatet 263-256=7, vilket är rätt. Summan av ett positivt tal och samma negativa tal blir alltid 256, det vill säga noll.

– På engelska: two’s complement.

[matematik] [programmering] [ändrad 5 december 2020]

signedness

om siffervärden i programmering: egenskapen att vara signerad, det vill säga det att ett tal markeras som positivt eller negativt. På svenska förekommer översättningen signeradhet. – Se signerad datatyp.

[matematik] [programmering] [3 september 2018]

blockprogrammering

beteckning på visuella programmeringsmetoder. Man bygger upp program genom att kombinera block på bildskärmen på olika sätt; blocken är (oftast) fyrkanter som står för instruktioner eller data. Blocken kan ha inbyggda spärrar mot sammansättningar som inte fungerar. – Uttrycket blockprogrammering används ofta om enkla programspråk som är avsedda för barn eller nybörjare, eftersom de inte kräver att man matar in instruktioner som måste stavas exakt rätt, och de ger överblick över hur programmets delar hör ihop. Men programspråk för professionellt bruk kan också helt eller delvis ha gränssnitt för blockprogrammering. – På engelska: block programming.

[barn] [programmering] [3 september 2018]

orakel

i testning av datorprogram: verktyg som kan avgöra ifall programmet ger rätt resultat. – I enklare fall är detta trivialt: utvecklaren kan avgöra den saken själv, men när man testar mer komplicerade system kan det vara svårt att kontrollera resultatets riktighet. Algoritmerna som räknade fram resultatet kan ju inte gärna också kontrollera ifall de räknar rätt, eller ifall utvecklaren har tänkt rätt. – Ordet orakel används också om verktyg för kontroll av program som behandlar transaktioner i den materiella världen. Motsvarar en digital registrering av en transaktion verkligen motsvarande händelse i den materiella världen? Om Bilregistrets datorer registrerar att en bil har bytt ägare, hur vet datorerna att bilen verkligen har överlåtits till den nya ägaren, och att den förra ägaren har fått betalt? Hur kan ett postorderföretags datorer kontrollera att kunden verkligen har tagit emot de beställda varorna? Ett verktyg som ger ett tillförlitligt svar på sådana frågor kallas för orakel. Man talar om orakelproblemet, the oracle problem – alltså: hur skapar man ett sådant program? Det har blivit aktuellt med anledning av smarta kontrakt. – Kallas också för testorakel. På engelska: oracle eller test oracle. – I antiken var ett orakel (av latinets orare – att tala) ett slags spåman eller spåkvinna som gav vanligtvis svårtolkade och mångtydiga svar på frågor om fördolda ting.

[datorvetenskap] [programmering] [testning] [ändrad 11 maj 2020]

Catalyst

Apples gemensamma utvecklingsplattform för iOS och macOS. Den är till för att man ska kunna utveckla program som kan köras på iPhone, iPad och Mac med samma programkod. Bakgrunden sägs vara att många fristående utvecklare skriver program (appar) för iPhone och iPad, medan intresset för att utveckla för Mac är begränsat. Det ligger därför i Apples intresse att göra det möjligt att köra appar för iPhone och iPad direkt på Mac. (iOS, iPadOS och macOS är nära släkt, men de är inte kompatibla.) – Projektet blev känt genom en artikel i Bloomberg i december 2017 (länk). Då kallades programmet för Marzipan. – I juni 2019 bekräftade Apple att projektet fanns och det infördes med version 10.15 av macOS, Catalina.

[macos och ios] [programmering] [ändrad 24 november 2019]