Abstrakt. Oändliga loopar kan göra applikationer oemottagliga. Potentiella problem är förlorat arbete eller resultat, nekad tillgång till applikationens funktionalitet och brist på svar på brådskande händelser. Vi presenterar Jolt, ett nytt system för dynamiskt upptäcka och fly oändliga slingor. På användarens begäran fäster Jolt vid ett program för att övervaka dess framsteg. I synnerhet, Jolt registrerar programmet tillstånd i början av varje loop iteration. Om två på varandra följande loop iterationer producerar samma tillstånd, Jolt rapporterar till användaren att programmet är i en oändlig loop. Vid användarens val, Jolt kan sedan överföra kontrollen till ett uttalande efter slingan, vilket gör det möjligt för programmet att fly den oändliga slingan och helst fortsätta sin produktiva utförande. Det omedelbara målet är att göra det möjligt för ansökan att köra tillräckligt länge för att spara pågående arbete, slutföra eventuella pågående beräkningar, eller svara på eventuella brådskande händelser. Vi utvärderade Jolt genom att tillämpa den för att upptäcka och fly åtta oändliga slingor i fem referensapplikationer. Jolt kunde upptäcka sju av de åtta oändliga slingorna (den åttonde förändrar tillståndet på varje iteration). Vi utvärderade också effekten av att undkomma en oändlig slinga som ett alternativ till att avsluta ansökan. I alla våra referensprogram, undkomma en oändlig slinga gav en mer användbar utgång än att avsluta ansökan. Slutligen utvärderade vi hur väl flykten från en oändlig loop approximerade den korrigering som utvecklarna senare gjorde till ansökan. För två av våra åtta slingor gav flykten från den oändliga slingan samma utgång som den korrigerade versionen av applikationen.
Carbin m.fl. REF föreslår Jolt, som upptäcker när ett program går in i en oändlig loop och gör det möjligt att fly från loopen.
Detecting and Escaping Infinite Loops with Jolt
{'venue': 'ECOOP', 'journal': None, 'mag_field_of_study': ['Computer Science']}