著者
上嶋 祐紀 住井 英二郎
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.26, no.1, pp.139-154, 2009

C言語サブセットのプログラムを安全なJava言語のプログラムに変換する方式を実装した.そのような変換のためには,C言語独特の操作であるポインタ演算を,Javaプログラムで安全に模倣する必要がある.これを実現するために,まずC言語のポインタやメモリブロックを表現するJavaのクラスを定義した.次に,これらのクラスを利用するようなJavaへの変換規則を定め,規則に従ってトランスレータを実装した.また,C言語ではポインタと整数を相互にキャストすることが可能なので,整数もポインタと同様のオブジェクトに変換しなければならない.しかし,すべての整数をポインタと同様に表現すると大幅に効率が悪化する.そこで,データフロー解析により,ポインタが代入されない基本型の変数は,Javaの通常の基本型変数に変換する,などの最適化を実装した.9個のベンチマークプログラムで実験したところ,最適化前の変換結果コードは元のCプログラムに対し3.3倍~585倍程度の実行時間がかかったが,最適化後は(元のCプログラムに対し)1.3倍~5.9倍程度に改善した.
著者
横尾 真 岩崎 敦 櫻井 祐子 岡本 吉央
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.29, no.3, pp.3_39-3_53, 2012-07-25 (Released:2012-09-25)

本編では非協力ゲーム(発展編)として,非協力ゲームの均衡概念で最も重要なものであるナッシュ均衡について詳しく述べる.2人ゼロサム標準形ゲームでは,プレイヤが選択可能な純粋戦略の個数に関する多項式時間でナッシュ均衡を計算できる.しかしながら,プレイヤが交互に行動を繰り返し選択するような複雑なゲームでは純粋戦略の個数が膨大となる.本編では,このような複雑な2人ゼロサムゲームの均衡を計算する例として,ポーカー等のカードゲームにおいてナッシュ均衡を計算するアルゴリズムを紹介する.一方,一般の有限2人標準形ゲームでは,ナッシュ均衡が多項式時間で計算可能かどうかが分かっていない.しかしながら,ナッシュ均衡の存在自体は証明されているので,PやNPのような判定問題に関する概念は,ナッシュ均衡計算問題の難しさを議論するためには適切ではない.本編では,ナッシュ均衡計算問題の難しさを議論する際に有用な問題のクラスであるPPAD,およびPPAD完全性について解説する.
著者
栗原 秀輔 瀬野 瑛 澤村 一
出版者
一般社団法人日本ソフトウェア科学会
雑誌
コンピュータソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.25, no.4, pp.52-59, 2008-10-28
被引用文献数
2

多値議論の論理は不確実な知識を基に不確実な問題に対して議論を可能とする.本論文では,LMAのソーシャルウェブ:SNS,Wikipediaへの応用を述べる.これらは,現在および未来の情報社会に最も影響を与えるであろうソーシャルウェブアプリケーションだと言われている.SNSについては,mixiのマイミクシィへの登録承認をLMAをもとに判断するエージェントを提案する.Wikipediaについては,Wikipediaの削除問題に着目し,LMAをもとにその問題の原因となった記事を削除するべきか否かという問題について議論し,削除依頼による議論の分析を行うエージェントを提案する.
著者
上野 雄大 大堀 淳
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.29, no.1, pp.1_191-1_210, 2012-01-26 (Released:2012-02-26)

本論文では,多相レコード計算のコンパイル方式を応用し軽量に実現可能な,型付き関数型言語の第一級オーバーロード方式を提案する.この方式の下では,オーバーロードされた関数は,オーバーロードされた型上のみを動く型変数で束縛された多相型を持つ第一級の関数として扱われる.本機能の実現に要求されるものは,型抽象におけるインスタンス変数の生成と,型適用におけるインスタンスの選択のみであり,これらは多相レコードコンパイルと同様の方式で達成できる.本方式はSML#コンパイラ上に実装され公開されている.
著者
阪上 紗里 浅井 健一
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.26, no.2, pp.2_3-2_17, 2009-04-24 (Released:2009-06-24)

