JavaScriptランタイム「Bun」をRustで書き直すプロジェクトについて解説。既存のZigベースの実装をRustに移行することで、パフォーマンス向上やエコシステムとの統合強化を目指す取り組みを紹介する。
#programming-languages
30 件
著者が今年6月に参加した4回目(おそらく5回目)のPLDIカンファレンスの記録。新しい人々との出会い、研究に関する議論、e-graphsやKnuth-Bendixに関するワークショップ、Ben TitzerやChristian Wimmer、Yannis Smaragdakisらとの交流、そしてレジスタ割り当てやDatalogを用いた線形スキャン実装の試みなど、充実した1週間が綴られている。また、Slava Pestovと共にKnuth-Bendix完備化アルゴリズムを実装した経験や、カンファレンス外でのボルダーでの滞在についても触れられている。
Van Wijngaarden文法(W-grammarとも呼ばれる)は、文脈自由文法を2段階に拡張した形式文法である。オランダの数学者でありコンピュータ科学者であるAdriaan van Wijngaardenによって考案され、プログラミング言語Algol 68の構文定義に使用された。この文法は、無限の生成規則集合を有限のメタルールで記述できる特徴を持つ。
OxCamlが導入した革新的な機能について解説。パターンマッチングの拡張や型安全性を向上させる設計思想が、他のプログラミング言語にも大きな示唆を与える。この機能を採用することで、より簡潔で堅牢なコード記述が可能になる。
本記事では、MLsubと呼ばれる型システムの核となるアイデアを平易に解説する。代数的サブタイピング(Algebraic Subtyping)の理論を、型変数と部分型関係に焦点を当てながら、直感的かつシンプルに紐解いていく。
低水準言語(C、C++、Rustなど)は「効率的」「制御可能」という幻想を抱かせがちだが、実際にはメモリ安全性の脆弱性や複雑なバグ、開発コストの増大を招く。著者は、こうした「高くつく幻想」がソフトウェアの信頼性とセキュリティに与える影響を分析し、適切な抽象化と高水準言語の活用の重要性を指摘する。
LLVM(Low Level Virtual Machine)は、コンパイラ基盤のモジュラー型フレームワークであり、プログラムのコンパイル、最適化、コード生成を効率的に行うために広く利用されている。本記事では、LLVMのアーキテクチャ、主要な機能、および学術研究や産業界におけるその影響について解説する。
本稿では、Lean 4のコードベースにおいて、ソフトウェアのスケーリング則(scaling laws)を検証する。具体的には、プロジェクトの規模や依存関係の増加に伴い、コンパイル時間やメモリ使用量、証明の複雑さがどのように変化するかを分析し、大規模な形式検証プロジェクトにおける効率的な開発手法について考察する。
本論文は、多層に積み重なったインタプリタ(インタプリタの塔)がもたらす実行時オーバーヘッドを削減する手法を提案する。複数の言語レベルを経由する解釈実行を1つの効率的な実行に融合することで、抽象化によるコストを大幅に低減できることを示す。
Rustのメモリ安全性は過信されており、unsafeコード、既存CライブラリとのFFI、ロジックバグ、メモリリーク、コンパイラのバグなど、複数の要因により安全神話は崩れている。真のメモリ安全性を追求するなら、Rustの「安全性」を盲信するのではなく、その限界を正しく理解する必要がある。
本動画では、機械学習の台頭がプログラミング言語の設計と実装にどのような影響を与えているかを考察する。従来の言語設計原則と機械学習ワークロード特有の要件との相互作用を探り、新しい言語機能や最適化手法の可能性について議論する。
Rhombus is a new language built on top of Racket's macro system, designed to bring flexible metaprogramming to a more conventional syntax. It allows developers to create custom syntactic constructs and domain-specific languages while maintaining full interoperability with Racket. The article explores how Rhombus's design enables expressive and safe code generation through its powerful macro facilities.
This blog post explores the three Futamura projections, which are fundamental concepts in partial evaluation and programming language theory. The author explains how these projections relate to compiler optimization, program specialization, and the Futamura theorem, using accessible examples to illustrate the power of self-applicable partial evaluators.
部分評価
3.0部分評価(Partial Evaluation)は、プログラムの一部の入力を既知の値に固定し、残りの入力に対して最適化されたコードを生成する計算機科学の手法である。これにより、プログラムの実行効率を向上させたり、特殊化されたプログラムを自動生成したりすることが可能となる。
Phantom Type
1.0Phantom types are type parameters that appear in a type's definition but not in its value constructors. They are used to encode additional static information at the type level without affecting runtime representation. This technique is common in Haskell for enforcing invariants, such as distinguishing between different kinds of data (e.g., meters vs. feet) or tracking state transitions (e.g., open vs. closed files), all with zero runtime overhead.
この書籍は、既存のC言語コードベースをRustに段階的に移行するための実践的なガイドです。安全性、メモリ管理、相互運用性の課題に焦点を当てつつ、大規模プロジェクトにおけるスムーズな移行戦略を解説します。
ソフトウェア工学において、グローバルな特性(例えば不変条件やセキュリティ特性)をローカルな推論だけで保証する手法について論じる。著者は、複雑なシステム全体を把握しなくても、局所的なコードの解析によってシステム全体の正しさを証明できるアプローチを探求している。これはモジュール性やコンポジショナルな検証の重要性を強調する内容である。
This talk explores practical methods for enhancing the correctness of compilers, a critical component in software development that transforms high-level code into executable instructions. It addresses common correctness challenges and presents pragmatic strategies to detect and prevent compiler errors, ultimately improving software reliability and developer productivity.
低水準プログラミング言語(主にC/C++)が「効率的」「ハードウェアに近い」とされる神話を批判的に検証。実際にはメモリ安全性の欠如や複雑な仕様が、バグやセキュリティ脆弱性、開発コストの増大を招いていると論じる。Rustなど現代的な代替言語の台頭にも触れ、従来の低水準言語が持つ「高効率」という楽観的な前提が、結果的に高額なコストを生んでいる実態を明らかにする。
現在のデータ言語とは何か
0.5Python、R、SQLといった人気言語が叫ばれる中、今日のデータ言語はまさに「あなたが話す言語」そのものだ。AIというスーパーコンパイラが新たなレイヤーを追加し、かつて多くの人がアセンブリ言語を学ばなかったように、将来のデータエンジニアはSQLを学ぶ必要がなくなる。実際、AIが話し言葉を変換するターゲット言語は、ブラウザとサーバーの両方で同時に実行できるJavaScriptになる可能性が高い。
本稿では、分散システムや並行プログラミングにおいて、グローバルな特性(データ整合性や一貫性など)を保証するために、ローカルな推論手法をどのように活用できるかを考察する。従来のグローバルな解析はスケーラビリティに欠けるが、ローカルな観察と推論を組み合わせることで、効率的かつ堅牢な検証が可能になることを示す。
Rhombusは、Racket上に構築された新しいプログラミング言語で、マクロや構文拡張による柔軟なメタプログラミングを可能にする。従来のRacketのマクロシステムをより親しみやすい構文で提供し、言語構築の力を広く開発者に開放することを目指している。
AdaCoreのブログ記事では、プログラミング言語の設計上の選択がソフトウェアセキュリティに与える影響について考察している。型安全性、メモリ管理、バッファオーバーフローの防止など、言語の特性が脆弱性の発生可能性を左右することを解説。安全なコーディングを促進する言語設計の重要性を強調している。
Verdagon氏が提唱するAnteという新言語では、所有権の概念を導入せずに、ボロー・チェッカーと参照カウント方式を統合するユニークなアプローチを採用している。これにより、開発者は手動でメモリ管理を意識することなく、安全かつ効率的なコードを記述できる可能性が示されている。
ソフトウェア設計において、グローバルな性質(プロパティ)を保証するためには、コードベース全体を理解するのではなく、局所的な(ローカルな)推論によってそれを実現する方法が重要である。本記事では、関数型プログラミングや型システムを活用することで、大域的な不変条件を局所的な構造に埋め込み、スケーラブルで保守性の高いシステムを構築する手法について論じる。
Tの歴史
3.0ポール・グレアムが、自身が設計したプログラミング言語「T」の開発史を振り返る。1980年代初頭、Schemeをベースにした高速なLisp処理系としてスタートし、後のViaweb開発などに影響を与えた。実際の利用経験から得られた言語設計上の教訓や、その後のプログラミング界への波及効果についても語られている。
Stephen Diehl introduces Prism, an impure functional programming language that incorporates a typed effect system to manage side effects such as state, exceptions, and I/O. The language combines functional purity with practical impurity, allowing developers to explicitly track and control effects through the type system. This approach aims to bridge the gap between pure functional programming and real-world software development needs.
AIが生成するコードが常に正しく動作し、優れたプログラミング慣行に従うのであれば、新しいWeb技術やプログラミング言語を生み出す必要は本当になくなるのだろうか。新しい技術の学習や創造をやめてしまう転機のようにも思えるが、実際はどうなのかを問いかけている。
Prismは、型付きエフェクトシステムを中核に据えた非純粋関数型言語である。この言語は、IOや状態、例外などの副作用を型レベルで明示的に管理することで、純粋関数型言語の安全性と命令型言語の実用性を両立する。Prismの型システムは、どのようなエフェクトが発生するかをコンパイル時に検証し、プログラムの正しさを高めることを目的としている。
本論文では、字句解析(lexing)と構文解析(parsing)を融合させた決定論的パーサー「Flap」を提案する。従来の段階的な処理とは異なり、これらを統合することで解析の効率と正確性を向上させる。Flapは、特にプログラミング言語の処理において、より高速で信頼性の高い構文解析を実現する。