CS 6120:高度なコンパイラ:自己誘導型オンラインコース(2020)

2026/06/18 20:04

CS 6120:高度なコンパイラ:自己誘導型オンラインコース(2020)

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

要約

Japanese Translation:

この自己指導バージョンのアドリアン・サンプソンの「高度なコンパイラ(CS 6120)」は、LLVM とカスタムの教育的な中間表現(IR)を用いて実際のコンパイラを構築する際に、博士課程レベルの洞察を提供します。公式のコルネル大学のクラスとは異なり、この柔軟な反復形式では試験での評価を 4 つの「想像力クレジット」で置き換え、厳格な期限設定を排除し、 Zulipディスカッションスレッドへの参加や学期末のプロジェクトからの除外を行います。代わりに、学習者は抽象的な理論—from プロガムの基本的な表現とデータフロー解析から、ガベージコレクション、Just-In-Time (JIT) コンパイル、並行性、静的単一代入といった高度なトピックまで—を実際のコードに変換することに焦点を当てます。カリキュラムは、ビデオ、ノート、オープンソースのハッキングタスクが含まれる線形の時系列としてのレッスンとして構造化されており、各モジュールを特定の学術論文(例:トッド・マイトコウィッチ、ザヴィエール・レロイ、デビッド・F・ベーコン氏の作品)と直接接続しています。講師がビデオ制作の経験を持たないため、早期レッスンの品質がばらつく可能性がありますが、 GitHub に完全にオープンソース化された教材はバグ報告を通じてコミュニティによる改善を歓迎します。学習者はコース完了時にフィードバックフォームへの記入を推奨され、コンパイラのメカニズムを Mastery して「ソフトウェア最適化を通じて世界を変革する」ことを目指すよう促されます。最終的にはレッスン 14「高速コンパイラ」で締めくこられます。

本文

CS6120:高度なコンパイラ入門 —— 自己学習向けオンラインコース

コース概要

  • 所属機関:コーネル大学(博士課程レベル)
  • 講師:Adrian Sampson 氏
  • 特徴
    • 中間表現(IR)、データフロー解析、古典的な最適化手法など、普遍的なコンパイラテーマを網羅。
    • 並行化、JIT コンパイル、ガベージコレクションなどの研究的前沿的なトピックも含まれる。
  • 学習内容
    • 論文の読み込みとオープンソースコードを用いた実装タスクで構成されている。
    • 使用環境としてLLVMおよび本コース専用に設計された**教育用 IR(Bril)**を採用している。

履修方法について

  • 単位設定:架空の大学における**4 単位(非評価)**のカリキュラムとしてリストアップしている。
  • 進め方
    • 講義動画と論文が交互に配置されたタイムラインに沿って学習する。
    • 各単元には映像コンテンツ、筆記資料、および一部の単元での実装課題が付属する。
  • 課題の自由度
    • すべての課題に一定程度の自由度があり、抽象的な概念を実際のコードに変換することで理解を深めることを目的としている。
  • 推奨パターン:提示された順序は、動画視聴と論文読解を効果的に交互に行うためのガイドラインです。

自己学習版との違い・注意事項

  • 期限の柔軟性:実際のコースとの最大の違いとして、タスクの提出期限を無視することが可能である。
  • ディスカッション:Zulip 上の議論スレッドへの参加はできません。
  • 期末課題
    • 従来のプロジェクトではなく、「コンパイラの魔法によって世界を変えろ」というテーマで構成される。
  • 画質・演出について:講師が動画制作の初心者であるため、特に初期講義における画質や演出面についてはご容赦ください。

コミュニティ貢献

  • 本コースはオープンソースであり GitHub 上に公開されています。
    • 問題を見つけた場合は、バグ報告のご協力をお願いいたします。
  • 無事に修了された際には、フィードバックフォームからご感想をお寄せいただけますと幸いです。

カリキュラム詳細

第 1 講:歓迎と総論

  • 「何も奇妙なことをせずとも間違ったデータを生成する!」
    (Todd Mytkowicz, Amer Diwan, Matthias Hauswirth, Peter F. Sweeney 著、ASPLOS 2009)
  • SIGPLAN による経験的評価ガイドライン

第 2 講:プログラムの表現

  • プログラムの表現について
  • Bril(教育用 IR)への入門

第 3 講:局所解析と最適化

  • シンプルな死コードエリミネーション
  • 局所的な値数え上げ(Value Numbering)