「プログラムの残りの計算」を表す継続を扱う為の基礎言語体系として,対称λ計算(Symmetric λ-calculus, SLC)がFilinskiによって提案されている.SLCにおいては項と継続が完全に対称な形をしており,項を扱うのと同じように継続を扱うことができる.そのため,項と継続を統一的に議論するのに適していると思われるが,これまでSLCについての研究はほとんどなされていない.ここでは,まずSLCをsmall step semanticsで定式化し直し,型付き言語の基本的な性質であるProgressとPreservationを満たすことを証明する.次に,SLCが継続計算を議論・表現するのに適していることを示すため,(1) FelleisenのCオペレータを含むcall-by-value言語,ΛC計算,および(2) Parigotのcall-by-name λμ計算が,どちらも自然にSLCに変換できることを示す.近年call-by-valueとcall-by-nameの双対性が項と継続の対称性と絡めて注目されているが,ここでの結果はそれに対する洞察を与えるものと期待される.
著者
山本 章博
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.23, no.2, pp.2_29-2_44, 2006 (Released:2006-06-30)
被引用文献数
1

帰納論理プログラミングとは,論理プログラムを用いた機械学習手法であり,構造化データからのデータ分析と知識獲得への応用が進められている.本稿では,計算の立場から学習という行為を捉えた上で,パラメータ推定と比較しつつ,論理プログラミングの理論と計算論的学習理論を基礎にして帰納論理プログラミングの基礎理論について解説する.そして,演繹的な推論によって定義される順序関係である精密化が,帰納論理プログラミングの学習アルゴリズムの設計と分析に威力を発揮することを詳述する.さらに,帰納論理プログラミングの最近の研究動向についても述べる.
著者
小形 真平 松浦 佐江子
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.27, no.2, pp.2_14-2_32, 2010-04-27 (Released:2010-06-27)

業務システム開発では,顧客と開発者の間の要求の誤解,顧客の暗黙的要求の存在,開発者の要求の誤った仕様化を原因として,要求仕様の品質が低下する問題がある.そこで,顧客が妥当性を確認した要求分析モデルによるシステム開発手法の確立を目的として,業務系Webアプリケーション開発を対象に,UML要求分析モデルからWeb UIプロトタイプを自動生成する手法を提案する.本研究では,業務を構成する業務遂行手順および業務データをそれぞれ,サービスを構成するユーザとシステムのやり取りおよびやり取り中の入出力データとみなす.そして,この振舞いとデータの観点から,アクティビティ図・クラス図・オブジェクト図を用いて要求分析モデルを定義し,要求分析モデルの妥当性を確認するためのHTML形式のUIプロトタイプを生成する.本稿では,複数の適用事例を通して提案手法の有効性について議論する.
著者
大堀 淳
出版者
Japan Society for Software Science and Technology
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.31, no.1, pp.1_30-1_42, 2014

コンパイラの構文解析器に広く使用されているLR構文解析の原理を解説する.LR構文解析の基礎をなすアイデアは,「正規言語の解析手法を繰り返し使い,文脈自由文法の幅広いクラスを解析する」という(多くの優れたアイデアがそうであるように)単純なものである.Knuthは,この直感的で単純なアイデアを基礎とし,緻密な理論的な展開と巧みな実用化戦略によって,構文解析におけるブレークスルーを達成した.本解説では,LR構文解析が基礎とするアイデアに即してその原理とアルゴリズムの構造を解説する.これらを理解するならば,一般に複雑で難解なものと受け取られているLR構文解析法の全体像が容易に理解できるはずである.本解説では,オートマトンの基礎知識を持つ一般の読者が,LR構文解析の考え方と原理を理解できることを目指す.
著者
古澤 仁 高井 利憲 Hitoshi Furusawa Toshinori Takai 鹿児島大学理学部数理情報科学科 産業技術総合研究所システム検証研究センター Department of Mathematics and Computer Science Faculty of Science Kagoshima University Research Center for Verification and Semantics AIST.
出版者
日本ソフトウェア科学会
雑誌
コンピュータソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.23, no.3, pp.14-34, 2006-07-26
参考文献数
46

