コンパイラと言語設計への招待(2021)

2026/07/05 20:54

コンパイラと言語設計への招待(2021)

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Douglas Thain 准教授による「コンパイラと言語設計への導入」の第 2 版は、ノートルダム大学における CSE 40243 コース用に開発されたものであり、C プログラミング、データ構造、コンピュータアーキテクチャについて経験を持つ学部学生をターゲットにした一学期分の教材となっています。本書では、C に似た言語を動作する X86 または ARM アセンブリへと変換するコンパイラの構築が可能となり、スキャンとパースからコード最適化までを網羅する 12 章に加え、プロジェクトおよび B-Minor 言語に関する補論も含まれています。本書は GitHub リポジトリ「compilerbook-examples」を通じて、スキャナ、パーサ、テストケースなどの実践的リソースへのアクセスを提供しています。著者は個人利用・学術利用を許可しますが、商業的な配布を禁止しており、各章の PDF も無料オンライン資源として提供されています。また、hardcover や paperback の版は compilerbook.org で購入も可能です。読者は今後のアップデートを受け取るためにメーリングリストに参加でき、誤植に関する報告は電子メールで送信することができ、その寄稿は次の版で謝意が表明されます。本 open educational resource は、理論的な言語設計と現代コンピューティング環境に必要な実践的実装技能を結びつけるものです。

本文

コンパイラおよび言語設計への導入(第 2 版)

書籍概要

  • 著者: ノートルダム大学のスティーブン・ドゥーグラス・ザイン教授
  • 開発背景: ノートルダム大学で開催される CSE 40243「コンパイラ」講義のための教材として開発された無償のオンライン教科書
  • 目的: 半期程度の期間でコンパイラの構成法を学び、C 言語を読み込んで x86 および ARM アセンブリへと翻訳する簡易コンパイラを構築できることを目標とする。
  • 対象読者:
    • C プログラミングの経験がある学部生
    • データ構造およびコンピュータアーキテクチャに関する講義を受講したことがある人
  • 特徴: コンパイラのゼロからの構築は、コンピューターサイエンス分野における通過儀礼とされており、高い難易度を持つとともに多くの分野に深い洞察をもたらす楽しいプロジェクトです。

購読および配布について

  • 形式: 完全無料の PDF デジタル教材(ハードカバー版やペーパーバック版も購入可)。
  • 利用許諾:
    • 許可: 個人および学術目的でのダウンロード、印刷、利用は可能です。
    • 禁止: 商業的な印刷または配布は厳禁です。
  • 最新情報へのアクセス:
    • ローカルコピーではなく、最新の修正版を常に反映させるため、以下の公式サイトからの入手を強く推奨します。
      https://compilerbook.org
      
  • 更新情報の受け取り方: 新しい告知やアップデートを受け取るには、著者のメールリストへの登録が推奨されます。

目次

本書は以下のような構成で成り立っています。

  • 第 0 章: 序論的な事項
  • 第 1 章: 概説
  • 第 2 章: 素早い巡視
  • 第 3 章: 走査(スキャンニング)
  • 第 4 章: パース(解析)
  • 第 5 章: 実践におけるパース
  • 第 6 章: 抽象構文木
  • 第 7 章: 意味解析
  • 第 8 章: 中間表現
  • 第 9 章: メモリアレンジメント
  • 第 10 章: アセンブリ言語
  • 第 11 章: コード生成
  • 第 12 章: 最適化

補論

  • 補論 A: サンプル授業プロジェクト
  • 補論 B: B-Minor 言語について
  • 補論 C: コーディング慣習

追加リソース

コンパイラブック・エクスンプルス GitHub リポジトリでは、以下の資料が用意されています:

  • 複数のスキャナとパーサの実装例
  • プロジェクト用コンパイラーのための初期コード構造
  • スキャナ/パーサ/型チェッカ/コードジェネレーターの各段階に対するサンプルテストケース

エラー報告(誤植情報)

文中に誤字や不備を見つけた場合は、以下の手順で報告してください。

  1. 著者宛てに電子メールを送信する。
  2. 件名:
    Compiler Book Errata
    と記載すること。
    宛先: dthain@nd.edu
    
  3. 対応方針: 速やかに修正を行い、次版にて報告いただいた方には**acknowledgment(クレジット)**がさせていただきます。

同じ日のほかのニュース

一覧に戻る →

2026/07/06 6:03

Open プリンター

