• 検索結果がありません。

学位名 博士(工学)

N/A
N/A
Protected

Academic year: 2021

シェア "学位名 博士(工学)"

Copied!
5
0
0

読み込み中.... (全文を見る)

全文

(1)

名古屋工業大学学術機関リポジトリ Nagoya Institute of Technology Repository

高品質・生産性向上を実現する言語処理系と構造化 データ表現に関する研究

著者 前田 和昭

学位名 博士(工学)

学位授与番号 13903乙第294号 学位授与年月日 2016‑03‑23

URL http://doi.org/10.20602/00003209

(2)

学位の種類 学位記番号

学位授与の日付 学位授与の条件 学位論文題目

マェダ カズアキ

前田 和昭

博士(工学)

論博第294号 平成28年3月23日

学位規則第4条第2項該当 論文博士

高品質・生産性向上を実現する言語処理系と構造化データ表現に関 する研究

(A Study on Language Processors and Structured Data to Improve Productivity and Quahty in Software Products)

論文審査委員 主査 教授

教授 教授 教授

岩田 彰 犬塚 信博 松尾 啓志 伊藤 孝行

論文内容の要旨

本論文では,ソフトウェア工学の知見にもとづき,高品質のソフトウェアを効率良く生産する ために考案した

・パーザを迅速に開発する手法:2段階パージング

・構文定義を効率よく記述する手法:ドメイン特化言語による構文定義

・構造化データの簡潔な表現:ドメイン特化言語による構造化データ表現

・構造化データの教育への応用:漢宇の部品展開と筆順データ記述

について述べる.

 第1章では,本研究の背景として,言語処理系と構造化データに関する経験を述べる.第2 章では,本論文の前提となる事項を整理するために,オープンソースとコンパイラについて,

特にパーザ(構文解析プログラム)と,パーザ生成系を中心に述べる.第3章では,パーザを開 発するときの課題を明示し,本論文が提案するアプローチについて概説する.

 プログラム開発のためにコンパイラが作られ,多くのコンパイラのソースコードが公開され ている.公開されたソースコードは自由に閲覧でき,コンパイラの修正や拡張に使われている.

しかし,コンパイラのソースコードを他のイログラム開発の生産性向上に使うことはなかった.

第4章では,公開されているソースコードを使ってコンパイラを改造し,迅速なパーザ開発を

