
2026/09/21 14:09
TXR:データ操作を容易にするための独自の新プログラミング言語
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
TXR ツールは、二重言語アーキテクチャを通じて文書全体のパターンマッチングと強力なデータ処理能力を兼ね備えた高効率な日常ハッキング用ユーティリティです:テキスト操作のための直感的な「パターン言語」と、複雑なロジックのための TXR Lisp(Common Lisp および Scheme の影響を受けた方言)、両方ともレジスタベースの仮想マシン上で実行されます。このアーキテクチャにより、ジャンプスレッドング、デッドコードエリミネーション、定数畳み込み、データフロー解析といった能動的なコンパイラ最適化がコンパクトなフットプリント内で実現可能です—実行ファイルは約 1.7 MB(GNU Awk のサイズの約 2 倍)であり、起動時のメモリ使用量は Bash と同等で、標準ライブラリのコンパイル時でのピーク使用量は約 18 MB です。2009 年に初リリースされた TXR は、NixOS、Void Linux、Alpine Linux、Chimera Linux、GNU Guix を含む多数のディストリビューションから広くサポートされており、EasyBuild および T2 System Development Environment 経由でも入手可能です。また、GNU Make、GCC、または Clang で構築でき(生成されたソースも同梱)外部依存項は libffi のみが必要です。TXR は XML エディット、CSV ソート、HTML テーブル抽出などの特殊な Unix タスクで卓越し、StackOverflow および Unix StackExchange において検証済みのソリューションが存在します。実行ファイルのサイズが通常のユーティリティよりも大きい一方で、軽量なメモリプロファイルにより複雑なスクリプティングに最適です。アプリケーションのデプロイは
save-exe を用いて自己完結型の実行ファイルを作成し、起動時に相対モジュールをロードすることが可能です。コミュニティサポートはメーリングリストとメンテナーを通じて引き続き活発であり、安定で最新バージョンが確保されています。Homebrew パッケージの使用は推奨されていません(不安定さおよびビルドテスト検証の欠如に関する報告があるため)。プロジェクトは簡潔性を重視し、貢献を歓迎しており、2 クロース BSD ライセンスの下で配布されています。本文
TXR: 実用的で効率的なデータ処理言語
TXR は、日常的なハッキング課題に即座に対応できる実用的かつ強力なツールです。その特徴的な「二面性」は以下の通りです:
- ドキュメント全体を対象としたパターンマッチングおよび抽出言語
- 任意のテキストソースから情報を抽出するための最適解
- データ処理言語
- 問題をサクッと切り抜けるための強力な能力
多くのタスクは、システムプロンプトから TXR の**「ワンライナー」**で直接実行可能です。
注釈: TXR は比較的新しいプロジェクト(2009 年開始)ですが、成長により小さな言語ではなくなりました。リファレンスマニュアル PDF 版は778 ページにも及ぶ大規模な Unix man ページ形式です(索引・目次を除く)。
インストールと入手方法
TXR は以下のパッケージ管理システムやディストロで公式にサポートされており、常に最新バージョンが提供されています。
- ✅ GNU Guix
- ✅ NixOS
- ✅ Chimera Linux
- ✅ Alpine Linux
- ✅ Void Linux
- ✅ EasyBuild
- ✅ T2 システム開発環境
⚠️ Homebrew に関する警告
Homebrew 経由での TXR 使用は避けてください。 プロジェクトでは、Homebrew パッケージが不安定で信頼性の低い実行ファイルを含むとの報告を多数受けています。ビルドレシピ
txr.rb はテストを実行せず、コンパイラによるコード生成の不安定性が疑われます。
ソースコード・ダウンロードとコミュニティ
入手方法
- GIT リポジトリからのソースコード取得
- リリースノートの確認
- Piotr Klibert 氏による TXR 用 Emacs マーモード
- TXR 302 バイナリパッケージ(32 ビットおよび 64 ビット Windows 対応)
コミュニティへの参加
- メールリングリスト: 購読なしでの投稿も可能(伝統的)
- Libera IRC チャンネル
- Mastodon:
- mstdn.ca: TXR 公式アカウント(活発)
- fosstodon.org: カズ氏のアカウント(静か)
参考リソース
- StackOverflowおよびUnix StackExchange: TXR ベースの非 TXR 関連問題への解答例多数掲載(CSV ソート、HTML テーブル解析、Awk 代替案、git bisect など)。
- Rosetta Code: TXR ベースのソリューション集。
軽量かつ効率的なアーキテクチャ
TXR Lisp はレジスタ仮想マシン向けのコード生成が可能です。
コンパイルと展開機能
- 個々の関数やファイル(
を.tl
に)を独立してコンパイル可能。.tlo - コンパイル済みファイルを連結して読み込める。
- gzipで圧縮可能な実行ファイルの生成。
- 最適化機能: ジャンプスレッドニング、死んだコード排除、定数畳み込み、データフロー最適化を実行。
save-exe
によるデプロイ
save-exe(save-exe "app-name") ;; 指定名で実行ファイルを生成
- 起動時に評価される式を内包化したエグゼキュタブルを作成。
- 同じディレクトリに配置したアプリケーションを相対パスでロード可能。
- 必要なライブラリモジュールのみ同梱するため展開が容易。
リソース使用量
- 実行ファイル: 約 1.7 MB(GNU Awk の約 2 倍)。
- 補助ライブラリ: 約 1.5 MB。
- 外部依存項: libffi のみ。
- ビルド要件: GNU Make, GCC/Clang, configure スクリプト用シェルユーティリティ。
- メモリフットプリント: インタラクティブプロンプト起動時で GNU Bash と同等の軽量さ。コンパイル時でもピーク 18 MB 程度に抑えられる。
ポイント: ビルドには GCC/Clang 必須ツール以外も含まれているため、パッケージ版をダウンロードすればツール自体は不要です。
イノベーティブな言語設計
TXR は Common Lisp, Scheme, Awk, Prolog, Ruby, Python などの思想の融合であり、独自のアイデアも多く含んでいます。
2 つの言語モード
-
TXR パターン言語
- Unix ユーティリティ
と比較可能な暗黙的な入力走査アプローチを提供。Awk - Awk はファイルを読み込んで位置付き変数として分割するが、TXR はネストされた再帰的パターンマッチングを通じて変数をバインド。
- 構造が緩いデータや異なる規則性を示すデータの処理にも対応可能。
- 命令形ステートメントはなく、すべてはパターンマッチ指示。サーチとバックトラックは暗黙的。
- 構造化された名前付きブロック、非局所_EXIT、例外処理、名前付き関数などの高度な機能具备。
- Unix ユーティリティ
-
TXR Lisp
- Common Lisp や Scheme の単なる派生ではなく、新たな方言。
- 最新のスクリプト言語や関数型言語からのインスピレーションを反映。
- シンプルで簡潔、かつ強力な設計思想。
- Awk の実装はLisp マクロとして TXR Lisp 内に内蔵されているため、両方の機能を組み合わせて使用できる。
哲学的方向性
- 簡潔性の重視: プログラムは短く明確であるべきです。
- オープンな姿勢: より明快で短い解決策がある場合は吸収・採用を検討します。フィードバックは歓迎されます。
評価の声
世界中のユーザーから寄せられた感想の一部です:
- 「コーディングを楽しく、すばやく!簡潔でありながら強力。まるでプログラミング言語のチートシートを持っているみたい!」
- Twitter/X: AI TechTree
- 「テキスト処理に最適な Lisp は TXR Lisp だ。しかし非常に奥深く、『自由時間しかない』状態での臨みが求められるラビットホールだ。」
- 4Chan
- 「さまざまな言語を MAL(Multiple Attribute Language)の実装適性評価のためにテストしたところ、TXR-Lisp が最もエルゴノミックに感じられた。」
- #Lisp IRC: wasamasa
- 「PDF を ASCII に変換すると構造が失われ正規表現での抽出は難しいが、TXR を使うと大幅に楽になる。」
- HackerNews: vcdimension
- 「比較的新しい言語としては驚くほど優秀で、マニュアルの質も本当に高い。」
- GitHub: alphapapa
サンプルコード集
Rosetta Code 内の多数の問題に対する TXR ベースの解答例が収められています。
- ケーススタディ: バイトコード最適化に関する詳細な解説記事(TXR Lisp の最適化コンパイラ能力を示す)。
寄付と貢献について
TXR は二項 BSD ライセンスの下で配布されているため、商用・非商用を問わず自由に利用可能です。本当にフリーソフトウェアです。
開発には無数の時間がかかっているため、ツールキットにおいて価値ある存在だと感じられた場合は、ご寄付を検討することを推奨します。また、新規機能を開発するハッカーも募集中です。内部構造は清潔で理解しやすく、「HACKING ガイド」を読みながら作業を楽しんでください。
- メール: カズ・キルヘク (kaz@kylheku.com)