著者
窪田 貴文 河野 健二
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.39, no.3, pp.3_17-3_32, 2022-07-22 (Released:2022-09-22)

C++はコンパイラ,ウェブブラウザエンジンなど様々なシステムソフトウェアを開発するプログラミング言語として用いられている.しかし,近年システムソフトウェアが大規模化にするにつれて C++プロジェクトのビルド時間が長くなってきていることが問題となっている.そこで本稿では C++プロジェクトのビルドを高速化する手段として有効である3つの手段 (Unity Builds, Zapcc, そして C++ Modules) について解説をする.まず,実際に大規模な C++プロジェクトにおけるビルド時間の現状について紹介し,そのビルド時間のブレイクダウンを示すことで C++のビルドにおいてどの処理がボトルネックになっているか明らかにする.そして各手法のアプローチ・実装について紹介し,適用後にどの程度改善されるかを示す.また,各手法の課題についても議論する.
著者
中丸 智貴 山崎 徹郎
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.39, no.3, pp.3_33-3_46, 2022-07-22 (Released:2022-09-22)

本論文では,メソッド呼び出しの連鎖の誤りを型検査器で検出可能にする Fluent API の実装方法について,その基礎から2019年の研究論文まで解説する. 具体的には,そのような実装方法が“型定義による構文解析器の表現”とみなせるという基礎的な考え方と,プッシュダウンオートマトンなどの抽象機械を型定義によって表現する手法を提案する研究論文の概要解説を行う. これらに加え,上述の Fluent APIの実装方法を実用するために開発された技術と今後開発が必要な技術についての解説も行う.
著者
上田 和紀 加藤 紀夫
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.21, no.2, pp.126-142, 2004-03-25 (Released:2010-01-04)

階層的グラフの書換えを基本原理とするプログラミング言語モデルLMNtalについて,設計の背景および関連研究を交えながら解説する.LMNtal(elementalと発音)は,並行計算や多重集合書換えをはじめとするさまざまな計算に関する概念の統合を目指して設計した言語モデルであり,(1)計算モデルとして簡明であることと,(2)多様なプラットフォームで利用可能な実用プログラミング言語のベースとなること,の両立を目指している.処理系も稼働を始めている.本解説ではなるべく多くのプログラム例を交えながら,LMNtalの言語機能について解説するとともに,他の言語や計算モデルに見られる言語機能との関連付けを行なう.関連計算モデルに言及する部分は,並行計算および論理プログラミングに関する初歩的な知識があるとよりよく理解できるあろう.しかし,LMNtal自体の言語機能やプログラム例は予備知識なしで十分理解できるように解説したい.
著者
齋藤 孝道
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.19, no.4, pp.296-307, 2002-07-15 (Released:2012-01-10)

本稿では,ネットワークシステムにおけるセキュリティの要とも言える認証プロトコルについて,その前提となる議論からメカニズムや設計例などを交えながら,特に,その「安全性」についての説明を試みたいと思う.通信の盗聴,改竄,成り済ましなどの脅威があるインターネットのような通信路において,たとえば,認証を行っているネットワークシステムを用いるとなぜ「安全」な通信を実現できるのか?という疑問を解く鍵となるように,なるべく分かり易くまとめてみた.また,単に利用の観点だけでなく,仕組みの理解を中心にまとめた.たとえば,認証プロトコルを設計や変更する際に,もしくは,それをネットワークアプリケーションなどに実装して組み入れる際に,なにかしらの助けになるように,実例を用いて説明を試みている.
著者
齋藤 孝道
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.19, no.5, pp.392-405, 2002-09-25 (Released:2012-01-10)

前回の「認証プロトコルの基礎」に引き続き,本稿では,公開鍵対を用いて実現される認証プロトコルの機能と構成について説明をする.主に,認証プロトコルを還元的に扱い,それを構成する各機能の働きを説明し,これらの機能をいかに組み合わせるかによって,安全な認証プロトコルは実現されるのかを説明していく.
著者
阿部 洋丈
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.23, no.1, pp.1_1-1_14, 2006-01-26 (Released:2008-09-09)
被引用文献数
1

本稿では,近年注目を集めているpeer-to-peer型分散システムを構築するための基盤技術,分散ハッシュテーブル(Distributed Hash Table; DHT)についての入門的な解説を行う.分散ハッシュテーブル技術は,システム全体を管理する中央サーバを持たないようなpeer-to-peerシステム(pure peer-to-peerシステム)において,効率的なオブジェクト発見の実現を可能にする.
著者
住井 英二郎
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.25, no.2, pp.2_28-2_38, 2008 (Released:2008-06-30)

約2000行のMLコードにより実装された,教育目的のコンパイラMinCamlについて議論する.対象言語は値呼び,非純粋,暗な単相型を持つ高階関数型言語である.レイトレーシングを含むいくつかのアプリケーション・プログラムに対し,実行速度においてObjective CamlやGCCとほぼ同等のコードを生成することができた.
著者
TAKANO Yuuki MIURA Ryosuke YASUDA Shingo AKASHI Kunio INOUE Tomoya
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.36, no.3, pp.3_85-3_103, 2019-07-25 (Released:2019-08-24)

