分このところ関数型言語の書籍の発行・話題で賑わっています。Googleが発表したGo言語という名前も知っている方もいるでしょうし,マイクロソフトからはF#という関数型言語がリリースされたことをすでにご存じの方もいるでしょう。最初にその理由の1つであるキーワードから見ていきましょう。皆さんがインターネットで何か調べる際,検索サービスを利用することでしょう。中にはGoogle社の検索サービスなども一度は利用したことがあるのではないでしょうか?このGoogle社が提供している検索サービスは『クラウド』と呼ばれる大規模な分散コンピューティングシステムで実現されています。ここ数年に発売されているパーソナル・コンピュータに搭載されているCPUが『マルチコア(複数CPU搭載⁠)⁠』になっているのを目にすることでしょう。CPUが複数搭載される利点は,簡単に説明すると,今までのパーソナル・コンピュータに比べて,処理能力が倍増するということになります。このことにより,仮想現実,3D,音声入力などなど,様々な利用分野を考えることができます。並列コンピューティング(分散コンピューティング)先ほどマルチコア搭載のパーソナル・コンピュータで,仮想現実,3D,音声入力などなど様々な利用分野を考えられると説明しましたが,一般的なパーソナル・コンピュータでマルチプロセッサを有効に活用するには,どうしたら良いでしょうか?マルチプロセッサを有効活用するには,並列化を意識したプログラムを行う必要があります。具体的には下記2点の内容です。詳しくは,関数型書籍を参照してください。同時に動作するタスクに分割する共有リソースに対するロックや競合,同期の課題(一貫性の課題)上記2点を意識した,並列化が可能なアルゴリズムでプログラムを開発すれば,並列化(マルチプロセッサ)による性能向上が得られることになります。このアルゴリズムを実現するには,言語レベルで「関数に同じ引数を与えれば,同じ値を返す」必要があります。これは,近年主流のオブジェクト指向言語であるC#やJavaでは難しい問題です。以下のC#で記述したプログラムを見てください。3が返るこのプログラムは「total」という変数に依存します。totalの値を変えてしまうと,結果がかわってしまいます。ところが,関数型で記述した下記例では,引数以外の要素に左右されていないことがわかります。3が返るこのように,複数のCPUを使ったプログラミングや分散コンピューティングが,昨今関数型言語に注目が集まっている理由となります。関数型プログラミング入門.NETで使われているジェネリックやラムダ式は,関数型言語では早くから提供されていた機能であり,.NET向けに実装されたものといえます。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。書店・販売店の皆様へデベロッパアドミニストレータWEB+デザインライフスタイルサイエンスニュース&レポートメールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。