n月刊ラムダノート Vol.3, No.1(2021)

n月刊ラムダノート Vol.3, No.1(2021)

通常価格 ¥1,500(税込¥1,650、送料当社負担) 特別価格

  • 紙書籍をお届けします(PDFがついてきます)
  • 2021年8月10日(火)より順次発送予定
  • 年末年始や大型連休など、1週間から10日程度、配送のお休みをいただく場合があります。詳しくはお知らせをご覧ください。

計算機好きのための技術解説情報誌

  • エヌゲッカンラムダノート(不定期刊行)
  • 96ページ
  • A5判
  • 紙書籍は1色刷
  • 2021年8月6日 第3巻第1号/通巻5号 発行

n月刊ラムダノートは、nヶ月ごとに刊行される、計算機好きのための技術解説情報誌。コンセプトは「いろんなIT系技術書から1章ずつ選んできた解説記事の集まり」です。今号は3本の記事をお送りします。

目次

#1 検索エンジンのしくみ(打田智子)

Web検索に代表される現代の情報検索、特にテキストデータを対象とする全文検索の基盤は、一般に「検索エンジン」と呼ばれるソフトウェアによって提供されている。検索エンジンでは、単純なファイル内検索とは異なり、転置インデックスと呼ばれるデータ構造を用いることで大量のドキュメントに対する高速な検索を可能にしている。

本稿では、転置インデックスの基本的な構造と、その構造をどのように利用して全文検索が実現できるのかを紹介する。

(2023年1月25日追記:本記事の主な内容は書籍『検索システム ― 実務者のための開発改善ガイドブック』に再編されています。)

#2 「継続」のひみつ(遠藤侑介)

プログラマーは「関数Aの途中で別の関数Bを呼び出し、その戻り値を使って関数Aの続きを実行する…」といった具合でプログラムを書いていく。これはプログラミング言語の観点では、関数Aの処理の途中でその時点の「継続」を伴って関数Bの処理に飛び、その処理が終わったら「継続」で指示されていた箇所に飛ぶことだ、とみなせる。

本稿は、このような教科書的な説明だけで「継続がわかった」という人以外のために、ある時点の継続を取り出せるRubyの機能で遊びながら継続の面白さと恐ろしさを解き明かしていく。

#3 CPUは如何にしてソフトウェアを高速に実行するのか(takenobu.hs)

CPUの理論的な動作については入門書も多い。しかし現代の実用的なCPUのように高速でソフトウェアを実行できるようにするためには、その単純な動作の繰り返しに加えてさまざまな実装上の工夫が必要になる。実装に関する情報は非公開のことも多く、特にソフトウェア技術者にとってはブラックボックスに見えることも多いだろう。

本稿では、100MHz~1GHz級のCPU開発に携わってきたハード技術者の立場から、CPUの高速化を支えるパイプライン化とスーパースカラ化の概要について説明する。また、現実のコンピュータシステムで高速化を阻むいくつかの要因と、それらを乗り越えるためにCPU製品に導入されている各種の機能についても説明する。

(2023年1月25日追記:本記事の主な内容は書籍『プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するか』に再編されています。)

執筆者紹介

打田智子(#1)

株式会社LegalForceにて検索基盤の開発リードを務める。Python形態素解析ライブラリjanome開発、Apache Luceneコミッター。著書に『Apache Solr 入門―オープンソース全文検索エンジン』(技術評論社、共著)。https://mocobeta.medium.com/

遠藤侑介(#2)

Rubyの開発者(コミッター)の一人。クックパッド株式会社。RubyやC言語で「ちょっと変わったプログラム」を作るのが趣味。著書に『あなたの知らない超絶技巧プログラミングの世界』(技術評論社)、『RubyでつくるRuby ゼロから学びなおすプログラミング言語入門』(ラムダノート)。訳書に『抽象によるソフトウェア設計』『型システム入門プログラミング言語と型の理論』(ともにオーム社、共訳)。

takenobu.hs(#3)

CPU関連のハードウェアエンジニア。性能と消費電力を重視するCPUの設計及び応用開発に携わる。ソフトウェアの性能と電力改善の支援も担う。一番好きなプログラミング言語はHaskell、次はアセンブリ。