第 4 講:データフロー解析

  • データフロー解析の基礎
  • 実装課題:データフロー解析の実践

第 5 講:グローバル解析

  • グローバル解析と最適化
  • 「Efficient Path Profiling」
    (Thomas Ball と James R. Larus 著、MICRO 1996)

第 6 講:静的単独代入形式(SSA)

  • SSA の概要
  • Aliveを用いた証明可能なピープホール最適化
    (Nuno P. Lopes, David Menendez, Santosh Nagarakatte, John Regehr 著、PLDI 2015)

第 7 講:LLVM の紹介

  • LLVM の基本概念
  • LLVM パスの書き込み実習

第 8 講:ループ最適化

  • 動画講義

第 9 講:インタープロシージャ解析

  • 動画講義
  • 型に基づくエイリアス解析
    (Amer Diwan, Kathryn S. McKinley, J. Eliot B. Moss 著)

第 10 講:エイリアス解析とガベージコレクション

  • 動画講義
  • 「Unified Theory of Garbage Collection」
    (David F. Bacon, Perry Cheng, V. T. Rajan 著、OOPSLA 2004)
  • 「Fast Conservative Garbage Collection」
    (Rifat Shahriyar, Stephen M. Blackburn, Kathryn S. McKinley 著、OOPSLA 2014)

第 11 講:メモリ管理

  • 動画講義
  • SELF(プロトタイプベースの動的型付けオブジェクト指向言語)の実装
    (C. Chambers, D. Ungar, E. Lee 著、OOPSLA 1989)
  • 動的言語におけるトレースに基づくJIT タイプ特殊化
    (Andreas Gal, Brendan Eich, Mike Shaver ら著、PLDI 2009)

第 12 講:動的コンパイラ

  • 動的コンパイラの概要
  • 推測に基づくトレーシング技術
  • 「Superoptimizer: Smallest Program」
    (Alexia Massalin 著、ASPLOS 1987)
  • 「Chlorophyll: Synthesis-Aided Compiler for Low-Power Spatial Architectures」
    (Phitchaya Mangpo Phothilimthana, Tikhon Jelvis ら著、PLDI 2014)

第 13 講:並行性と並列処理

  • 動画講義
  • 「Threads Cannot Be Implemented as a Library」
    (Hans-J. Boehm 著、PLDI 2005)
  • 「Exploiting Superword Level Parallelism with Multimedia Instruction Sets」
    (Samuel Larsen, Saman Amarasinghe 著、PLDI 2000)
  • 「A Type and Effect System for Deterministic Parallel Java」
    (Robert L. Bocchino ら著、OOPSLA 2009)
  • 「Formal Verification of a Realistic Compiler」
    (Xavier Leroy 著、CACM 2009)

第 14 講:高速コンパイラへの展望

  • コースのまとめと将来の方向性

同じ日のほかのニュース

一覧に戻る →

2026/06/19 3:31

私は彼らに強制的同意は違法だと告げた。その結果、5年後エルクヨプは 180 万ユーロの損失を負った。

## Japanese 翻訳: 2021年7月、Elgiganten Kundklubb に加入後、著者はマーケティングメールからの脱退に際し、店舗会員の全キャンセルが必要となることを発見しました。この問題は、2021年7月30日に Elkjop のデータ保護官に通知され、GDPR 第 4 条 (11) 、第 7 条および第 21 条 (2)、また電子プライバシー指令への違反を指摘しました。Elkjop が同意と会籍の分離を拒否した際、著者は処理制限の要請(第 18 条)および開示請求(第 15 条)を提出することで対応をエスカレートさせました。その後、スウェーデン当局 (IMY) に提出された苦情(参照番号 DI-2021-6660)は、GDPR 第 56 条 (1) のワンストップ・ショップ規則に基づき、Elkjop Nordic AS がノルウェーに拠点を有することから、ノルウェーの Datatilsynet に移管されました。 2026年6月1日、Datatilsynet は Elkjop グループに対して 2,000 万ノルウェークローナ(約 180 万ユーロ)の制裁金を科しました。決定では、同意が強制されたものかつ非具体的であるため無効と認定され、GDPR 第 6 条 (4) の適合性評価に準拠せずに広告およびコンバージョン追跡のためにデータを利用したことは承認されていないと指摘されました。裁判所は GDPR 第 4 条 (11)、第 5 条 (1)(a)、第 5 条 (2)、第 6 条 (1)(a)、第 6 条 (1)(f) および第 6 条 (4) を引用しました。 著者は、この決定を GDPRhub を通じて初めて約五年後に発見し、IMY に対して苦情通知を行わなかったことについて(第 77 条 (2) )問い合わせを実施しており、五営業日以内に回答を求める旨を求めています。未解決の場合は Elkjop グループに対する民事訴訟を検討し、欧州委員会へのエスカレーションを行う可能性があります。この事例は重要な先例を示しています:企業は必須サービスに対して強制的な「オプトイン」条件を用いて、厳格な GDPR 同意要件を回避することはできません。