可能にした2段階パージングについて述べる.(瀞やJavaなどのプログラミング言語が複雑に

(3)

なるにつれ,その言語仕様を満足するパーザを開発することは困難な作業となっている.考案 した2段階パージングでは,パーザ生成系を入れ替えて,パーザ動作を記録するコンパイラ(ス テップ1)を提供する.さらに,入れ替えたパーザ生成系は,元のコンパイラのための構文規則 を読み込み,新たな構文規則を生成する.ツール開発者は,薪たな構文規則に実装したいアク ションを埋め込み,その後ゴ通常のパーザ生成系を使って別のパーザ(ステップ2)を作りあげ る、2段階パージングでは,既存のコンパイラを改造したステップ1と,実装したいアクション を埋め込んだステップ2を接続することで,高品質のパーザを迅速に開発できる.

 第5章では,パーザを効率良く開発するために,Rubyによるドメイン特化言語で構文規則を 記述できるように設計した新しいパーザ生成系にっいて述べる.従来のパーザ生成系は,構文 規則に付随して記述するアクションにエラーがあったとしても,そのエラーを含んだソースコ ードを生成し正常終了する.したがって,エラーの発見と修正に手間がかかる.そこで,Ruby によるドメイン特化言語を使うことにより,エラーを発見・修正しやすくした.

 第6章では,開発現場で使っているダイアグラムを,簡潔に表現できることを目指して設計 した構造化データ表現について述べる.ここでは,Rubyによるドメイン特化言語として構造化 データを設計し,構造化データのための定義言語を設計し,その定義からプログラムを生成す るためのツールを実装し,人手で読み書きする作業効率を向上させることができることを示し た.さらに,構造化データを読み書きするためのライブラリ10種類を選び性能評価を行った.

その結果,データサイズと実行時間の両面で,バイナリ形式には及ばないものの十分に良い性 能を示すことができた.

 第7章では,構造化データの教育への応用として,漢字の部品展開と筆順データを構造化デ ータで記述し解析したことについて述べる.言語処理系の成果を教育分野へ応用したもので,

小学校で学ぶ漠字を全て構造化データで表現し,解析を進めた結果,漢字の提出順序および字 種数に偏りがあることが分かった、

 本論文で述べた2段階パージングとドメイン特化言語による構造化データ表現は,その研究 成果が実用システムに組み込まれ製品として出荷された.C#とVi8ua18asic。N班のための逆 エンジニアリングツールを開発するため,2段階パージングを使って実装したパーザを企業に提 供した.このときの経験では,迅速にパーザを開発でき,しかも,製品リリース後のバグ報告

は少なかった.また,汎用ソフトウェアで描かれた企業独自のダイアグラム数百枚を人手でデ ータ化するために,ドメイン特化言語による構造化データ表現を設計した.さらに,ダイアグ ラムエディタから構造化データを利用するためのライブラリを実装し企業に提供した.このダ イアグラムエディタは,Javaプログラム生成機能とともに,システム開発業務で利用され,仕 様変更と保守作業を繰り返しながら安定した製品になった.

 以上のように,ソフトウェア工学の分野で研究活動を行い,言語処理系と構造化データ表現

に関して,高品質のソフトウェアを効率良く生産するための手法の考案を行い,実務で十分に

使える手法であることが確認できた.

(4)

論文審査結果の要旨

本論文では,ソフトウェア工学の知見にもとづき,高品質のソフトウェアを効率良く生産する ために考案した,

・迅速にパーザを開発する手法:2段階パージング

・効率良くパーザを開発する手法:ドメイン特化言語による構文定義

・構造化データの簡潔な表現:ドメイン特化言語による構造化データ表現

・構造化データの教育への応用:漢字の部品展開と筆順データ記述 について述べる.

 プログラム開発のためにロンパイラが作られ,ソースコードを含めて多くのコンパイラが公 開されている.公開されたソースコードは,自由に閲覧でき,コンパイラの修正や拡張に使わ れている.しかし,コンパイラのソースコードを,他のプログラム開発の生産性向上に使うこ とはない.第3章では,逆エンジニアリングツール開発のために,公開ソースコードを使って コンパイラを改造し,迅速なパーザ開発を可能にした2段階パージングについて述べている.

C#やJavaなどのプログラミング言語仕様が複雑になるにつれ,仕様を満足するパーザ(構文 解析プログラム)を開発することは困難な作業となっている.

考案した2段階パージングでは,パーザ生成系を入れ替えることでソースコード中の構文規則 を抜き出し,また抜き出した構文規則を活用する情報を提供することで,短期間でのパーザ開 発を可能にする.

 第4章では,パーザを効率良く開発するために,Rubyによるドメイン特化言語で構文規則 を記述できるように設計・実装した新しいパーザ生成系について述べている.従来のパーザ生 成系は,構文規則に付随して記述するアクションコード中にエラーがあったとしても,そのエ ラーを含んだソースコードを生成し正常終了する.したがって,エラーが何行目にあるのかを,

パーザ生成系が生成したソースコードを追いかけることになり,エラーの発見と修正に手間が かかる.そこで,Rubyによるドメイン特化言語を使うことにより,構文規則とアクションコ ードの両方を同じ言語で記述可能として,エラーを発見・修正しやすくした.また,薪しいパ ーザ生成系を実装するときに,R曲yプログラムを解析する必要があり,ここでも2段階パー ジングが応用できることが分かった.

 第5章では,実務のために描かれたダイアグラムを,簡潔に表現できることを目指して設計 した,ドメイン特化言語による構造化データ表現について述べている.ここでは,Rubyによ るドメイン特化言語で構造化データを表現するためのRibONと,構造化データのための定義 言語RibSNを設計し, RibSNの定義からプログラムを生成するためのツールR輌bGe鵬を実

装した.

 第6章では,構造化データの教育への応用として,漢字の部品展開と筆順データを構造化デ ータで記述し解析したことを述べている.言語処理系の開発を長年続けてきた成果を教育分野 へ応用したもので,小学校で学ぶ漢字を全て構造化データで表現し解析を進めた結果,漢字の 提出順序および字種数に偏りがあることが分かった.

 本論文で述べた2段階パージングとドメイン特化言語による構造化データ表現は,その研 究成果が実用システムに組み込まれ製品として出荷された.(堵とV8.Netのための逆エンジ ニアリングツールを開発するため,2段階パージングで実装したパーザを企業に提供した.こ のときの経験では,短期間でパーザを開発でき,しかも,リリース後のバグ報告は非常に少な

かった.

 汎用ソフトウェアで描かれた特定企業独自のダイアグラム数百枚分を人手でデータ化する

ために,ドメイン特化言語による構造化データ表現を設計した.さらに,独自のダイアグラム

エディタから構造化データを利用するためのライブラリを実装して企業に提供した.このダイ

(5)

アグラムエディタは,Javaソースコード生成機能とともに,オンラインシステム開発業務で 利用され,仕様変更と保守作業を繰り返しながら安定した製品になった.

  以上のように,ソフトウェア工学の分野で研究活動を行い,言語処理系と構造化データ表 現に関して,高品質のソフトウェアを効率良く生産するための手法の考案を行い,実務で十分 に使える手法であることが確認できた.

 本研究の成果は、関連学会の学術雑誌論文として9編、国際会議論文として 編(いずれも

審査有り)として発表されている。これらの成果は情報工学の新たな発展に寄与するところ大

である。これらを総合して、本論文は博士(工学)の学位論文として認定する。

参照

関連したドキュメント

また 、TMS による 推論機構 においても 先の知識ベースが利用可能であることを示

性を担いながら事業性の低い商業劇場を独自の視点と基本空間構成の工夫により、複合化

   第 3 章は 、個 別要 素法 による衝撃実験のシミュレーションを 行ったもので、コンク リート構造物の局部破壊現象を追跡 する手法として個別要素法による数値解析法を提 案し 、鋼 板補

   「超高圧直流ケーブル用新種プラスチッ ク絶縁材料に関する研究」では、先ず、結晶構

 第2章では、リン酸四カルシウム(TeCP)及び無水リン酸水素カルシウム(DCPA)を粉体成分とするCPC

 解析はZhang et aL(2007)による回転硬化型弾塑性構成式Cyclic mobility modelによる土水

鮎章では、ホーチミン市を対象として、1993年・1998年・2…年{・公鍵続3回}こわた

が空洞の発達を経て,短期間で陥没というマクロなスケールの被害に至る,時間的・空間