參考文獻 |
[1] J. Noble, J. Vitek, and J. Potter, “Flexible alias protection,” in ECOOP’98— Object-Oriented Programming: 12th European Conference Brussels, Belgium, July 20–24, 1998 Proceedings 12, Springer, 1998, pp. 158–185.
[2] D. G. Clarke, J. M. Potter, and J. Noble, “Ownership types for flexible alias protection,” in Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, 1998, pp. 48–64.
[3] D. L. Detlefs, K. R. M. Leino, and G. Nelson, Wrestling with rep exposure. Digital, Systems Research Center, 1998, vol. 156.
[4] D. G. Clarke, J. Noble, and J. Potter, “Overcoming representation exposure,” in Proceedings of the Workshop on Object-Oriented Technology, 1999, pp. 149–151.
[5] J. Hogg, D. Lea, A. Wills, D. deChampeaux, and R. Holt, “The geneva convention on the treatment of object aliasing,” ACM SIGPLAN OOPS Messenger, vol. 3, no. 2, pp. 11–16, 1992.
[6] D. G. Clarke, Object Ownership & Containment. University of New South Wales, 2002.
[7] P. E. Proposals. “Pep 591 –adding a final qualifier to typing.” (2022), [Online]. Available: https://peps.python.org/pep-0591 (visited on 06/06/2023).
[8] C. Reference. “C++ keyword: Const.” (2012), [Online]. Available: https://en.cppreference.com/w/cpp/keyword/const (visited on 06/06/2023).
[9] T. R. P. Language. “Variables and mutability.” (2019), [Online]. Available: https://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html (visited on 05/15/2023).
[10] T. R. P. Language. “References and borrowing.” (2019), [Online]. Available: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html (visited on 05/15/2023).
[11] D. Rayside, L. Mendel, R. Seater, and D. Jackson, “An analysis and visualization for revealing object sharing,” in Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange, 2005, pp. 11–15.
[12] E. Gamma, R. Helm, R. Johnson, R. E. Johnson, and J. Vlissides, Design patterns: elements of reusable object-oriented software. Pearson Deutschland GmbH, 1995.
[13] T. Wrigstad, “Ownership-based alias managemant,” Ph.D. dissertation, KTH, 2006.
[14] C. Haack and E. Poll, “Type-based object immutability with flexible initialization.,” in ECOOP, Springer, vol. 5653, 2009, pp. 520–545.
[15] A. Banerjee and D. A. Naumann, “State based ownership, reentrance, and encapsulation,” in ECOOP 2005-Object-Oriented Programming: 19th European Conference, Glasgow, UK, July 25-29, 2005. Proceedings 19, Springer, 2005, pp. 387–411.
[16] Y. Zibin, A. Potanin, P. Li, M. Ali, and M. D. Ernst, “Ownership and immutability in generic java,” ACM Sigplan Notices, vol. 45, no. 10, pp. 598–617, 2010.
[17] final vs Immutability in Java. “Linked lists–advanced operations.” (2018), [Online]. Available: https://www.geeksforgeeks.org/final-vs-immutability-java (visited on 06/06/2023).
[18] Oracle. “Creating immutable lists, sets, and maps.” (2018), [Online]. Available: https://docs.oracle.com/javase/9/core/creating-immutable-lists-sets-and-maps.htm (visited on 05/07/2023).
[19] Rishabhsingh054. “Primitive data type vs. object data type in java with examples.”(2020), [Online]. Available: https://www.geeksforgeeks.org/primitive-data-type-vs-object-data-type-in-java-with-examples (visited on 05/11/2023).
[20] Javapoint. “Shallow copy java.” (2021), [Online]. Available: https://www.javatpoint.com/shallow-copy-java (visited on 05/11/2023).
[21] J. Noble, D. Clarke, and J. Potter, “Object ownership for dynamic alias protection,”in Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 32, IEEE, 1999, pp. 176–187.
[22] C. Boyapati, “Safejava: A unified type system for safe programming,” Ph.D. dissertation, Massachusetts Institute of Technology, 2003.
[23] C. Boyapati, R. Lee, and M. Rinard, “Ownership types for safe programming: Preventing data races and deadlocks,” in Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, 2002, pp. 211–230.
[24] C. Boyapati and M. Rinard, “A parameterized type system for race-free java programs,” in Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, 2001, pp. 56–69.
[25] J. Aldrich and C. Chambers, “Ownership domains: Separating aliasing policy from mechanism,” in ECOOP 2004–Object-Oriented Programming: 18th European Conference, Oslo, Norway, June 14-18, 2004. Proceedings 18, Springer, 2004, pp. 1–25.
[26] J. Schäfer and A. Poetzsch-Heffter, “A parameterized type system for simple loose ownership domains.,” J. Object Technol., vol. 6, no. 5, pp. 71–100, 2007.
[27] D. Clarke, J. Östlund, I. Sergey, and T. Wrigstad, “Ownership types: A survey,”Aliasing in Object-Oriented Programming. Types, Analysis and Verification, pp. 15–58, 2013.
[28] T. Zhao, J. Palsberg, and J. Vitek, “Lightweight confinement for featherweight java,” ACM SIGPLAN Notices, vol. 38, no. 11, pp. 135–148, 2003.
[29] S. S. Huang, D. Zook, and Y. Smaragdakis, “Cj: Enhancing java with safe type conditions,” in Proceedings of the 6th international conference on Aspect-oriented software development, 2007, pp. 185–198.
[30] A. Potanin, J. Noble, D. Clarke, and R. Biddle, “Generic ownership for generic java,” ACM SIGPLAN Notices, vol. 41, no. 10, pp. 311–324, 2006.
[31] C. S. Gordon, M. J. Parkinson, J. Parsons, A. Bromfield, and J. Duffy, “Uniqueness and reference immutability for safe parallelism,” ACM SIGPLAN Notices, vol. 47, no. 10, pp. 21–40, 2012.
[32] Oracle. “Java annotation.” (2014), [Online]. Available: https://docs.oracle.com/javase/8/docs/technotes/guides/language/annotations.html (visited on 06/06/2023).
[33] M. EECS. “Abstraction functions & rep invariants.” (2015), [Online]. Available: https://web.mit.edu/6.005/www/fa15/classes/13-abstraction-functions-rep-invariants (visited on 05/07/2023).
[34] Javapoint. “Reference data types in java.” (2021), [Online]. Available: https://www.javatpoint.com/reference-data-types-in-java (visited on 05/15/2023).
[35] T. R. P. Language. “What is ownership?” (2019), [Online]. Available: https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html (visited on 05/15/2023).
[36] T. R. P. Language. “Vectors.” (2019), [Online]. Available: https://doc.rust.lang.org/book/ch08-01-vectors.html (visited on 05/15/2023).
[37] A. Potanin, M. Damitio, and J. Noble, “Are your incoming aliases really necessary? counting the cost of object ownership,” in 2013 35th International Conference on Software Engineering (ICSE), IEEE, 2013, pp. 742–751.
[38] S. Dashora. “Dangling references in rust –should you be worried?” (2022), [Online]. Available: https://progressivecoder.com/dangling-references-in-rust (visited on 05/24/2023).
[39] M. B. Marat Akhin. “Kotlin language specification.” (2021), [Online]. Available: https://kotlinlang.org/spec/introduction.html (visited on 06/06/2023).
[40] Jetbrain. “What is intellij idea?” (2003), [Online]. Available: https://www.jetbrains.com/idea/features (visited on 06/06/2023).
[41] Gradle. “What is gradle?” (2020), [Online]. Available: https://docs.gradle.org/current/userguide/what_is_gradle.html (visited on 06/06/2023).
[42] A. Bansal. “Java vs. kotlin.” (2021), [Online]. Available: https://www.baeldung.com/kotlin/java-vs-kotlin (visited on 06/06/2023).
[43] JavaParser. “Javaparser repository.” (2015), [Online]. Available: https://github.com/javaparser/javaparser (visited on 06/06/2023).
[44] I. d. N. Oren Ben-Kiki Clark Evans. “Yaml.” (2001), [Online]. Available: https://yaml.org/spec (visited on 06/06/2023).
[45] J. C. Mitchell, Foundations for programming languages. MIT press Cambridge, 1996, vol. 1.
[46] Pankaj. “Java singleton design pattern best practices with examples.” (2022), [Online]. Available: https://www.digitalocean.com/community/tutorials/java-singleton-design-pattern-best-practices-examples#singleton-pattern-principles (visited on 06/06/2023).
[47] Javapoint. “Java swing tutorial.” (2014), [Online]. Available: https://www.javatpoint.com/java-swing (visited on 06/06/2023).
[48] Orcale. “Threadpoolexecutor.” (2014), [Online]. Available: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html (visited on 06/06/2023).
[49] Orcale. “Driver.” (2014), [Online]. Available: https://docs.oracle.com/javase/8/docs/api/java/sql/Driver.html (visited on 06/06/2023).
[50] J. Noble, “Iterators and encapsulation,” in Proceedings 33rd International Conference on Technology of Object-Oriented Languages and Systems TOOLS 33, IEEE, 2000, pp. 431–442.
[51] T. R. P. Language. “Option library.” (2014), [Online]. Available: https://doc.rust-lang.org/core/option/enum.Option.html (visited on 06/06/2023).
[52] Oracle. “Java optional.” (2014), [Online]. Available: https://www.oracle.com/technical-resources/articles/java/java8-optional.html (visited on 06/06/2023).
[53] Daniel. “Java 8 optional best practices and wrong usage.” (2016), [Online]. Available: http://dolszewski.com/java/java-8-optional-use-cases (visited on 06/06/2023).
[54] D. Clarke and S. Drossopoulou, “Ownership, encapsulation and the disjointness of type and effect,” in Proceedings of the 17th ACM SIGPLAN conference on Objectoriented programming, systems, languages, and applications, 2002, pp. 292–310.
[55] L. Cardelli and X. Leroy, “Abstract types and the dot notation,” in IFIP TC2 working conference on programming concepts and methods, North-Holland, 1990, pp. 479–504.
[56] M. Abi-Antoun and J. Aldrich, “Static extraction and conformance analysis of hierarchical runtime architectural structure using annotations,” in Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications, 2009, pp. 321–340.
[57] Andrew. “Linter.” (2017), [Online]. Available: https://github.com/mcandre/linters#what-is-a-linter (visited on 05/29/2023).
[58] S. Banerjee, L. Clapp, and M. Sridharan, “Nullaway: Practical type-based null safety for java,” in Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 2019, pp. 740–750.
[59] D. Brotherston, W. Dietl, and O. Lhoták, “Granullar: Gradual nullable types for java,” in Proceedings of the 26th International Conference on Compiler Construction, 2017, pp. 87–97. |