クリーニ代数は正規言語を公理的に取り扱うための代数的枠組みである.正規表現が計算機科学のいたるところに現れることを考えると,クリーニ代数が計算機科学に現れる構造の自然なクラスの性質を公理的にとらえ得るであろうことが容易に推測されるであろう.クリーニ代数の定義は,等式とホーン節で与えられるため,ある現象をクリーニ代数においてモデル化すると,その現象が簡単な式変形によって検証できるという特徴をもつ.本稿ではクリーニ代数の基本的な性質とそのプログラム理論への応用例について紹介する.A Kleene algebra is an algebraic framework to handle regular languages. Considering that regular expressions appear everywhere in fields of computer science, it may be easy to infer that a Kleene algebra can captures properties of natural class of structures appear in computer science. Since Kleene algebras are defined by equations and Horn clauses, if a phenomenon is interpreted in Kleene algebra, reasoning of the phenomenon is performed by simple transformations of expressions. We introduce basic properties and application examples of Kleene algebras to theory of programs.
著者
岩間 太 小林 直樹
出版者
一般社団法人日本ソフトウェア科学会
雑誌
コンピュータソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.19, no.2, pp.58-64, 2002-03-15

プログラミング言語Javaの仮想機械では,実行前にコードの検証を行い,不正なコードを排除している.しかし,現在の検証器では,並行スレッドによるロックの獲得・解放の整合性に関する検証は行っていない.この問題を解決するため,本研究では,AbadiとStataによるバイトコード検証のため型システムを改良する.新しい型システムでは,各オブジェクトのロックが獲得・解放される順序の情報をオブジェクトの型に付加することにより,ロックの正しい使用を保証する.
著者
古瀬 淳
出版者
一般社団法人日本ソフトウェア科学会
雑誌
コンピュータソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.22, no.2, pp.90-94, 2005-04-26

Extensional polymorphismは関数型言語ML上での非パラメトリック多相性を実現するための枠組のーつであり,generic valueという,純粋なパラメトリック多相性の下では不可能な機能を提供する.我々は型ディスパッチと型パターンマッチを利用したgeneric valueの既存のコンパイルにおける意味論と効率の問題を指摘し,新たに[フロー」と呼ばれる,型付け情報を整数グラフに変換した物をディスパッチする変換方法を提案する.フローを使うことで,より自然な意味論に沿った変換が可能になり,多重定義値の呼び出しの効率も改善される.
著者
中田 育男 佐々 政孝 Ikuo Nakata Masataka Sassa 筑波大学電子情報工学系 筑波大学電子情報工学系
雑誌
コンピュータソフトウェア = Computer software (ISSN:02896540)
巻号頁・発行日
vol.3, no.1, pp.47-56, 1986-01-14

正規表現で定義される構造をもった入力を意味処理まで含めて処理しなければならない場合は多い.そのような処理を形式的に取り扱う方法としては文脈自由文法に意味規則を付加した属性文法を使うものがあるが,それでは入力の構造との対応が必ずしもよくないし,処理方法も複雑である.本論文では,このような入力の構造と意味を自然に記述できる意味規則つき正規表現を提案し,その処理法について述べる,最初に,正規表現の中に意味規則を挿入した意味規則つき正規表現を定義し,次に,意味規則つき正規表現から意味処理つき非決定性有限オートマトン(NFA)への変換アルゴリズム,および,NFAから意味処理つき決定性有限オートマトン(DFA)への変換アルゴリズムを与える.最後に,意味規則つき正規表現を,正規表現で定義できる構造をもったデータを処理するプログラム,すなわちデータ構造直結型プログラムに応用するために必要な意味規則および変換アルゴリズムの拡張方法を述べる.