2026/06/18 20:45

トロージャンマルウェアの配布用に 1 万カ所の GitHub リポジトリを発見しました

## Japanese Translation: 数値のニュアンス、具体的なファイル形式、および著者がツールをリリースする能動的な役割に関する微妙な点を捉えるために、改善されたバージョンの使用が推奨されます。 **改善されたサマリー:** 2026 年 6 月時点での GitHub マルウェア分散に関する故事への最近の更新は、フォークではなく新しいリポジトリを利用してトロイの木馬マルウェアを分散させる高度なキャンペーンを明らかにしています。攻撃者は明確なパターンに従います:独自の名称とコントリビューターを持つリポジトリを作成し、合法的なプロジェクトからコミット履歴を複製して元の履歴を消去し、README に悪意のある ZIP アーカイブへのリンクで置換します。これらのアーカイブは特定の可执行ファイル(例:`Application.cmd`、`Launcher.cmd`、`loader.exe`)およびランダムな DLL を含んでおり、特に VirusTotal の直接リンクスキャンでは通常クリーンな結果が返される一方、アーカイブファイル自体をスキャンするとトロイの木馬が検出されます。以前の調査では、日間のリポジトリ更新の約 10% が数ヶ月または数年間継続する悪意ある脅威であることが特定されましたが、GitHub の手動報告プロセスは当初、応答期間が週間単位に及ぶため非効率的でした。この問題を解決するために著者は「Git Malware Finder」というスクリプトをリリースし、特定されたリポジトリの完全なリストを公開しました。最近、GitHub はこのツールでフラグ付けされたリポジトリを自動的に削除し始めており、既知のケースの大部分を排除しています。ただし、なぜ検出が現在主に新しいリポジトリに限られているか、キャンペーンの実際の規模と確認された一致との違い、そして検索インデックスおよび検出アルゴリズムから回避するために使用される具体的な戦術についてはまだ未解明な点が残っています。

2026/06/16 7:36

アメリカン・エキスプレス:回復性決済システムのためのセルベースアーキテクチャ

## 日本語訳: American Express は、2018 年以来、その決済エコシステムを、アーキテクチャに直接リゼリアンス(回復力)を組み込むことで強化し、取引の失敗がシステム全体に影響を与えることを極めて稀にするようにしています。核心となる革新は、「セルベース」設計であり、これはマイクロサービスとデータベースを特定の地域内で複数エリアにまたがることなく、それぞれが一つの障害ドメインとして機能するように、孤立した単位である「セル」にグループ化したものです。このアプローチは、不安定なモノリシック構造を、数百万件の日次ライブ取引を確実に処理する堅牢で自律的なインスタンスに置き換えます。速度の向上と隔離の確保のため、同期的ルックアップを避けるために静的データは事前に複製され、動的データについては Global Transaction Router が決定論的ルーティングを使用して、権威のあるデータを保持するセルへのトラフィックを誘導します。ログ記録などのクリティカルパス依存関係は非同期に保たれ、ブロッキングを防ぎます。また、安全な再試行のために一意の識別子を通じて冪等性を維持しています。システムには、不安定になっているセルを漸次的にドレインして健康なセルへトラフィックをシフトさせるインテリジェントなトラフィックシフティングのメカニズムが含まれており、これにより急激な障害なしに処理が行われます。ただし、このリゼリアンスには限界があり、取引が外部システム(例:カード発行会社)に到達した時点で、「戻れない点」に達し、それ以降はルーティングの変更が不可能となります。最終的に、この戦略はエラーを局所的境界内に収容することで安定したユーザー体験を保証し、要求の厳しい金融環境でハイアベイラビリティシステムを拡張するための実証済みブループリントを提供します。