Start Logga In Skriv Artikel Om Oss
Vad söker du?
Allt om 'Spagettikod'

Spagettikod

Spagettikodär en benämning på dåligt strukturerad programkod till datorer, ofta innehållande många och onödiga hopp fram och tillbaka mellan olika delar av programmet.

I t ex BASIC berodde det på alltför flitigt användande av GOTO, IF-THEN-hopp och GOSUB tillsammans med bristande kommentarer och otydbara korta variabelnamn (detta ofta på grund av minnesbrist). En ytterligare anledning till att just Basic gav mer spaghettikod än andra språk var att programhoppen var radnummerbaserade i de tidigare versionerna, så att man inte enkelt kunde se vart eller varför programmet skulle hoppa.Att tyda sådan kod blir ungefär som att följa varje enskild spaghetti genom en hel portion... Läsbarheten förbättrades avsevärt när LABELs infördes, även om strukturen ofta var lika dålig.

Edsger Dijkstra skrev tidigt en artikel som varnade för detta överdrivna användande av programhopp, . Motsvarigheten inom objektorienterad programmering heter raviolikod.

Spagettikod är inte nödvändigtvis dålig, den kan vara både effektiv och minnesbesparande, något som var nödvändigt med de tidiga datorerna, problemet ligger främst i läsbarheten och därmed möjligheterna till underhåll (vidareutveckling och korrigering av buggar) och i slutänden således kostnaden för att upprätthålla programmet.

Exempel

Startlabel: GOTO Skriv_ut Beräkna: X=X+1 GOTO Mata_ut Skriv_ut: PRINT "HEJ "; GOTO Beräkna Mata_ut: OUT 2,65 IF X < 4 THEN GOTO Startlabel ELSE GOTO Mata_ut END

Se även

  • BASIC
  • Spagetti
  • http://info.astrian.net/jargon/Hacker_Folklore/The_Story_of_Mel.html

Goto är en styggelse och bör bekämpas med näbbar och klor. Dessutom är koden inte kommenterad, vilket ökar på spagettikänslan /Tycho Brahe

Absolut! :-) Fast koden ovan är kort så är det mycket svårt att följa den vilket är typiskt för spagetti. Vad gör programmet egentligen? är en befogad fråga. // Solkoll

Jag tycker det ser ut som det kommer in i en oändlig slinga. Men jag kan ha missat nåt, och det var ju meningen med exemplet. :-) / TB

Nejdå, När X=>4 så loopar koden i "Mata_ut" vilket programmeraren förmodligen inte har tänkt sig, det är sådana trassel man hamnar i när man inte skriver strukturerat. När jag en gång i tiden (1983) började programmera så skrev jag uteslutande spagettikod vilket resulterade i att programmen blev väldigt buggiga och svåra att vidareutveckla. Det var först när jag började skriva i GFA BASIC på min Atari ST som det blev lite stil på hacken, det för att editorn i GFA automatiskt skapar strukturerad kod vilket var mycket nyttigt. // Solkoll (som vill se fler sådana editorer)

All användning av goto behöver nödvändigtvis inte vara av ondo. Det gäller speciellt om det är viktigare att programmet körs snabbt än att det är elegant skrivet, som i .

Enstaka goto kan också vara en bra lösning i vissa fall, även när strukturen kan prioriteras. Tycker jag.

Redigera?

Artikeln skriven 2009-01-15 av Learning4sharing

Inga kategorier för denna artikel än...

Vi behhöver hjälp att kategorisera våra artiklar. Kan du skriva ett nyckelord för denna artikel? Du kan skriva upp till 3 olika nyckelord för denna artikel, vi uppskattar din hjälp!

Skriv nyckelord som du tycker beskriver denna artikel på ett bra sätt. Du kan ange 3 olika nyckelord för denna artikel, max 20 tecken per nyckelord.

  1. Lägg till fler
    Skriv in svaret på frågan: 2+2

Intresserad av fler artiklar?

DarkBASIC Classic
DarkBASIC Professional
Grafisk miniräknare
Peek
Poke
Mnemonic
Iteration
Måttenheten erlang
Agner Krarup Erlang

Senaste sökningarna

reformism har fått 1323 sökningar. Den senaste gjordes 2024-04-23 09:43:48.

verifiering har fått 1060 sökningar. Den senaste gjordes 2024-04-23 09:43:24.

kramfors har fått 1263 sökningar. Den senaste gjordes 2024-04-23 09:39:30.

eterna har fått 1208 sökningar. Den senaste gjordes 2024-04-23 09:35:16.

Bromölla har fått 1312 sökningar. Den senaste gjordes 2024-04-23 09:34:47.

prognos har fått 1640 sökningar. Den senaste gjordes 2024-04-23 09:34:41.

firman boys har fått 1371 sökningar. Den senaste gjordes 2024-04-23 09:31:20.

hellas har fått 1317 sökningar. Den senaste gjordes 2024-04-23 09:26:33.

tomelilla har fått 1695 sökningar. Den senaste gjordes 2024-04-23 09:23:59.

riff har fått 1410 sökningar. Den senaste gjordes 2024-04-23 09:22:54.

norna har fått 1295 sökningar. Den senaste gjordes 2024-04-23 09:21:56.

eureka har fått 1171 sökningar. Den senaste gjordes 2024-04-23 09:16:08.

Designed by: template world
Learning4sharing.nu
All Rights Reserved. 0.06 SEK

Logga in

Välkommen att redigera och skriva nya artiklar!

Ingent Konto?

Skaffa konto för att redigera och skapa nya ariklar Nytt Konto.

Ny Användare

Välkommen att redigera och skriva nya artiklar! Skapa konto nedan.


Ett verifieringsmail kommer att skickas till din E-post som du måste öppna och verifiera din E-post med

Lägg till artikel

Du är inte inloggad.

Logga In eller Skapa konto.