Turning procedural and structural knowledge into programs has established methodologies, but what about turning knowledge into probabilistic models? I explore a few examples of what such a process could look like.
This article sheds light on how warnings work in GCC, why some warnings are false, and when warnings might not be output. Also discussed are the trade-offs made when implementing checks in GCC.
@SafeVarargs
Is a cure for the warning: [unchecked] Possible heap pollution from parameterized vararg type Foo.
Is part of the method's contract, hence why the annotation has runtime retention.
Is a promise to the caller of the method that the method will not mess up the heap using the generic varargs argument.
M. Rigger, S. Marr, B. Adams, and H. Mössenböck. Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ACM, (August 2019)
T. Zhou, M. Jantz, P. Kulkarni, K. Doshi, and V. Sarkar. Proceedings of the 28th International Conference on Compiler Construction, page 147--158. New York, NY, USA, ACM, (2019)