著者
権藤 克彦 明石 修 伊知地 宏 岩崎 英哉 河野 健二 豊田 正史 上田 和紀
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.26, no.4, pp.4_17-4_29, 2009-10-27 (Released:2009-12-27)

「ソフトウェア開発で得られる経験や知見を成果とする論文(=ソフトウェア論文)を書くことは難しい」とよく言われますが,「なぜ難しいのか」の分析はこれまで十分にはなされていません.本論文では本誌のソフトウェア論文特集を編集した経験から,「ソフトウェア論文を書くことがなぜ難しい(と感じる)のか」の分析を試みます.問題は「著者の作文の問題」だけではなく,ソフトウェア自体,ソフトウェア工学,査読者,社会状況にも要因があることを示します.要因が多岐に渡るので結論を短く言うことが難しいです.あえて言えば「著者の作文技術にも問題はあるが,(著者の責任ではない)本質的な難しさも別にあるので,著者が自らハードルを上げてしまうことは避けるべき」「ソフトウェア論文の追試としての価値を査読者は評価すべき」です.また作文技術の問題を解決する一助として,ソフトウェア論文の執筆チェックリストを最後に示します.
著者
乾 敦行 工藤 晋太郎 原 耕司 水野 謙 加藤 紀夫 上田 和紀
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.25, no.1, pp.1_124-1_150, 2008 (Released:2008-02-29)

LMNtalは階層グラフ書換えに基づく単純な言語モデルであり,接続構造の表現に論理変数を,階層構造の表現に膜を用いることを特徴としている.LMNtalは,多重集合や並行処理やモビリティなどの概念を持つさまざまな計算モデルの統合を目指すと同時に,階層グラフ書換えに基づく実用的なプログラミング言語を提供してその有用性を示すことを重要な目標としている.本論文の目的は,プログラミング言語としてのLMNtalの諸機能を紹介し,その記述力を多くの例題を用いて示すことである.我々は,算術,ルール適用制御,モジュール,他言語インタフェースなどの重要機能を階層グラフ書換えモデルの中に組み込む方法を設計し実装した.記述力の検証のためにλ計算,π計算,ambient計算,CHRなどの代表的な関連計算モデルのエンコーディングを行い,それらを実際に処理系上で動作させることに成功した.
著者
加藤 紀夫 上田 和紀
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.46, no.1, pp.155-155, 2005-01-15

階層的グラフ構造の書換えに基づく並行言語において,プロセスが形作る構造に関する静的な性質を表現し,解析する新しい枠組みを提案する.本発表では,階層グラフ書換え言語としてLMNtal を例に取り,この言語に型体系を導入する具体的な方法を示す.LMNtal はグラフのノードとしてアトムを持ち,アトム間を結ぶ1 対1 のリンクを持つ.さらにアトムは膜と呼ばれる構文で階層化され,各膜がその膜内に対して局所的に適用される書換えルールを持つ.グラフ書き換え言語をプログラミング言語として見たときには,プログラムの書き方や処理系の最適化に関する指針に関する研究が求められる.しかし,従来の並行グラフ書換え言語は,LMNtal と違って一般のグラフ書き換えを実用に供するプログラミング言語にするというアプローチの研究が不足しているため,一般のプログラムに対して上述の指針を与えるために役に立つ解析技術はあまり存在しない.本発表で提案する型体系は,はじめにアトムをアクティブなものと,非アクティブなものに分類し,アクティブアトムにつながる可能性のあるプロセスやデータを解析することに基づいた強い型をプログラムに導入する.この型体系は,並行論理型言語のうえでの強モード体系をLMNtal に応用したものであるが,膜に関する性質を扱う点で新しい.本発表では,型体系の型安全性を証明する.We propose a new framework for formalizing and analyzing static properties on the shapes of processes in concurrent languages based on hierarchical graph rewriting. We take LMNtal as an example language and show a concrete method to introduce a type system to this language. LMNtal has atoms as graph nodes and one-to-one links that connect together atoms. Moreover, atoms are hierarchized with membranes and each membrane has rewriting rules local to itself. Viewed as programming languages, graph rewriting languages ask for research on how to write programs and how to optimize the runtime system. However, since the graph rewriting languages so far have lacked in research towards making themselves practical programming languages, few analysis techniques exist that can be used for solving the above issues. Our type system firstly classifies atoms into active ones and passive ones, and then introduces to the program strong types based on which processes as well as data can be connected to active atoms. The type system has been obtained by applying the strong mode system of concurrent logic languages to LMNtal, but is new in that it can deal with properties on membranes. The proof of the type safety will be shown.
著者
中島 秀之 上田 和紀 戸村 哲
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.24, no.6, pp.745-753, 1983-11-15

