| Paper Abstract and Keywords |
| Presentation |
2014-05-09 09:30
Identifying Cross-Function Side Effects using Static Analysis Jiachen Yang, Keisuke Hotta, Yoshiki Higo, Shinji Kusumoto (Osaka Univ.) SS2014-5 |
| Abstract |
(in Japanese) |
(See Japanese page) |
| (in English) |
Side effects are modifications done to the state of the objects in Object-Oriented Programming languages such as Java. Side effects can happen across the boundary of the functions, therefore they are important properties that often be neglected by the documentations. In this paper, we studied the side effects of functions by using a static analysis method to automatically infer the state dependencies for the return value and side effects of functions. We also present a set of annotations to document these state dependencies. As a result, the annotations presented in this paper reveals well-defined state interactions between objects. These annotations can be used in further investigations by both programmers and tools. We have implemented the analysis method targeting Java bytecode and tested it on vary-sized open source Java software libraries. From our experimental results, we found that 25--33% of the functions in the evaluated open source Java libraries are pure functions, which indicates that a large percentage of the functions is suitable for high level refactoring. And we present a case study of equals and hashCode functions to show the importance of our method in real world programming tasks. |
| Keyword |
(in Japanese) |
(See Japanese page) |
| (in English) |
state boundary / state dependency / object-oriented / effect annotation / static analysis / / / |
| Reference Info. |
IEICE Tech. Rep., vol. 114, no. 23, SS2014-5, pp. 25-30, May 2014. |
| Paper # |
SS2014-5 |
| Date of Issue |
2014-05-01 (SS) |
| ISSN |
Print edition: ISSN 0913-5685 Online edition: ISSN 2432-6380 |
Copyright and reproduction |
All rights are reserved and no part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopy, recording, or any information storage and retrieval system, without permission in writing from the publisher. Notwithstanding, instructors are permitted to photocopy isolated articles for noncommercial classroom use without fee. (License No.: 10GA0019/12GB0052/13GB0056/17GB0034/18GB0034) |
| Notes on Review |
This article is a technical report without peer review, and its polished version will be published elsewhere. |
| Download PDF |
SS2014-5 |
| Conference Information |
| Committee |
SS |
| Conference Date |
2014-05-08 - 2014-05-09 |
| Place (in Japanese) |
(See Japanese page) |
| Place (in English) |
ISE SHIMIN - KATSUDOU Center |
| Topics (in Japanese) |
(See Japanese page) |
| Topics (in English) |
General topics |
| Paper Information |
| Registration To |
SS |
| Conference Code |
2014-05-SS |
| Language |
English |
| Title (in Japanese) |
(See Japanese page) |
| Sub Title (in Japanese) |
(See Japanese page) |
| Title (in English) |
Identifying Cross-Function Side Effects using Static Analysis |
| Sub Title (in English) |
|
| Keyword(1) |
state boundary |
| Keyword(2) |
state dependency |
| Keyword(3) |
object-oriented |
| Keyword(4) |
effect annotation |
| Keyword(5) |
static analysis |
| Keyword(6) |
|
| Keyword(7) |
|
| Keyword(8) |
|
| 1st Author's Name |
Jiachen Yang |
| 1st Author's Affiliation |
Osaka Univercity (Osaka Univ.) |
| 2nd Author's Name |
Keisuke Hotta |
| 2nd Author's Affiliation |
Osaka Univercity (Osaka Univ.) |
| 3rd Author's Name |
Yoshiki Higo |
| 3rd Author's Affiliation |
Osaka Univercity (Osaka Univ.) |
| 4th Author's Name |
Shinji Kusumoto |
| 4th Author's Affiliation |
Osaka Univercity (Osaka Univ.) |
| 5th Author's Name |
|
| 5th Author's Affiliation |
() |
| 6th Author's Name |
|
| 6th Author's Affiliation |
() |
| 7th Author's Name |
|
| 7th Author's Affiliation |
() |
| 8th Author's Name |
|
| 8th Author's Affiliation |
() |
| 9th Author's Name |
|
| 9th Author's Affiliation |
() |
| 10th Author's Name |
|
| 10th Author's Affiliation |
() |
| 11th Author's Name |
|
| 11th Author's Affiliation |
() |
| 12th Author's Name |
|
| 12th Author's Affiliation |
() |
| 13th Author's Name |
|
| 13th Author's Affiliation |
() |
| 14th Author's Name |
|
| 14th Author's Affiliation |
() |
| 15th Author's Name |
|
| 15th Author's Affiliation |
() |
| 16th Author's Name |
|
| 16th Author's Affiliation |
() |
| 17th Author's Name |
|
| 17th Author's Affiliation |
() |
| 18th Author's Name |
|
| 18th Author's Affiliation |
() |
| 19th Author's Name |
|
| 19th Author's Affiliation |
() |
| 20th Author's Name |
|
| 20th Author's Affiliation |
() |
| 21st Author's Name |
|
| 21st Author's Affiliation |
() |
| 22nd Author's Name |
|
| 22nd Author's Affiliation |
() |
| 23rd Author's Name |
|
| 23rd Author's Affiliation |
() |
| 24th Author's Name |
|
| 24th Author's Affiliation |
() |
| 25th Author's Name |
|
| 25th Author's Affiliation |
() |
| 26th Author's Name |
/ / |
| 26th Author's Affiliation |
()
() |
| 27th Author's Name |
/ / |
| 27th Author's Affiliation |
()
() |
| 28th Author's Name |
/ / |
| 28th Author's Affiliation |
()
() |
| 29th Author's Name |
/ / |
| 29th Author's Affiliation |
()
() |
| 30th Author's Name |
/ / |
| 30th Author's Affiliation |
()
() |
| 31st Author's Name |
/ / |
| 31st Author's Affiliation |
()
() |
| 32nd Author's Name |
/ / |
| 32nd Author's Affiliation |
()
() |
| 33rd Author's Name |
/ / |
| 33rd Author's Affiliation |
()
() |
| 34th Author's Name |
/ / |
| 34th Author's Affiliation |
()
() |
| 35th Author's Name |
/ / |
| 35th Author's Affiliation |
()
() |
| 36th Author's Name |
/ / |
| 36th Author's Affiliation |
()
() |
| Speaker |
Author-1 |
| Date Time |
2014-05-09 09:30:00 |
| Presentation Time |
30 minutes |
| Registration for |
SS |
| Paper # |
SS2014-5 |
| Volume (vol) |
vol.114 |
| Number (no) |
no.23 |
| Page |
pp.25-30 |
| #Pages |
6 |
| Date of Issue |
2014-05-01 (SS) |