SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
C-HelperでC言語を
             効率よく勉強しよう
               サイボウズ・ラボユース
                  成果報告




13年4月5日金曜日
自己紹介


             • サイボウズ・ラボユース2期生
             • プログラミング教育に興味あり


13年4月5日金曜日
いざ会場へ




13年4月5日金曜日
迷った!!




13年4月5日金曜日
迷った!!
             _人人人人人人人人_
             > 20分無駄歩き <
              ̄Y^Y^Y^Y^Y^Y^Y ̄



13年4月5日金曜日
会場発見
             • 会場「BumB」はセキュリティに配慮
             • その証拠↓




13年4月5日金曜日
会場発見
             • 会場「BumB」はセキュリティに配慮
             • その証拠↓




13年4月5日金曜日
おまけ
             (本編)


13年4月5日金曜日
独学




13年4月5日金曜日
独学
             本を買う




13年4月5日金曜日
独学
             本を買う

              読む




13年4月5日金曜日
独学
             本を買う

              読む

             分からない




13年4月5日金曜日
独学
               本を買う

                読む

               分からない

             質問する人がいない




13年4月5日金曜日
独学
               本を買う

                    読む

               分からない

             質問する人がいない
               ::::::::::::::::::::
                 ::::::::::::::::
                   ::::::::::::
                  Λ_Λ :::::::
                 /彡ミヘ  )ー、  ::::
                  /:ノ:ヽ  \::| :::
                /:|::  \  ヽ| :::
               ‾ ̄L_ノ‾ ̄‾ ̄‾ ̄\ノ‾ ̄‾ ̄



13年4月5日金曜日
独学




