読者です 読者をやめる 読者になる 読者になる

BoostCon 2010 : 5/13

C++

Ruediger Berlich: Genevaライブラリによる分散パラメトリック最適化

この発表では、分散最適化アルゴリズムのオープンソースライブラリであるGenevaを導入します。
Genevaは、マルチコアシステムとクラスタ上での大規模なパラメトリック最適化問題の解決策を
許可し、グリッド、クラウド環境でさえ使用することができます。
Genevaは同時に最適化問題に取り組み、最大1000人のクライアントでテストされました。


この話では、分散コンピューティングの文脈におけるパラメトリック最適化について議論します。
Genevaは極度にBoostに基づいており、この話ではこのライブラリコレクションで作った経験の概観を含みます。


十分な時間とネットワーク接続が可能であるなら、Genevaライブラリの実用的な
デモンストレーションを行います。



Joao P. R. Abecasis: QtとBoostによるクロスプラットフォーム開発

このワークショップの意図は、Qtライブラリの簡潔な概要と、
QtとBoostを混合するための現在の現実的解決策を提供することです。


とくに私は、MOCモデルとQObjectモデル(BoostとQtを混合したプロジェクトのための構造システムインテグレーション)を調べ、
Boostベースのコンポーネントを小さなサンプルアプリケーションに基づくQObjectシグナル/スロット実装に
融合させる様相を調査するつもりです。


私は、相互運用問題と、それがどのように改善することができるかについて
Boostコミュニティからフィードバックを集めたいと考えています。



Nevin Liber: Type Erasure

C++ Template Metaprogrammingで見つかった定義から始め、
Type Erasureとは何かと、それがどのような利点とコストがあるかについて話します。
継承ベースのインタフェースから、それをType Erasureで変換する例から始めます。
Boost.AnyとBoost.Functionの簡易実装をカバーするつもりです。