Prologに代表される述語論理型言語は プログラムを その仕様に近い形で記述できることを大きな特徴とする.しかし入出力に関しては 命令型言語と同様 副作用を通じて行うことが多かった.本論文では 述語ではなく変数を通じた 副作用によらないPrologの入出力を論じる.また従来の多くの言語の入出力は データの転送と 内外部表現間の変換を まとまった機能として提供していた.本論文では 入出力はたんなる文字列の転送ととらえ 変換操作は 言語に文字列操作機能を用意し それを用いて記述するようにした.これらの工夫により 入出力の概念が単純でわかりやすいものになり しかもその扱いが柔軟になったと考える.順アクセス媒体との入出力は たんなる文字列変数を通じて行えばよいが データ構造の工夫により 窓構造をもったディスプレイヘの出力も扱える.文字列操作は Prologのパターンマッチング機能を用いて簡潔に記述できる.実行可能パターンの考え方をとりいれてパターンと述語とを統一的に扱うので 文字列に導入した基本操作が連結のみであるにもかかわらず パターンの記述能力は強力である.提案する機能はProIog/KR上に作成中であるが さらに効率のよい作成技法にもふれる.残された課題には 複雑なパターンマッチングにおけるバックトラックの制御などがある.
著者
湯淺 太一 近山 隆 上田 和紀 森 眞一郎 八杉 昌宏 小宮 常康 五島 正裕
出版者
京都大学
雑誌
特定領域研究
巻号頁・発行日
2001

本研究では,計算機システムが備えている広域性と局所性の両方に対応できる適切な計算量モデルとソフトウェアシステムの構築を可能にするために,計算連続体と呼ぶ概念に基づいて,さまざまな観点から,計算に関する既存概念の再検討,統合,および発展を図ってきた.主要な研究成果は次のとおりである.1.計算連続体モデルによる計算量解析本プロジェクトでは,単一計算機内のメモリ階層から計算機間のネットワーク遅延の差異までを,統一的に,かつ簡潔に表現できる計算量モデルとして「計算連続体モデル」を提案し,このモデルに基づいた計算量解析結果が,従来方法よりも現実の計算に近いものであることを示した.また,複雑な並列アルゴリズムに対しても,その振舞いが把握できるように,計算連続体モデルの仮想機械を設計し,実装した.2.並行言語モデルLMNtalに関する研究また本プロジェクトでは,階層グラフの書換えに基づくスケーラブルな並列言語モデルとしてLMNtalを設計し,このモデルの改良を進めてきた.このモデル上でプロセス構造の解析技術を確立するとともに,実用に供するプログラミング言語としての実装を行った.階層グラフ書換えは,多重集合書換え計算モデルや自己組織化に基づく計算モデルなどを特別な場合として含んでおり,既存の多くの計算モデルの架け橋となることが期待できる.3.局所性を重視した処理系実装方式の研究プログラミング言語の実装において,特に局所性を重視することによって,実行性能が飛躍的に向上することを実証した.その例として,階層的グループ化に基づくコピー型ごみ集めによる局所性改善をあげることができる.これは,スタック溢れに備えたキューを併用することにより,少量のスタックで大部分を深さ優先順にコピーするごみ集め方式のさらなる改良の提案であり,仮想記憶の局所性だけでなく,キャッシュの局所性も考慮した実装となっており,実際の計算機上で極めて効率の良い処理系を実現できる技術である.
著者
上田 和紀 加藤 紀夫
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.21, no.2, pp.126-142, 2004-03-25 (Released:2010-01-04)

