| 開発者 | デイブ・ハンソンとクリス・フレイザー |
|---|---|
| 初回リリース | 1994年 |
| 安定リリース | 4.2 / 2002年9月4日 |
| 書かれた | C |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | コンパイラ |
| ライセンス | LCCライセンス[1] |
| Webサイト | drh.github.io/lcc/ |
LCC (「Local C Compiler」または「Little C Compiler」) は、ANSI Cプログラミング言語用の小型で再ターゲット可能なコンパイラです。ソースコードは個人使用に限り無料で入手できますが、[2] LCC から派生した製品は販売できませんが、LCC から派生していないコンポーネントは販売できるため、通常の定義ではオープンソースまたはフリーソフトウェアではありません。 [1] Chris FraserとDavid Hansonによって開発されました。
LCC
LCC は非常に簡単に理解できるように設計されており、ドキュメントも充実しています。その設計については、Fraser と Hanson の著書「A Retargetable C Compiler: Design and Implementation」で説明されています。この本には、 noweb を使用して文芸プログラムとして記述されたコンパイラのバージョン 3.6 のソース コードのほとんどが含まれています。2011 年 7 月現在、LCC の現在のバージョンは 4.2 ですが、この本の内容の多くはこのバージョンにも当てはまります。この本が出版されてからの主な変更点は、コード ジェネレータ インターフェイスにあり、これは別のドキュメントで説明されています。[3]
LCCのソースコードは約20,000行で、多くの主要なコンパイラよりもはるかに小さいです。[4]
LCCは、 Alpha、SPARC、MIPS、x86など、いくつかのプロセッサアーキテクチャ用のコードを生成できます。また、Microsoftの共通中間言語を生成するLCCバックエンドもあります。[5]
LCCを組み込んだプロジェクト
クエイク3
id Softwareのid Tech 3 エンジンは、各ゲームモジュールまたはサードパーティのmodのソースコードを仮想マシンをターゲットとするバイトコードにコンパイルするために、LCCの修正版に依存しています。[6]これは、モジュールがエンジンによって提供されるシステムコールと限られたファイルシステムスコープを超えてシステムに認識されないことを意味し、悪意のあるmod作成者による脅威を軽減することを目的としています。もう1つの考慮事項は、エンジン用に作成されたゲームとmodは再コンパイルなしで移植可能であることです。モジュールを実行するには、仮想マシンのみを新しいプラットフォームに移植する必要があります。
lcc-win
lcc-win32は、 LCCのフォークを含むMicrosoft Windows用の統合開発環境パッケージです。amd64版のlcc-win64が存在し、2012年4月15日から利用可能になりました。[7]
ペレスC
Pelles Cのコンパイラは、 C11と C17のサポート、amd64のサポート、インライン展開[8]などの追加の最適化技術、およびIDEを提供するLCCの大幅に改良されたバージョンです。
マスワークス
32ビットWindowsマシンでは、 MathWorks MATLABおよび関連製品用の他のコンパイラがインストールされていない場合、Lccがデフォルトとして使用されます。[9]
ライセンス
LCC は個人使用は無料であり、すべての配布メディアと製品ドキュメントで認められている限り再配布できます。LCC ライセンスは、複数のケースで例に依存しています。LCC を営利目的で販売することはできませんが、LCC 自体が無料で配布されている限り、営利目的で販売される他のソフトウェアに含めることができます。ユーザーごとのライセンスと無制限使用のライセンスは、Addison-Wesley に問い合わせることで入手できます。特に、C++ などの言語のコンパイラでは、C コンパイラが作業の大部分を占める可能性があります。[1]
参照
参考文献
- ^ abc 「LCCライセンス」。GitHub 。 2011年7月5日閲覧。
- ^ 「公式 Github リポジトリ」。GitHub。
- ^ Fraser, Christopher W.、Hanson, David R. (2001 年 7 月)。「lcc 4.x コード生成インターフェイス」(PDF)。Microsoft Research。技術レポート MSR-TR-2001-64。2011年7 月 5 日に取得。
- ^ Sao-Jie Chen、Guang-Huei Lin、Pao-Ann Hsiung、Yu-Hen Hu。「マルチメディアSOCプラットフォームのハードウェアソフトウェア共同設計」セクション5.6.1:LCCコンパイラインフラストラクチャ。[1]
- ^ Hanson, David R. (2004 年 3 月)。「Lcc.NET: 標準 C から .NET 共通中間言語をターゲットにする」(PDF)。Microsoft Research。2012年7 月 22 日閲覧。
- ^ 「John Carmack の .plan ファイル、1999 年 7 月 24 日」。2008 年 5 月 12 日時点のオリジナルよりアーカイブ。
- ^ lcc-win: Windows 用コンパイラ システム
- ^ ペレスCの概要
- ^ 「MEX-Files のビルド」。2012年9月14日時点のオリジナルよりアーカイブ。 2013年11月6日閲覧。
外部リンク
- Pelles C IDE 公式ホームページ
文献
- Fraser, Christopher W.; Hanson, David R. (1995)。再ターゲット可能な C コンパイラ: 設計と実装。Addison- Wesley。ISBN 0-8053-1670-1。
