Introduction to Reading
This Reading page lists the classic, inspiring and thoughtful articles I've read. We can learn from them about the technological frontiers, the industrial trends or even some philosophical ideas. You may have read some of them, but I don't think there's no more need to read them again no matter for how many times you've read them. Let's start reading!
What Every C Programmer Should Know About Undefined Behavior
- Author: Chris Lattner
- Publishing Date: 2011-05-13
- Reading Date: 2024-03-27
- Link: Click here to read the article
This article unveils the dark side of the C programming language. C is popular for its portability and flexibility. It's nonetheless unsafe and vulnerable as most C programmers care little about its undefined behaviours. You will see how potentially buggy programs are made exploiting undefined behaviours and get advice on how to write a robust and safe C program with and without the help from modern compilers.
In defense of soundiness: a manifesto
- Authors: Benjamin Livshits, Manu Sridharan, Yannis Smaragdakis, et al.
- Publishing Date: 2015-01-28
- Reading Date: 2024-10-07
- Link: Click here to access the article
This article shows the ubiquity of unsoundness in practical program analysis tools and suggests that we should be objective and honest when introducing our new approaches or tools. The cause of unsoundness of static analysis can be found in the compromise between soundness and practicality, in the usually-ignored language features that are currently hard to analyse and in the uncertainty of program runtime behaviours. Pretending that a tool is sound in fact makes its true ability opaque and is indeed a cheat.
Pick your contexts well: understanding object-sensitivity
- Author: Yannis Smaragdakis, Martin Bravenboer et Ondřej Lhoták
- Publishing Date: 2011-01-26
- Reading Date: 2025-06
- Link: Click here to access the article
This article gracefully describes object-sensitivity, a variant of context-sensitivity in pointer analysis. It proposes type-sensitivity, a kind of object-sensitivity with an excellent balance between efficiency and precision. This article also gives suggestions and criteria on the selection of different object-sensitive elements. It corrects some opinions most people had on which flavour of object-sensitivity is better. You should read this article if you'd like to get deeper understandings on context-sensitivity.