階層的グラフの書換えを基本原理とするプログラミング言語モデルLMNtalについて,設計の背景および関連研究を交えながら解説する.LMNtal(elementalと発音)は,並行計算や多重集合書換えをはじめとするさまざまな計算に関する概念の統合を目指して設計した言語モデルであり,(1)計算モデルとして簡明であることと,(2)多様なプラットフォームで利用可能な実用プログラミング言語のベースとなること,の両立を目指している.処理系も稼働を始めている.本解説ではなるべく多くのプログラム例を交えながら,LMNtalの言語機能について解説するとともに,他の言語や計算モデルに見られる言語機能との関連付けを行なう.関連計算モデルに言及する部分は,並行計算および論理プログラミングに関する初歩的な知識があるとよりよく理解できるあろう.しかし,LMNtal自体の言語機能やプログラム例は予備知識なしで十分理解できるように解説したい.
著者
上田 和紀
出版者
早稲田大学
雑誌
挑戦的研究(萌芽)
巻号頁・発行日
2018-06-29

本年度は,熱可塑性樹脂を用いた積層型3D印刷のための要素技術の有効性確認を主目標に,以下の研究開発を実施した.(1) 大規模構造物の構築技術.土木および建築分野のトラス構造を参照しつつ,長尺のチャネル材を代替するビーム材の設計と試作を行った.寸法精度や強度等の要請からPETG系の素材を用いて,連結・分解が可能で必要な強度をもつビームを,アルミチャネル材の半分以下の重量で作成できる見通しを得た.また設計のパラメタ化を部分的に実現した.構築においては日本伝統建築の継手手法が非常に有効であることを確認した.今後さらに最適化の余地があるが,立体トラスを含む多様な構造への展開の足がかりを得ることができた.(2) 大型プロッタ用ヘッドの設計と構築.前年度設定した,大型ホワイトボードの垂直面で動作するプロッタの構築という課題に対し,ペンとイレーザを搭載可能なプロッタヘッドの試作を行った.プロッタヘッドは複雑な形状と多くの可動部品からなり,交換可能かつ印刷容易な部品から構成するという方針に基づいた結果,約50点の3D印刷部品からなる構成となった.本作業を通じて,(項目(1)で制作した)レールに搭載したヘッド全体のスムーズな移動,構成要素の並進動作や弾性保持,摩擦の最小化などの課題の洗い出しを行った.体系的設計論は今後の課題となったが,ソフトウェアにおけるアジャイル開発に近い開発方法論の有効性を確認した.これらを通じ,実際的な機能部品および多数の部材の組合せが必要な大規模構造物を支えるモジュール化技術およびソフトウェア技術の洗い出しを進めることができた.これとは別に,学部学生実験の自宅展開に利用する機械部品多数(二百数十点)の設計制作を,成果展開の一環として行った.
著者
村山 敬 工藤 晋太郎 櫻井 健 水野 謙 加藤 紀夫 上田 和紀
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.25, no.2, pp.2_47-2_77, 2008 (Released:2008-06-30)

LMNtalは階層グラフ書換えに基づく言語モデルであり,リンク構造による接続構造と膜による階層構造の表現・操作機能によって,動的データ構造や多重集合書換えを扱うプログラムを簡潔に記述することができる.LMNtalは書換え規則の適用を単位とする細粒度の並行性をもっており,正しく効率的な実装方式は自明でない.そこで言語処理系をJavaを用いて開発し,効率をできるだけ犠牲にせずに正しく動作する実装方式を確立した.処理系は中間命令列へのコンパイラ,その解釈実行系及びJavaソースへのトランスレータからなり,他言語インタフェースをはじめとするさまざまな有用な機能を備えている.複数の膜を貫くリンク構造を正しくつなぎかえるための処理や,複数の膜にある書換え規則を正しく非同期実行させるための工夫も行っている.本論文では,処理系開発において主要な技術的課題となった階層グラフ構造の保持方法,中間命令体系,安全な非同期実行方式等を中心として,公開中のLMNtal処理系の設計と実装について論じる.
著者
上田 和紀 細部 博史 石井 大輔
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.28, no.1, pp.1_306-1_311, 2011-01-25 (Released:2011-02-18)

時間の経過に伴って状態が連続変化したり,状態や方程式系自体が離散変化したりする系をハイブリッドシステムと呼ぶ.我々は,不確実値の扱い,シミュレーションと検証の統合などの観点から,制約概念に基づくハイブリッドシステムモデリング言語HydLaの設計と実装を進めてきた.HydLaは,制約階層概念の採用によって制約条件を過不足なく与えることを容易にした点を特徴とするが,種々の言語機能の相互作用のためにその意味論の定式化は自明ではない.本論文では,HydLaの宣言的意味論を定式化して考察を加えるとともに,宣言的意味論から導かれる性質や帰結を具体例を用いつつ論じる.