iteration

i programmering: upprepning, omtagning – resultatet av varje iteration används som indata i nästa. Detta upprepas ett bestämt antal varv eller tills resultatet uppfyller ett bestämt villkor. – Utförandet av en iteration i en programkörning kallas för en slinga, på engelska loop. (Om programmet är skrivet på ett ogenomtänkt sätt kan en slinga rulla på i evighet och eventuellt sättas igång av misstag.) – I iterativ system­utveck­ling utvecklar man snabbt ett komplett system som sedan omarbetas genom att man går igenom programkoden gång på gång och förbättrar. I denna betydelse kan iteration översättas med omarbetning.

– Skill­naden mellan iteration och rekursion: Båda programmeringsteknikerna använder repe­ti­tion. Samma programkod körs om och om igen:

  • – I iteration ingår upprepningen direkt i program­koden. (Om villkoret V inte är uppfyllt, hoppa tillbaka till rad X och upprepa beräkningen, nu med resultatet av den förra beräkningen som indata.)
  • – I rekursion anropar den aktuella delen av programkoden sig själv tills ett bestämt villkor är uppfyllt. Det innebär att anropet först går till anropsstacken och sedan tillbaka till den aktuella programkoden igen. Det leder till att rekursion blir mer tidskrävande än iteration, vilket märks vid omfattande beräkningar.

– Allt som kan göras med rekursion kan också göras med iteration. – Läs också om iterator.

[programmering] [systemutveckling] [ändrad 14 oktober 2018]

Linus lag

  1. – ”Given enough eyeballs, all bugs are shallow”, vilket betyder att om tillräck­ligt många granskar programkoden kommer varje bugg att vara lätt att rätta till (åtminstone för någon av granskarna). – Yttrandet tillskrivs Linus Torvalds och citeras i Eric Raymonds bok Kate­dralen och basaren;
  2. – ”Allt som en människa gör moti­ve­ras med över­levnad, socialt liv eller nöje.” – I sitt förord till boken The hacker ethic and the spirit of the information age från 2001 (länk) for­mu­le­rade Linus Torvalds den tesen, och han ansåg att det var stadier i en utveckling: resul­tatet blir bäst när man gör saker bara för att det är roligt.

[fel] [lagar] [systemutveckling] [ändrad 29 mars 2023]

abstraktion

i it: bortseende från eller döljande av detaljer som är av underordnad betydelse för den uppgift som ska lösas. – I it brukar man tala om styrningsabstraktion (control abstraction), procedurabstraktion (procedural abstraction) och dataabstraktion (data abstraction):

    • – Målet för styrningsabstraktion är att man ska kunna tala om vad som ska göras utan att behöva beskriva hur det ska gå till;
    • Procedurabstraktion är att dölja eller bortse från detaljerna i en procedur;
    • – Målet för data­ab­strak­tion är att man ska kunna hantera infor­ma­tion i en dator eller ett nätverk utan att behöva veta var informationen är lagrad rent fysiskt, och utan att behöva tala om för datorn hur ettor och nollor ska flyttas från hård­disken eller SSD:n till arbetsminnet.

– På engelska: abstraction. – Abstraktion hör ihop med virtuali­se­ring och arkitektur.

[systemutveckling] [ändrad 26 augusti 2021]

öppna system

operativsystem och program som bygger på allmänt kända, icke slutna standarder, och som därför förväntas fungera ihop, oavsett vem som har utvecklat dem. – Öppna system har interoperabilitet och portabilitet samt följer öppna standarder i hög ut­sträckning. Oftast, men inte alltid, menar man Unix och Unix­kompatibla system – se Posix. – Idén om öppna system växte fram på 1980‑talet som re­aktion mot den tidens slutna stordator- och minidator­­system. Tanken bakom öppna system var att man ska veta på förhand att all mjukvara skriven för öppna system fungerar ihop direkt, även om den kommer från olika företag. Det ska räcka med att utvecklarna har tillämpat öppna standarder. – Uttrycket används numera sällan, mest därför att principen har blivit närmast självklar, bland annat därför att det bara finns ett fåtal processortyper och operativsystem som är allmänt spridda. – Öppna system förutsätter inte öppen källkod, utan det viktiga är att systemet fungerar ihop med andra program och system på ett känt och förutsägbart sätt. – I mer allmän betydelse är ett öppet system ett system som är öppet för alla att använda och bygga tillämpningar för, för­­ut­­satt att de följer systemets specifikationer. – Jämför med öppen källkod och fri mjukvara.

[mjukvara] [öppet] [ändrad 28 september 2020]