13年4月5日金曜日
独学
                       ∧_∧        掲示板に質問する
                     (  ·・ω·・)
                 _|  ⊃/(___
             /    └-­(____/




13年4月5日金曜日
独学
                       ∧_∧        掲示板に質問する
                     (  ·・ω·・)
                 _|  ⊃/(___
             /    └-­(____/


              <͡/ヽ-、___
             /<_/____/ 返信来ない


13年4月5日金曜日
そうだ
             自動化、
             しよう。

13年4月5日金曜日
C-Helperとは




13年4月5日金曜日
C-Helperとは


             • C言語初学者向け静的解析ツール
             • Eclipseプラグイン


13年4月5日金曜日
静的解析

             ソースコード


                     様々な解析


             警告・提案


13年4月5日金曜日
検出例 インデントの乱れ
                1   void f(void) {
                2   int i;
                3       while(!foo()){
                4   for(i=0;i<20;i++){
                5     bar();}
                6       }
                7   }

    test.c:2:1:行頭から書き始めるのは分かりにくいため、
    スペース 4 個分インデントすべきです。
    test.c:4:1:インデントが乱れています。
    スペース 8 個分インデントすべきです。
    test.c:5:1:インデントが乱れています。
    スペース 12 個 分インデントすべきです。

                          13 / 33
13年4月5日金曜日
検出例 インデントの乱れ
                1   void f(void) {
                2   int i;
                3       while(!foo()){
                4   for(i=0;i<20;i++){
                5     bar();}
                6       }
                7   }

    test.c:2:1:行頭から書き始めるのは分かりにくいため、
    スペース 4 個分インデントすべきです。
    test.c:4:1:インデントが乱れています。
    スペース 8 個分インデントすべきです。
    test.c:5:1:インデントが乱れています。
    スペース 12 個 分インデントすべきです。

                          14 / 33
13年4月5日金曜日
検出例 インデントの乱れ
                1   void f(void) {
                2   int i;
                3       while(!foo()){
                4   for(i=0;i<20;i++){
                5     bar();}
                6       }
                7   }

    test.c:2:1:行頭から書き始めるのは分かりにくいため、
    スペース 4 個分インデントすべきです。
    test.c:4:1:インデントが乱れています。
    スペース 8 個分インデントすべきです。
    test.c:5:1:インデントが乱れています。
    スペース 12 個 分インデントすべきです。

                          15 / 33
13年4月5日金曜日
検出例 インデントの乱れ
                1   void f(void) {
                2   int i;
                3       while(!foo()){
                4   for(i=0;i<20;i++){
                5     bar();}
                6       }
                7   }

    test.c:2:1:行頭から書き始めるのは分かりにくいため、
    スペース 4 個分インデントすべきです。
    test.c:4:1:インデントが乱れています。
    スペース 8 個分インデントすべきです。
    test.c:5:1:インデントが乱れています。
    スペース 12 個 分インデントすべきです。

                          16 / 33
13年4月5日金曜日
検出例 文字列の代入
              void f(void) {
                  char arr[20];
                  arr[20] = "string";
              }



      char型配列の1つの要素に文字列を格納できません。
      strcpy を使うことを検討してください。




                          17 / 33
13年4月5日金曜日
検出例 余分なセミコロン
                           int main(void);
                           {
                           }

                      関数定義にはセミコロン ;
                      を付けません。

             Splint
               test.c:2:2: Parse Error. (For help on parse errors,
                           see splint -help parseerrors.)
               *** Cannot continue.

                                      18 / 33
13年4月5日金曜日
検出例 sizeofの使用

                    char *p = malloc(128);
                    printf("%un", sizeof(p));


             sizeof(p) は 128 ではなく 4 を返します (仮定6)。
             それは本当に意図したことですか?

             仮定 6: ポインタ変数のサイズを 4 バイト
             と仮定しています




                                19 / 33
13年4月5日金曜日
検出例 メモリリーク
                int f(void) {
                    char *p, *q;
                    p = malloc(10);
                    q = malloc(20);
                    if (!q) return -1;

                    // do something

                    free(p);
                    free(q);
                    return 0;
                }

             メモリリークする可能性があります

                          20 / 33
13年4月5日金曜日
検出例 実体定義
               hoge.c
                #include "hoge.h"

               hoge.h
                int g_x;


   ヘッダファイルには実体を定義すべきではありません。
   (extern宣言を用いてください。 (extern int g_x;) )



                        21 / 33
13年4月5日金曜日
実装
   • ソースコードをEclipse CDTでパース
   • 型情報付き抽象構文木を取得
      ソースコード          抽象構文木


        標準ヘッダ         制御フロー
             最小限の内容

                      到達定義


                        22 / 33
13年4月5日金曜日
実装
   • 制御フロー情報を基にポインタ解析
   • 種々の情報を組み合わせ、問題を検出
        制御フロー       ポインタ解析


        抽象構文木       問題検出        指摘・提案


             到達定義


                      23 / 33
13年4月5日金曜日
ねらい




13年4月5日金曜日
ねらい
             • 初学者が陥りやすいミスを認識




13年4月5日金曜日
ねらい
             • 初学者が陥りやすいミスを認識
             • 分かりやすい言葉で指摘




13年4月5日金曜日
ねらい
             • 初学者が陥りやすいミスを認識
             • 分かりやすい言葉で指摘
             • 可能なら解決策を提案


13年4月5日金曜日
ねらい
             • 初学者が陥りやすいミスを認識
             • 分かりやすい言葉で指摘
             • 可能なら解決策を提案
             • →学習効率が向上!
13年4月5日金曜日
合宿でやったこと

             • バグ取り
             • 新機能の実装
             • 囲碁
             • 政治談義

13年4月5日金曜日
新機能




13年4月5日金曜日
新機能


             • 宣言されていない関数名を警告
             • 標準関数→ヘッダ名


13年4月5日金曜日
使ってみよう

             • ブログで使い方など紹介
              「uchanote c-helper」で検索!

             • アンケートにご協力を
              修士論文研究の一環なんです…



13年4月5日金曜日
まとめ
             • バグが取れた
             • 新機能ができた
             • 政治談義できた


13年4月5日金曜日
まとめ
             • バグが取れた
             • 新機能ができた
             • 政治談義できた
                有意義な合宿!!

13年4月5日金曜日

Contenu connexe

Tendances

Fluent Feature in F#
Fluent Feature in F#Fluent Feature in F#
Fluent Feature in F#igeta
 
鬱くしい日本語のための形態素解析入門
鬱くしい日本語のための形態素解析入門鬱くしい日本語のための形態素解析入門
鬱くしい日本語のための形態素解析入門Hiroyoshi Komatsu
 
C#erがF#に這い寄ってみた
C#erがF#に這い寄ってみたC#erがF#に這い寄ってみた
C#erがF#に這い寄ってみたHiroshi Maekawa
 
RFinanceJはじめました
RFinanceJはじめましたRFinanceJはじめました
RFinanceJはじめましたNagi Teramo
 
文字の正統性
文字の正統性文字の正統性
文字の正統性t yamo
 
C++でぼくが忘れがちなこと
C++でぼくが忘れがちなことC++でぼくが忘れがちなこと
C++でぼくが忘れがちなことToshihiko Ando
 
eSys01krtt
eSys01krtteSys01krtt
eSys01krttkurotatu
 

Tendances (8)

Fluent Feature in F#
Fluent Feature in F#Fluent Feature in F#
Fluent Feature in F#
 
鬱くしい日本語のための形態素解析入門
鬱くしい日本語のための形態素解析入門鬱くしい日本語のための形態素解析入門
鬱くしい日本語のための形態素解析入門
 
C#erがF#に這い寄ってみた
C#erがF#に這い寄ってみたC#erがF#に這い寄ってみた
C#erがF#に這い寄ってみた
 
RFinanceJはじめました
RFinanceJはじめましたRFinanceJはじめました
RFinanceJはじめました
 
文字の正統性
文字の正統性文字の正統性
文字の正統性
 
C++でぼくが忘れがちなこと
C++でぼくが忘れがちなことC++でぼくが忘れがちなこと
C++でぼくが忘れがちなこと
 
eSys01krtt
eSys01krtteSys01krtt
eSys01krtt
 
esys01krtt
esys01krttesys01krtt
esys01krtt
 

En vedette

正規言語でプログラミング
正規言語でプログラミング正規言語でプログラミング
正規言語でプログラミングRyoma Sin'ya
 
Ruby × Arduinoで フィジカルコンピューティング やってみた
Ruby × Arduinoで フィジカルコンピューティング やってみたRuby × Arduinoで フィジカルコンピューティング やってみた
Ruby × Arduinoで フィジカルコンピューティング やってみたshiftky
 
人が神姫ん感(原文ママ)を感じるコンピュータ
人が神姫ん感(原文ママ)を感じるコンピュータ人が神姫ん感(原文ママ)を感じるコンピュータ
人が神姫ん感(原文ママ)を感じるコンピュータharu2036
 
ラボユース最終成果報告会(Web公開版)
ラボユース最終成果報告会(Web公開版)ラボユース最終成果報告会(Web公開版)
ラボユース最終成果報告会(Web公開版)Shinichi Awamoto
 
世界最速の正規表現JITエンジンの実装
世界最速の正規表現JITエンジンの実装世界最速の正規表現JITエンジンの実装
世界最速の正規表現JITエンジンの実装Ryoma Sin'ya
 
中間成果報告会 発表資料
中間成果報告会 発表資料中間成果報告会 発表資料
中間成果報告会 発表資料sn_monochr
 
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
サイボウズ・ラボユース 最終成果報告会プレゼンテーションサイボウズ・ラボユース 最終成果報告会プレゼンテーション
サイボウズ・ラボユース 最終成果報告会プレゼンテーションsn_monochr
 
EMNLP 2015 yomikai
EMNLP 2015 yomikai EMNLP 2015 yomikai
EMNLP 2015 yomikai Yo Ehara
 
Humor Recognition and Humor Anchor Extraction
Humor Recognition and Humor Anchor ExtractionHumor Recognition and Humor Anchor Extraction
Humor Recognition and Humor Anchor Extraction裕樹 奥田
 
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章Shuyo Nakatani
 
Learning Better Embeddings for Rare Words Using Distributional Representations
Learning Better Embeddings for Rare Words Using Distributional RepresentationsLearning Better Embeddings for Rare Words Using Distributional Representations
Learning Better Embeddings for Rare Words Using Distributional RepresentationsTakanori Nakai
 
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章Shuyo Nakatani
 
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...Shuyo Nakatani
 
A Neural Attention Model for Sentence Summarization [Rush+2015]
A Neural Attention Model for Sentence Summarization [Rush+2015]A Neural Attention Model for Sentence Summarization [Rush+2015]
A Neural Attention Model for Sentence Summarization [Rush+2015]Yuta Kikuchi
 
Kubernetes in 30 minutes (2017/03/10)
Kubernetes in 30 minutes (2017/03/10)Kubernetes in 30 minutes (2017/03/10)
Kubernetes in 30 minutes (2017/03/10)lestrrat
 
並列化と実行時コード生成を用いた正規表現マッチングの高速化
並列化と実行時コード生成を用いた正規表現マッチングの高速化並列化と実行時コード生成を用いた正規表現マッチングの高速化
並列化と実行時コード生成を用いた正規表現マッチングの高速化Ryoma Sin'ya
 
2016プロシンスポンサー 加筆版
2016プロシンスポンサー 加筆版2016プロシンスポンサー 加筆版
2016プロシンスポンサー 加筆版Hirokazu Nishio
 
I2CでRaspberry Piから 複数の周辺機器を制御する
I2CでRaspberry Piから複数の周辺機器を制御するI2CでRaspberry Piから複数の周辺機器を制御する
I2CでRaspberry Piから 複数の周辺機器を制御するHirokazu Nishio
 

En vedette (20)

正規言語でプログラミング
正規言語でプログラミング正規言語でプログラミング
正規言語でプログラミング
 
Ruby × Arduinoで フィジカルコンピューティング やってみた
Ruby × Arduinoで フィジカルコンピューティング やってみたRuby × Arduinoで フィジカルコンピューティング やってみた
Ruby × Arduinoで フィジカルコンピューティング やってみた
 
人が神姫ん感(原文ママ)を感じるコンピュータ
人が神姫ん感(原文ママ)を感じるコンピュータ人が神姫ん感(原文ママ)を感じるコンピュータ
人が神姫ん感(原文ママ)を感じるコンピュータ
 
ラボユース最終成果報告会(Web公開版)
ラボユース最終成果報告会(Web公開版)ラボユース最終成果報告会(Web公開版)
ラボユース最終成果報告会(Web公開版)
 
世界最速の正規表現JITエンジンの実装
世界最速の正規表現JITエンジンの実装世界最速の正規表現JITエンジンの実装
世界最速の正規表現JITエンジンの実装
 
中間成果報告会 発表資料
中間成果報告会 発表資料中間成果報告会 発表資料
中間成果報告会 発表資料
 
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
サイボウズ・ラボユース 最終成果報告会プレゼンテーションサイボウズ・ラボユース 最終成果報告会プレゼンテーション
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
 
Emnlp読み会資料
Emnlp読み会資料Emnlp読み会資料
Emnlp読み会資料
 
EMNLP 2015 yomikai
EMNLP 2015 yomikai EMNLP 2015 yomikai
EMNLP 2015 yomikai
 
Humor Recognition and Humor Anchor Extraction
Humor Recognition and Humor Anchor ExtractionHumor Recognition and Humor Anchor Extraction
Humor Recognition and Humor Anchor Extraction
 
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
 
Learning Better Embeddings for Rare Words Using Distributional Representations
Learning Better Embeddings for Rare Words Using Distributional RepresentationsLearning Better Embeddings for Rare Words Using Distributional Representations
Learning Better Embeddings for Rare Words Using Distributional Representations
 
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章
 
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
 
A Neural Attention Model for Sentence Summarization [Rush+2015]
A Neural Attention Model for Sentence Summarization [Rush+2015]A Neural Attention Model for Sentence Summarization [Rush+2015]
A Neural Attention Model for Sentence Summarization [Rush+2015]
 
Kubernetes in 30 minutes (2017/03/10)
Kubernetes in 30 minutes (2017/03/10)Kubernetes in 30 minutes (2017/03/10)
Kubernetes in 30 minutes (2017/03/10)
 
並列化と実行時コード生成を用いた正規表現マッチングの高速化
並列化と実行時コード生成を用いた正規表現マッチングの高速化並列化と実行時コード生成を用いた正規表現マッチングの高速化
並列化と実行時コード生成を用いた正規表現マッチングの高速化
 
2016プロシンスポンサー 加筆版
2016プロシンスポンサー 加筆版2016プロシンスポンサー 加筆版
2016プロシンスポンサー 加筆版
 
rust primer
rust primerrust primer
rust primer
 
I2CでRaspberry Piから 複数の周辺機器を制御する
I2CでRaspberry Piから複数の周辺機器を制御するI2CでRaspberry Piから複数の周辺機器を制御する
I2CでRaspberry Piから 複数の周辺機器を制御する
 

C-HelperでC言語を効率的に学習しよう

  • 1. C-HelperでC言語を 効率よく勉強しよう サイボウズ・ラボユース 成果報告 13年4月5日金曜日
  • 2. 自己紹介 • サイボウズ・ラボユース2期生 • プログラミング教育に興味あり 13年4月5日金曜日
  • 5. 迷った!! _人人人人人人人人_ > 20分無駄歩き <  ̄Y^Y^Y^Y^Y^Y^Y ̄ 13年4月5日金曜日
  • 6. 会場発見 • 会場「BumB」はセキュリティに配慮 • その証拠↓ 13年4月5日金曜日
  • 7. 会場発見 • 会場「BumB」はセキュリティに配慮 • その証拠↓ 13年4月5日金曜日
  • 8. おまけ (本編) 13年4月5日金曜日
  • 10. 独学 本を買う 13年4月5日金曜日
  • 11. 独学 本を買う 読む 13年4月5日金曜日
  • 12. 独学 本を買う 読む 分からない 13年4月5日金曜日
  • 13. 独学 本を買う 読む 分からない 質問する人がいない 13年4月5日金曜日
  • 14. 独学 本を買う 読む 分からない 質問する人がいない ::::::::::::::::::::   ::::::::::::::::     ::::::::::::    Λ_Λ :::::::   /彡ミヘ  )ー、  ::::    /:ノ:ヽ  \::| :::  /:|::  \  ヽ| ::: ‾ ̄L_ノ‾ ̄‾ ̄‾ ̄\ノ‾ ̄‾ ̄ 13年4月5日金曜日
  • 16. 独学          ∧_∧        掲示板に質問する        (  ·・ω·・)    _|  ⊃/(___ /    └-­(____/ 13年4月5日金曜日
  • 17. 独学          ∧_∧        掲示板に質問する        (  ·・ω·・)    _|  ⊃/(___ /    └-­(____/  <͡/ヽ-、___ /<_/____/ 返信来ない 13年4月5日金曜日
  • 18. そうだ 自動化、 しよう。 13年4月5日金曜日
  • 20. C-Helperとは • C言語初学者向け静的解析ツール • Eclipseプラグイン 13年4月5日金曜日
  • 21. 静的解析 ソースコード 様々な解析 警告・提案 13年4月5日金曜日
  • 22. 検出例 インデントの乱れ 1 void f(void) { 2 int i; 3 while(!foo()){ 4 for(i=0;i<20;i++){ 5 bar();} 6 } 7 } test.c:2:1:行頭から書き始めるのは分かりにくいため、 スペース 4 個分インデントすべきです。 test.c:4:1:インデントが乱れています。 スペース 8 個分インデントすべきです。 test.c:5:1:インデントが乱れています。 スペース 12 個 分インデントすべきです。 13 / 33 13年4月5日金曜日
  • 23. 検出例 インデントの乱れ 1 void f(void) { 2 int i; 3 while(!foo()){ 4 for(i=0;i<20;i++){ 5 bar();} 6 } 7 } test.c:2:1:行頭から書き始めるのは分かりにくいため、 スペース 4 個分インデントすべきです。 test.c:4:1:インデントが乱れています。 スペース 8 個分インデントすべきです。 test.c:5:1:インデントが乱れています。 スペース 12 個 分インデントすべきです。 14 / 33 13年4月5日金曜日
  • 24. 検出例 インデントの乱れ 1 void f(void) { 2 int i; 3 while(!foo()){ 4 for(i=0;i<20;i++){ 5 bar();} 6 } 7 } test.c:2:1:行頭から書き始めるのは分かりにくいため、 スペース 4 個分インデントすべきです。 test.c:4:1:インデントが乱れています。 スペース 8 個分インデントすべきです。 test.c:5:1:インデントが乱れています。 スペース 12 個 分インデントすべきです。 15 / 33 13年4月5日金曜日
  • 25. 検出例 インデントの乱れ 1 void f(void) { 2 int i; 3 while(!foo()){ 4 for(i=0;i<20;i++){ 5 bar();} 6 } 7 } test.c:2:1:行頭から書き始めるのは分かりにくいため、 スペース 4 個分インデントすべきです。 test.c:4:1:インデントが乱れています。 スペース 8 個分インデントすべきです。 test.c:5:1:インデントが乱れています。 スペース 12 個 分インデントすべきです。 16 / 33 13年4月5日金曜日
  • 26. 検出例 文字列の代入 void f(void) { char arr[20]; arr[20] = "string"; } char型配列の1つの要素に文字列を格納できません。 strcpy を使うことを検討してください。 17 / 33 13年4月5日金曜日
  • 27. 検出例 余分なセミコロン int main(void); { } 関数定義にはセミコロン ; を付けません。 Splint test.c:2:2: Parse Error. (For help on parse errors, see splint -help parseerrors.) *** Cannot continue. 18 / 33 13年4月5日金曜日
  • 28. 検出例 sizeofの使用 char *p = malloc(128); printf("%un", sizeof(p)); sizeof(p) は 128 ではなく 4 を返します (仮定6)。 それは本当に意図したことですか? 仮定 6: ポインタ変数のサイズを 4 バイト と仮定しています 19 / 33 13年4月5日金曜日
  • 29. 検出例 メモリリーク int f(void) { char *p, *q; p = malloc(10); q = malloc(20); if (!q) return -1; // do something free(p); free(q); return 0; } メモリリークする可能性があります 20 / 33 13年4月5日金曜日
  • 30. 検出例 実体定義 hoge.c #include "hoge.h" hoge.h int g_x; ヘッダファイルには実体を定義すべきではありません。 (extern宣言を用いてください。 (extern int g_x;) ) 21 / 33 13年4月5日金曜日
  • 31. 実装 • ソースコードをEclipse CDTでパース • 型情報付き抽象構文木を取得 ソースコード 抽象構文木 標準ヘッダ 制御フロー 最小限の内容 到達定義 22 / 33 13年4月5日金曜日
  • 32. 実装 • 制御フロー情報を基にポインタ解析 • 種々の情報を組み合わせ、問題を検出 制御フロー ポインタ解析 抽象構文木 問題検出 指摘・提案 到達定義 23 / 33 13年4月5日金曜日
  • 34. ねらい • 初学者が陥りやすいミスを認識 13年4月5日金曜日
  • 35. ねらい • 初学者が陥りやすいミスを認識 • 分かりやすい言葉で指摘 13年4月5日金曜日
  • 36. ねらい • 初学者が陥りやすいミスを認識 • 分かりやすい言葉で指摘 • 可能なら解決策を提案 13年4月5日金曜日
  • 37. ねらい • 初学者が陥りやすいミスを認識 • 分かりやすい言葉で指摘 • 可能なら解決策を提案 • →学習効率が向上! 13年4月5日金曜日
  • 38. 合宿でやったこと • バグ取り • 新機能の実装 • 囲碁 • 政治談義 13年4月5日金曜日
  • 40. 新機能 • 宣言されていない関数名を警告 • 標準関数→ヘッダ名 13年4月5日金曜日
  • 41. 使ってみよう • ブログで使い方など紹介 「uchanote c-helper」で検索! • アンケートにご協力を 修士論文研究の一環なんです… 13年4月5日金曜日
  • 42. まとめ • バグが取れた • 新機能ができた • 政治談義できた 13年4月5日金曜日
  • 43. まとめ • バグが取れた • 新機能ができた • 政治談義できた 有意義な合宿!! 13年4月5日金曜日