Abstrakt. Vi presenterar ett lätt typ-och-effekt-system för Java-program som innehåller två stora innovationer över omfattande objektorienterade effektsystem: initialiseringseffekter, som skrivs till ett objekts tillstånd medan det byggs, och kravfält, som är fält som aldrig skrivs efter att ett objekt konstruerats. Vi presenterar också en ny taxonomi av grad av metodrenhet i objektorienterade program, som kännetecknar metoder vars effekter är begränsade till deras mottagare objekt. Slutligen finner vi betydande mängder av mestadels funktionellt beteende i realistiska Java-program: i de riktmärken vi analyserade, var mellan 48-53% av deklarerade fält identifierbara som quiescing och mellan 24-78% av dynamiska fältavläsningar var från quiescing fält.
Benton och Fischer har ett lättviktigt typ- och effektsystem för Java, som kännetecknar initialiseringseffekter (dvs. skriver till objekttillstånd under konstruktion) och quiesing fält (dvs. fält som aldrig skrivs efter konstruktion) REF.
Mostly-Functional Behavior in Java Programs
{'venue': 'VMCAI', 'journal': None, 'mag_field_of_study': ['Computer Science']}