2022 Fiscal Year Research-status Report
ソースプログラムの頻出パターンに基づくプログラミング学習支援
Project/Area Number |
22K12291
|
Research Institution | Wakayama University |
Principal Investigator |
村川 猛彦 和歌山大学, システム工学部, 准教授 (90304154)
|
Project Period (FY) |
2022-04-01 – 2025-03-31
|
Keywords | ソフトウェア解析 / C言語 / プログラミング / 学習支援システム |
Outline of Annual Research Achievements |
手動による頻出パターン取得の支援のため,頻出パターン表示システムを開発した.本システムは,頻出パターンとなるトークン列を入力にとり,システムが保持するソースプログラム群の中からそのトークン列を含むソースプログラムを検索する機能,およびソースプログラム中のトークン列の出現箇所を表示する機能を持つ. Webアプリケーションとして構成しており,Ruby言語で記述し,CGIプログラムとして実現している.本事業より前に研究代表者が開発したプログラムを使用して,対象となるC言語で書かれた各ソースコードをトークン分割して配列にし,RubyのPStoreライブラリを用いてファイルに保存することで,ソースコードのファイル名をキーとして読み出せるようにしておく.また入力となる頻出パターンもトークン分割し配列として保持する. 頻出パターンとソースコードとの照合は次のようにして行う.すなわち,頻出パターンの初めのトークンと一致する,ソースコードのトークン位置を逐次探索する.見つかれば,頻出パターンの次のトークンを逐次探索し,すべて見つかるまで繰り返す.ただし括弧類の対応のため,カウンタを用意しておく.初期状態は0で,ソースコードのトークンの配列の逐次探索中に開き括弧を見つければカウンタを1増やし,閉じ括弧を見つければカウンタを1減らす.ソースコードのトークン配列において対応する開き括弧と閉じ括弧は,同じカウンタの値に限定する. 指定した頻出パターンに対し,ソースプログラムには複数出現する場合にも,本システムで検出し,異なる色で表示することを試みた.頻出パターンとして,「for(;;){}」「int main(){}」などを与えたときに適切に表示されること,また前者については二重ループも適切に表示されることを確認した.
|
Current Status of Research Progress |
Current Status of Research Progress
3: Progress in research has been slightly delayed.
Reason
頻出パターンの機械的な取得が当初予定通りに実現できていないため.
|
Strategy for Future Research Activity |
研究実施計画に書いた「頻出パターンの取得」「学習支援システムの更新および利用」を進めていく.成果を取りまとめながら,国内・海外で成果発表を積極的に行う.
|
Causes of Carryover |
当該年度においては,計画していた成果発表が行えず,1件の口頭発表は他の科研費の旅費より充当したため,旅費を執行できなかった. 令和5年度は,大学院生によるシステム開発,および国内・海外の成果発表を積極的に行う.
|
Research Products
(1 results)