Application-level network traffic analysis and sophisticated analysis techniques, such as machine learningand stream data processing for network traffic, require considerable computationalresources.In addition, developing an application protocol analyzer is a tediousand time-consuming task.Therefore, we propose a scalable and flexible traffic analysis platform (SF-TAP) for the efficientand flexible application-level streamanalysis of high-bandwidth network traffic.By using our flexible modular platform, developers can easilyimplement multicore scalable application-level stream analyzers.Furthermore, as SF-TAP is horizontally scalable, it manageshigh-bandwidth network traffic.To achieve this scalability, we separate the network trafficbased on traffic flows, and forward the separated flows to multipleSF-TAP cells, each comprising a traffic capturer andapplication-level analyzers.This study discusses the design, implementation and detailed evaluation of SF-TAP.
著者
南 雄之 宋 剛秀 番原 睦則 田村 直之
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.35, no.3, pp.3_65-3_78, 2018-07-25 (Released:2018-09-25)

本論文では,擬似ブール (Pseudo-Boolean; PB)制約の集合を命題論理式の充足可能性判定 (SAT)問題へ符号化する新しい手法として,ブール基数 (Boolean Cardinality; BC)制約を経由する方法を提案する.提案手法は,次の3つの特徴を持つ. 1つ目は,SATソルバーの単位伝播により一般化アーク整合性の維持が可能な点である. 2つ目は,同じ解を持つ同値なPB制約であれば係数や右辺の値が異なっても,同一の中間表現およびSAT問題に符号化可能な点である. 3つ目は,項数に対して係数の種類が少ないPB制約に対しては,中間表現が簡潔になり少ない節数でSAT符号化可能な点である.このようなPB制約は,国際PBソルバー競技会のベンチマーク問題にも頻出している.計算機実験では,代表的な既存手法で一般化アーク整合性維持が可能なBDD法,およびそれより弱い整合性検査が可能なSorter法と符号化後の節数と求解性能を比較した.結果として,異なる係数の種類が10%以下であるようなPB制約について,提案手法が節数と求解性能に関して比較した2手法よりも良いことを確認した.
著者
KAWADA Tomoaki HONDA Shinya MATSUBARA Yutaka TAKADA Hiroaki
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.39, no.2, pp.2_39-2_68, 2022-04-21 (Released:2022-06-21)

CFI (Control-Flow Integrity) is a class of defensive techniques against control-flow attacks such as Return-Oriented Programming. We propose a lightweight CFI scheme for RTOS-based applications, TZmCFI, which utilizes TrustZone for Armv8-M, a hardware-assisted security feature for embedded systems with tight resource constraints. TZmCFI embodies several existing CFI techniques to provide a self-contained toolset for building an instrumented application. The toolset is comprised of a modified LLVM-based compiler and a runtime library called Monitor. The modified LLVM code generator implements the traditional shadow stack technique by inserting calls to Monitor. To protect exception handlers, Monitor replaces an application's exception vector table and wrap interrupt handlers with exception trampolines, which implement variations of the shadow exception stack technique we proposed in our previous work. The performance evaluation on NXP Semiconductors LPC55S69 indicated a -7–35% increase in the execution times of FreeRTOS+MPU system calls and a 9.36% runtime overhead on CoreMark.
著者
木谷 有沙 浅井 健一
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.27, no.3, pp.3_51-3_66, 2010-07-27 (Released:2010-09-27)

本研究では,限定継続処理shift/resetを含むλ計算の,正当性の保証され,かつ機械語により近い実装を得ることを目指している.その手法として,shift/resetを定義するCPSインタプリタに対し,変換前後の評価器の等価性が保証されている変換のみを用いて抽象機械及び遷移規則を得る.これはDanvyらによって提案された手法に則っており,本論文でも同様のCPS変換,非関数化を最初に行っている.ただし,より実際の機械語実装に近づけるために,スタック導入と環境退避という二つの新しい変換を導入した.本論文ではこれらの変換の概要と変換前後の等価性について触れる.これらの変換の結果,CPSのインタプリタに妥当なプログラム変換のみを用いて,スタックへの環境退避を行う抽象機械を得られることが分かっている.今後,この抽象機械に他の妥当な変換を更に施すことで,既存の機械語に類似した命令セットを処理する機械が得られると考えている.
著者
崔 恩瀞 藤原 賢二 吉田 則裕 林 晋平
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.32, no.1, pp.1_47-1_59, 2015-01-26 (Released:2015-03-26)

リファクタリングとは,ソフトウェアの外部的振る舞いを変化させることなく,内部の構造を改善するプロセスを指す.研究者・実務者ともに,開発プロジェクトにおいて過去に実施されたリファクタリングを知りたいという要求がある.そこで,リファクタリングの実施を自動的に検出する手法(リファクタリング検出手法)が数多く提案されている.これらの手法は,多様な国際会議や論文誌において発表されており,研究者や実務者にとって研究成果を概観することは容易ではない.本稿では,リファクタリング検出手法の中でも,盛んに研究が行われている成果物の変更履歴解析に基づく手法を中心に紹介を行う.まず,本稿におけるリファクタリング検出の定義および分類について述べる.その後,成果物の変更履歴解析に基づく手法を紹介し,今後行われる研究の方向性について考察を行う.
著者
吉岡 信和 大久保 隆夫 宗藤 誠治
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.28, no.3, pp.3_43-3_60, 2011-07-26 (Released:2011-09-26)

不特定多数が接続するインターネットが普及し,その上でのサービスが企業や個人にとって非常に重要な位置を占めるようになってきている.社会から見てサービスの利便性が向上している反面,悪意のある攻撃による社会への被害も増えてきており,サービスをセキュアに提供することが必須になってきている.しかし,セキュリティに関して考慮すべきことは多く,サービスをセキュアに提供することは容易ではない.本論文では,セキュリティの課題を整理し,その課題が,ソフトウェア技術によってどのように解決できるかを紹介する.そして,未解決な課題がどこにあるかを整理し,今後の研究の方向性を考察する.