Overview of Free Pascal and Lazarus/ja: Difference between revisions
Line 32: | Line 32: | ||
=== 動的リンクライブラリ === | === 動的リンクライブラリ === | ||
動的リンクライブラリは既にコンパイルされた関数の集合であり、他のプログラムから呼び出すことができるものです。名前が示すように、ライブラリは実行ファイルのコンパイル時に必ずしもリンクする必要はなく、実行時に呼び出すことができます。Windowsでは、ライブラリファイルは.dll(ダイナミックリンクライブラリ、もしくはDLL)の拡張子が付けられます。OS Xにおいては.dylib(dynamic shared library)の拡張子を持ち、Linuxでは.so(shared object library)の拡張子を持っています。 | |||
動的リンクライブラリの用途は、他のプログラムに対して新たな機能を追加するために開発したり、CやC++で開発されるプログラムに機能を提供したり、とても大きいプロジェクトの機能を分割するため、などに使われます。OpenOffice.orgのような利用もありますし、Windows自体も大量のDLLで成り立っています。 | 動的リンクライブラリの用途は、他のプログラムに対して新たな機能を追加するために開発したり、CやC++で開発されるプログラムに機能を提供したり、とても大きいプロジェクトの機能を分割するため、などに使われます。OpenOffice.orgのような利用もありますし、Windows自体も大量のDLLで成り立っています。 | ||
FPCでは、コンソールアプリケーションと同じように、テキストエディタとFree Pascalコンパイラだけで動的リンクライブラリを開発できます。また、Lazatus IDE上にて動的リンクライブラリのプロジェクトを作って開発することもできます。 | |||
Windows上でDLLはとても複雑で不安定である、と言われていました。たとえば、それらがしばしばインストールするのに、まわりまわって自分自身を必要とする、といった依存関係などがあげられます。また、実際のところ、DLLとは、(言語に特徴的なオブジェクトや構造体を使うよりも)基本データ型をつかって情報をやりとりをするため、プログラマに対して、やろうとしていること以上の細かい注意を払うように強要することがあります。 | |||
しかし、これをちゃんと行えるならば、よりよい結果が得られ、プログラムはより安定します。 | |||
=== GUIアプリケーション === | === GUIアプリケーション === |
Revision as of 04:10, 3 November 2006
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
magyar (hu) │
Bahasa Indonesia (id) │
italiano (it) │
日本語 (ja) │
한국어 (ko) │
polski (pl) │
português (pt) │
русский (ru) │
slovenčina (sk) │
中文(中国大陆) (zh_CN) │
中文(臺灣) (zh_TW) │
FreePascalとLazarus
Free Pascal (FPC)は、2つの大きな特徴をもった、オープンソースのPascalコンパイラです。1つは、Delphiとの互換性です。もう1つは、多くのプラットホームへの対応です。プラットホームは、現在、Windows、Mac OS X、Linuxに対応しています。
Free Pascalは、Delphiで拡張されたObject Pascalプログラミング言語をサポートすることだけでなく、Delphiで使える強力なルーチンのライブラリやクラスも同じように利用できるようにしています。 Delphiを使う人によくしられているSystem、SysUtils、StrUtils、DateUtils、Classes、Variants、Math、IniFilesそしてRegistryなどのユニットもあります。これらは、Free Pascalの動作するすべてのプラットホームで動作します。
Free Pascalには他にもWindows、ShellAPI、BaseUnix、Unix そしてDynLibsといった固有のオペレーティングシステムで利用可能なユニットがあります。 Free Pascalランタイムライブラリ(RTL)は、これらのユニットの集合でなりたっている大きなライブラリです。
Lazarusはオープンソースの開発環境です。Free Pascalコンパイラで作られており、FreePascalを使うための統合開発環境(IDE)です。予約語の強調が可能なコードエディタ、視覚的なフォームデザイナ等を持っています。 Lazarusに備えられているLazarus Component Library (LCL)は、DelphiのVisual Component Library(VCL)と高い互換性を持っています。 LCLには多くの有名なVCLコントロールと同じようなフォームやボタン、テキストボックスなどがあります。これらのコントロールを適切に配置してグラフィカルユーザーインターフェイス(GUI)を持ったアプリケーションを作成できます。
FreePascalも、Lazarusも、Pascalで作られています。ソースコードは、Free PascalコンパイラやLazarusだけでなく、FreePascalのRTLや、LazarusのLCLの全てのユニットのソースコードが完全にすべて公開されています。
Delphiのように、Free PascalとLazarusはどちらも一般的なプログラミングツールです。 これは、下記のように、幅広く、様々なプログラムを開発できる、ということを意味しています。
コンソールアプリケーション
コンソールアプリケーションはグラフィカルなユーザーインターフェースをもちません。普通、それらはコンソール上で実行されます。入力はコンソールから読み込まれ、出力はコンソールに書き出されます。 Windowsではコンソールを通常コマンドプロンプトウィンドウと呼びます。OSXやLinuxでは通常ターミナルウィンドウと呼びます。たとえば、コンソールアプリケーションには、WindowsのFC(ファイル比較)やUnixにおけるcdやcpコマンドのような小さいユーティリティがあります。 コンソールアプリケーションはGUIがなくても他のプログラムやバッチファイルから利用できるので強力な処理系統です。Free Pascalとそれに含まれたユーティリティプログラムはすべてバッチファイルやLazarus IDEから利用できます。
コンソールアプリケーションは、テキストエディタとFree Pascalコンパイラのみで開発することができます。lazarusでコンソールアプリケーションの開発を行う必要はありません。しかし、統合環境を使いたければ、Lazarus IDE上でコンソールアプリケーションプロジェクトを作成し、ソースコードを編集し、コンパイルを行うこともできます。
動的リンクライブラリ
動的リンクライブラリは既にコンパイルされた関数の集合であり、他のプログラムから呼び出すことができるものです。名前が示すように、ライブラリは実行ファイルのコンパイル時に必ずしもリンクする必要はなく、実行時に呼び出すことができます。Windowsでは、ライブラリファイルは.dll(ダイナミックリンクライブラリ、もしくはDLL)の拡張子が付けられます。OS Xにおいては.dylib(dynamic shared library)の拡張子を持ち、Linuxでは.so(shared object library)の拡張子を持っています。 動的リンクライブラリの用途は、他のプログラムに対して新たな機能を追加するために開発したり、CやC++で開発されるプログラムに機能を提供したり、とても大きいプロジェクトの機能を分割するため、などに使われます。OpenOffice.orgのような利用もありますし、Windows自体も大量のDLLで成り立っています。
FPCでは、コンソールアプリケーションと同じように、テキストエディタとFree Pascalコンパイラだけで動的リンクライブラリを開発できます。また、Lazatus IDE上にて動的リンクライブラリのプロジェクトを作って開発することもできます。
Windows上でDLLはとても複雑で不安定である、と言われていました。たとえば、それらがしばしばインストールするのに、まわりまわって自分自身を必要とする、といった依存関係などがあげられます。また、実際のところ、DLLとは、(言語に特徴的なオブジェクトや構造体を使うよりも)基本データ型をつかって情報をやりとりをするため、プログラマに対して、やろうとしていること以上の細かい注意を払うように強要することがあります。 しかし、これをちゃんと行えるならば、よりよい結果が得られ、プログラムはより安定します。
GUIアプリケーション
わたしたちが日常で使用する多くのプログラムはGUIアプリケーションです。ワープロ、ウェブブラウザ、表計算プログラム、そして多くの開発ツールもその中のひとつです。LazarusやDelphiは完全装備のGUIアプリケーションのよい見本です。 LazarusでGUIアプリケーションを開発する際は、単にPascalでユニットのコードを書くほかに、視覚的なコントロール、たとえばボタンやテキストボックスなどを用いてフォームをデザインすることができます。 Delphiと同様に、Lazarusでもフォームのデザインが視覚的に可能です。IDEやコードでコントロールのプロパティを設定することもできます。
LCLはサポートしているプラットホームで使用できます。GUIアプリケーションはひとつのプラットホーム(例えばWindows)で開発していても、他のプラットホーム(OS XやLinux)用にコンパイルすることができ、フォームのデザインやコードを変更する必要はありません。