## Japanese Translation: Openprinter は、印刷技術における大きな転換点であり、コンパクトな耐久性と完全な修理可能性、そしてコスト削減および電子廃棄物削減を実現するオープンソースアーキテクチャを統合しています。Raspberry Pi Zero W および STM32 カートリッジ基板といった標準コンポーネントを基盤として構築されており、制限的な DRM を排除しつつ、Wi-Fi、Bluetooth、または USB を介して Windows、macOS、Linux、Android、iOS などの複数のオペレーティングシステムに対応します。このデバイスは高い汎用性を備えており、A4、A3、Letter の標準用紙、長さ 37.5m までのロール、バナーのようなカスタムフォーマットを処理でき、壁取付または机置き(統合されたカッターにより多様な構成が可能)に対応します。ユーザーは、特定の HP カートリッジ(地域によりモデルが異なる)に互換性のある再利用可能な Inkit ボトルを採用する低コストな消耗品戦略から恩恵を受け、モノクロ印刷においてすべての色が不要であっても、600〜1200 dpi の高品質出力を実現します。配布は Crowdsupply 上のクラウドソーシングモデルを通じて行われ、即席で使用できるユニットまたは組立キットが提供されます。さらに、該装置は電話アプリを介して HD ドキュメントキャプチャを含むスキャン機能を統合しています。結局のところ、このアプローチは個々に低価格な技術と統合されたスキャン機能を提供し、持続可能性を促進します。その成否は現在のキャンペーンにおける消費者の採用に依存し、印刷が引き続きアクセス可能な長期的な未来を約束しています。クリエイティブ・コモンズライセンスの下で配布され特許によって保護されている本プロジェクトは、倫理的利用を保証しつつ開示性を維持します。

2026/07/05 23:14

オーガニックマップ

## Japanese Translation: Organic Maps は、MapsWithMe および Maps.Me の背後にあるオープンソースコミュニティによって開発された、ハイキング、自転車走行、車での移動、地下鉄利用のための優れた無料オフラインファーストナビゲーションアプリです。完全におープンストリートマップのデータを動力源とし、アクティブなインターネット接続を必要とせず、かつデータを送信することなく、詳細なオフライン地図、曲がりくねるポイントごとの音声ガイダンス、等高線、高低差プロファイル、Wikipedia アーティクルを含むすべての機能を提供します。本アプリは、ゼロ広告、トラッカー、データ収集、強制登録、「ホームへ連絡」のない厳格なプライバシー設計で際立っており、これらは Exodus Privacy Project および iOS 用の TrackerControl による独立した監査によって検証されています。小さなフットプリントを持ち、1 つのバッテリー充電で 1 週間持つことができ、インターネットなしで機能の 100% をサポートするため、遠隔地域に最適です。Android、iOS、Linux(Flatpak/パッケージ)、Huawei AppGallery、Obtainium、Accrescent、F-Droid で利用可能で、Apache License 2.0 の下で動作し、寄付を通じて開発をサポートすることを可能にするコミュニティ主導のインディーズプロジェクトを育んでいます。本アプリは積極的にグローバルな参加者を招待しており、ベータテストプログラム(iOS 用の TestFlight、Android/Firebase/Flatpak/Linux デスクトップ用)を提供し、問題トラッカー、メール、Telegram、Matrix スペース、GitHub、Bluesky、FOSStodon などのソーシャルメディアプラットフォームなど複数のチャネルを通じてバグ報告、機能リクエスト、アップデートを提供しています。母語が多種類ある地元のコミュニティから支援され、専用の Matrix チャットおよび Telegram グループを通じてサポートされている Organic Maps は、ユーザーに世界を自由に探求できるようにすると同時に、監視慣行を拒否します。

2026/07/06 6:32

Show HN:自宅で作ってきたオープンソースゲームプラットフォーム「Homegames」

## Japanese Translation: Homegames は、アカウントを作成することもなくソフトウェアをインストールすることなく、ユーザーがゲームを楽しみ、作成し、共有できるブラウザベースのプラットフォームです。開発者は簡単なインブレーズアエディターを使用してコードを書き、ライブプレビューを確認しながら変更を即時テストし、マルチプレイヤーセッションを直接実行できます。資産管理は標準機能として搭載されており、ユーザーはファイルをアップロードするか、スタジオ内でコンテンツを描画または記録することもできます。ゲームはユーザーの好みに合わせて公開publishするか、プライベートに保つことが可能です。2018 年以来、GPLv3 ライセンスの下でオープンソースシステムとして構築され、単一サイドプロジェクトとして展開されてきた Homegames は、プラットフォーム全体とその API を個人ハードウェア上でのセルフホスティングを可能にし、元のサイトがオフラインになった場合でも長期的な保存を保証します。第三者サーバーへの依存を排除することで、Homegames はインディペンデント開発者に対する障壁を低下させ、プラットフォームの不安定さから創造的作業を守るための頑丈なインフラストラクチャを提供しています。

コンパイラと言語設計への招待(2021) | そっか~ニュース