int max(x, y) { return (x < y)? y : x; }
int max(x, y) { if (x < y) { x = y; } return x; }
問. つぎの資格を埋めなさい。
問. つぎの資格を埋めなさい。
問. つぎの資格を埋めなさい。
観察: 文脈が長くなるほど、単語の意味は類似してくる。
単語が何を指しているかは不明でも、 似たようなものだろうということは推測できる。
問. 以下の例で fp.readLine()
の返り値は
2回利用される。どのように利用されているか?
private BufferedReader fp; public String get() { String s = null; s = fp.readLine(); int i = s.indexOf(' '); return s.substring(0, i); }
グラフ化するとこうなる:
readLine()
からたどったノードをデータパスとする:
readLine()
- #this:indexOf()
- #arg1:substring()
- return
readLine()
- #this:substring()
- return
readLine()
の返り値がどのように使われたかを示している。
private BufferedReader fp; public String get() { String s = null; s = fp.readLine(); int i = s.indexOf(' '); return s.substring(0, i); } void show() { String x = get(); System.out.println(x+"!!"); }
グラフ化するとこうなる:
readLine()
のデータパスは:
readLine()
- #this:indexOf()
- #arg1:substring()
- L:+
- #arg0:println()
readLine()
- #this:substring()
- L:+
- #arg0:println()
readLine()
の使い方」ということになる。
const int a = 3; int b = a + 1;
List<Integer>.add()
List<String>.add()
x = (c)? A() : B();
以下のソースコードからデータパスを抽出した:
プロジェクト | SLOC | メソッド | ノード |
---|---|---|---|
xz-1.8 | 6,864 | 747 | 54,170 |
jhotdraw-5.3 | 14,611 | 2,269 | 66,508 |
antlr4-4.7.2 | 31,122 | 2,206 | 78,362 |
jedit-5.3.2 | 116,416 | - | - |
tomcat-8.5.33 | 235,009 | 21,954 | 1,443,730 |
このほかの予定検体: ant, junit, weka, javaassist, pmd