regular型とクラスの概念について触れます。
( http://stlab.adobe.com/wiki/index.php/Image:2008_06_26_classes_that_work.pdf )


それと共に、Copyable/Assignable型のコンテナを使用することで
Boost.shared_ptrとBoost.Pointer Containerを比較するつもりです。



Eric Niebler: Protoによる実用的なDSELの設計

この発表は、Boost.Protoで有用なDSELを急速に構築する方法に注目するでしょう。


このセッションは、数個の現実世界のDSELの設計と実装に踏み出すでしょう。
簡単な例(例えば、Boost.Assignのmake_list_of())から始めて、
中級(例えば、Howard Hinnantのfutureグループ)、
最後に、単純化されたPhoenixライブラリの設計について解説します。
現実世界のライブラリ設計問題への解決策に重点をおきます。
特定の現実世界の問題を通じて、ProtoによってC++でそれを実装する価値があるように、
一般的なDSELの価値が明白になるでしょう。
また、コンパイル時間とテンプレートのエラーメッセージについて議論します。



Dean Michael Berris: 柔軟なヘッダオンリーC++ネットワークライブラリ実装の手法

この論文は、Boost.Asio上に単純ではあるが強力なヘッダオンリーC++ネットワークライブラリを提供する
cpp-netlibプロジェクトによって使用された様々な手法に重点を置きます。


一般的なプログラミング法則に従うベストプラクティスから発生している一方、
使用される手法のうちのいくつかは他の既存のライブラリから借りられます。
この論文は、共通メッセージ型、型安全なURIパーサーおよびオブジェクト表現の
非常にモジュラーで柔軟な実装を達成するために使用されるイディオムと同様に
ライブラリの異なる部品の構成およびセマンティクス的に一貫した
HTTPクライアントを強調することを目標とします。


この論文は、ライブラリの様々なモジュールの実装の全体にわたって使用される
現代C++の手法に関する調査と、同様にcpp-netlibプロジェクトへの入門として役立ちます。



Marshall Clow: A MIME library for Boost

インターネットプロトコル中のデータをカプセル化する最も一般的な方法は
MIME(Multipurpose Internet Mail Extensions:多目的インターネットメール拡張)を使用することです。
このフォーマットはHTTP、emailおよび他の多くのプロトコルの中で使用されます。


私は、作成、解析、およびMIME構造の操作のために、Boostを包含するという視点から開始し、
このライブラリを作る際の設計選択について話しましょう。
(提案された)Boost.MIMEライブラリはDean Michael Berrisのネットワークライブラリによって使用される(だろう)。


MIME処理ライブラリは、(スレッド、ネットワークI/Oおよび状態マシンを合わせた)ネットワークプロトコルを
実装するために必要とされる基本ビルディングブロックのうちの1つです。



Joel Falcou, Jean-Thierry Lapreste: The Numerical Template Toolbox : 高性能コンピューティングのための加速(Boost)されたGeneric配列ライブラリ

配列のようなデータ構造上での集中的、あるいは非自明なコンピューティングを
行うことは、科学的なコンピューティング、ビデオゲーム開発、
および他のフィールドで最も一般的なタスクのうちのひとつです。
この事実は、そのようなタスクを行うために、ツール、言語、そしてライブラリといった
かなりの数のものによってバックアップされます。
私たちが自身をC++に基づいた解決策に制限する場合、
1ダース以上のライブラリはテンプレートメタプログラミングに基づいた
Blitz++やEigen2といったBLAS/LAPACKC++バインディングが存在しています。
これらのライブラリの全てが良いパフォーマンス、または良い抽象化を提供する場合、
そられのどれも非常に多くのユーザー型に適合するようには思えません。


ここで私たちは、Numeric Template Toolbox(NT2)を提供します。
これはテンプレートメタプログラミングで、
配列に基づいた演算ライブラリで、
直感的であるが拡張可能なユーザーAPIと開発者SDKを提供している間に、
メモリハンドリングと自動的な並行処理のようなアーキテクチャ
懸念に関して良い性能を出すためにrock-solid実装を目指します。
また、全体のライブラリ設計とパフォーマンスのために
Boost.Components(MPI, Proto, Fusion, PP, Serialization, etc...)を
使用しているという付加価値を強調します。



David Sankel: Functional Programming in C++

関数型プログラミング(FP)手法は、一般的で、簡潔で、合成可能で、正確なコードを生成します。
最近まで、これらの手法の多くは学究的な世界と難解プログラミング言語(esoteric programming language)の
領域に制限されていました。
新たなC++とboostでの開発は最終的にこれらの高度な技術にアクセス可能にします。


このセッションの最初では、いま可能なFP手法のHowとWhyを調査します。
私たちは代数のデータ型、ポイントフリー高階関数、純粋、ジェネリックプログラミング、
型族(Type Families)、圏論および実用的な関数記号をカバーするでしょう


セッションの第2部では、FPの事例研究について話します。
第1に、運動コントローラーに基づいた組み込みドメイン特化言語(EDSL)です。
第2に、他に類を見ないジェネリックXMLシリアライズフレームワークです。



Roshan Naik: Logic Paradigm for C++

論理型パラダイム(LP)は、オブジェクト指向、命令型、関数型のパラダイムと比較して、
主流言語では表現をほとんど見ない、強力でチューリング完全なプログラミングパラダイムです。
LPは時々、プログラミングの聖杯と呼ばれるものへのコンピュータ科学の重要なアプローチです
「ユーザーが問題を延べ、コンピュータがそれを解決する」。


理論の起源は、アリストテレスが論理的な推論に厳格さをもたらすために形式論理を構築した
約紀元前300年までさかのぼります。
ラッセルとホワイトヘッドが数学をすべて実行することができるかもしれないことを示した時、
理論は、現代の論理へ最近(1900年の初め)成熟しました。


この話は、Boostへ提案することを目的とする新たなオープンソースライブラリである
Castorを中心に展開します。
LPをサポートするBoostの能力の拡張に加えて、これはBoostプログラマ
LPと関数型のパラダイムからの機能を組み合わせて、イテレータや範囲の必要なしで
ストリーム、アルゴリズムおよびコンテナの統合を可能にするでしょう。


この話は、C++でLPの基本的な入門を提供します。
そして、あなたをこのパラダイムについて考えるようにするための多くの例が続きます。
私たちは、既存のBoostとC++の概念で、それがどのように自然に混じるか話します。
最後に、プログラマが自由にパラダイムを混合しマッチすることができる場合に
強力なマルチパラダイム解決がどのように出現するか確かめるために範囲を広げます。
LPのきれいで深い統合が、C++を源泉とする多くのデザインパターンがいまだ発見されていないことが
この話で明確になるでしょう。



Dave Abrahams, Hartmut Kaiser: BoostCon 2011 Kickoff Meeting


5/14(金)に続く。
それと、5/11の「Michael Caisse: Using Spirit V2: Qi and Karma」の訳が
間違って「Joel Falcou, Jean-Thierry Lapreste: The Numerical Template Toolbox : 高性能コンピューティングのための加速(Boost)されたGeneric配列ライブラリ」を訳していたのであとで修正します。