灯台のあるファロのロゴ | |
| パラダイム | オブジェクト指向 |
|---|---|
| 家族 | スモールトーク:キーキー |
| 開発者 | ファロコミュニティ |
| 初登場 | 2008年3月 |
| 安定版リリース | 12.0 [1]
/ 2024年4月26日 |
| タイピングの規律 | 動的 |
| 実装言語 | 雑談 |
| プラットフォーム | ARM、IA-32、x86-64 |
| OS | Windows、Linux、macOS、その他 |
| ライセンス | MIT、一部Apache 2.0 [2] |
| Webサイト | pharo.org |
| 影響を受けた | |
| 雑談(スクイーク) | |
Pharoは、古典的なSmalltalk -80プログラミング言語とランタイムシステムのクロスプラットフォーム実装です。[3]これは、 Smalltalk-80によく似た構文を持つ動的、反射的、オブジェクト指向のプログラミング言語を評価するCogと呼ばれるOpenSmalltalk仮想マシン(VM)に基づいています。 [4] [5] [6] [7] : 16 これは、 MITライセンスとApache 2ライセンス の組み合わせでリリースされた無料のオープンソースソフトウェアです。
Pharoは、Pharoを実行するために必要なすべてのソフトウェアを含むシステムイメージにコンパイルされたソースコードとともに出荷されます。 [7] : 16 オリジナルのSmalltalk-80と同様に、Pharoは即時オブジェクト操作、ライブアップデート、ジャストインタイムコンパイル(JIT)などのライブプログラミング機能をいくつか提供します。システムイメージには、コンポーネントを変更するための 統合開発環境(IDE)が含まれています。
Pharoは2008年3月にSqueak v3.9からフォークされました。[8] [3] [7] [7] : 10 [9]
概要
Pharo は、純粋なオブジェクト指向、動的型付け、リフレクション言語です。プロジェクトの目標は、Smalltalk の設計を再検討し、強化することです。
Pharoという名前は、灯台を意味するフランス語の「phare」(フランス語の発音: [faʁ] )に由来しています。そのため、Pharoのロゴには、名前の 最後の文字Oの中に灯台の絵が描かれています。
主な特徴
仮想マシン
- ジャストインタイムコンパイル(JIT)、世代別ガベージコレクター、エフェメロン、フォワーダーを組み合わせたマルチプラットフォーム仮想マシン
- 高速オブジェクト列挙
- 簡単なコールスタック操作
- AST メタリンク
- 比較的低いメモリ消費
- カスタマイズ可能なコンパイラ
- オプションの完全なオブジェクトメモリの永続性
- 再開可能な例外
- 高速オブジェクトシリアル化
組み込みソフトウェア
- 開発されたプログラムと開発環境のオプション融合
- ライブオブジェクトの検査
言語機能
- シンプルな構文
- オブジェクト指向プログラミング
- 即時オブジェクトIDの交換
- 動的継承
- メソッドとしてのオブジェクト
- オプションのグリーンスレッド
- カスタマイズ可能なメタクラス
- 使いやすいプロキシオブジェクト
Smalltalkとの関係
Pharo は Smalltalk の一般的な概念に基づいていますが、その概念を改善することを目指しているため、その概念に限定されることはありません。言語の基本的な構文は Smalltalk とよく似ています。ただし、 Pharo でのクラスの定義方法は、他の Smalltalk方言とは異なります。[どのように? ]
言語構文

Pharo 構文は、いくつかの拡張機能を備えたSmalltalk-80言語構文に基づいています。これらの一部は、最近の Smalltalk 方言でよく見られるものです。
- 動的配列のリテラル。配列の内容を指定する式はプログラム実行中に評価されます。
{ 1 . 2 . 1 + 2 }
- 0から255までの範囲の整数のみで構成できるバイト配列のリテラル
# [ 1 2 3 4 ]
- スケール付き小数点のリテラル。小数点数を正確に表すことができる固定小数点小数の表現。
3.14秒2
- プラグマ。Smalltalk-80では、プラグマはプリミティブメソッドにのみ使用されます。Pharoでは、プラグマは完全なメソッドアノテーションです。
< gtInspectorプレゼンテーション順序: 30>
- コメント内の2つの二重引用符は、コメントの内容の一部である1つの二重引用符文字として解釈されます。
Pharo 言語の構文は非常にシンプルで最小限に抑えられています。言語の簡潔さを示すために、基本的な言語要素が 1 枚のポストカードにまとめられていることがよくあります。文法は LL(1) に分類されます。
言語の文法では、コードをファイルに保存する方法を直接指定しません。Pharo は、推奨されるコード シリアル化形式として Tonel を使用します。
歴史
Pharoは、オリジナルのSmalltalk-80チーム(Dan IngallsとAlan Kay )によって作成されたオープンソースのSmalltalk環境であるSqueakのフォークとして登場しました。Pharoは、2008年3月にS. Ducasse [1]とM. Denkerによって作成されました。最新のソフトウェアエンジニアリングと開発手法に重点を置いています。[要出典] Pharoは、Pharoコンソーシアム(法人向け)[2]とPharo協会(個人向け)[3]によってサポートされています。

Pharoの使用
企業およびコンサルタント
いくつかの企業は開発プロジェクトにPharoを使用しています。[24]具体的には、次のようなツールを使用しています。
- 動的ウェブ開発のためのSeaside [25]
- サーバーアーキテクチャ用のZinc [26]
- Moose [27]はあらゆるプログラミング言語のデータとソフトウェアを分析する
- 進化したユーザーインターフェースのためのグラフィックライブラリ
- データを視覚化するロアサール[28]
Pharoコンソーシアム[29]は、Pharoプロジェクトを支援したい企業のために設立されました。Pharo協会[30]は、プロジェクトを支援したいユーザーのために 2011年に設立されました[31] 。
パフォーマンスと仮想マシン (VM)
Pharo は、ほぼ完全に Smalltalk で記述された仮想マシンに依存しています。2008 年から、Squeak、Pharo、Newspeak用の新しい仮想マシン (Cog)が開発され、最速の Smalltalk 仮想マシンとほぼ同等のパフォーマンスを発揮します。[32] 2014/2015 年に、VM コミュニティは、Cog 用の新しいメモリ マネージャーである Spur に取り組んでおり、これによりパフォーマンスがさらに向上し、64 ビット VM のサポートが改善されるはずです。[33]
参照
参考文献
- ^ https://pharo.org/news/2024-04-26-pharo12-release.html。
{{cite web}}:欠落または空|title=(ヘルプ) - ^ Pharo ライセンス情報
- ^ ab ブラック、アンドリュー P.;デュカス、ステファン。ニールストラシュ、オスカー。ポレット、ダミアン。カスー、ダミアン。デンカー、マーカス (2009 年 10 月 28 日)。例としてファロ。ケールザッツ、スイス。ISBN 978-3-9523341-4-0. OCLC 957555627.
{{cite book}}: CS1 メンテナンス: 場所が見つかりません 発行者 (リンク) - ^ “OpenSmalltalk”. opensmalltalk.org . 2021年11月24日閲覧。
- ^ OpenSmalltalk/opensmalltalk-vm、OpenSmalltalk、2021年11月23日、 2021年11月24日閲覧
- ^ 「Cog Blog: Cogについて」。2021年11月24日閲覧。
- ^ abcd ブラック、アンドリュー P.;デュカス、ステファン。ニールストラシュ、オスカー。ポレット、ダミアン(2009年10月28日)。ファロの例。サミュエル・モレロ。ISBN 978-3-9523341-4-0。
- ^ “DevelopOnTheWeb”. developerontheweb.co.uk . 2021年11月24日閲覧。
- ^ 「商用スモールトークの興隆と衰退」www.wirfs-brock.com . 2021年11月24日閲覧。
- ^ 「Pharo got 10 years」Pharo-project.org . 2018年5月31日閲覧。
- ^ 「Pharo Open Source Smalltalk — リリース 1.4」。Pharo-project.org。2012 年 4 月 17 日。2013年4 月 5 日閲覧。
- ^ 「Pharo Open Source Smalltalk — Release 2.0」。Pharo-project.org。2013 年 3 月 18 日。2013年4 月 5 日閲覧。
- ^ 「Pharo Open Source Smalltalk — Release 3.0」。pharo.org。2014年4月30日。2017年8月23日時点のオリジナルよりアーカイブ。 2014年5月1日閲覧。
- ^ 「Pharo Open Source Smalltalk — Release 4.0」。pharo.org。2015年4月15日。2017年8月23日時点のオリジナルよりアーカイブ。 2015年4月16日閲覧。
- ^ 「Pharo Open Source Smalltalk — Release 5.0」。pharo.org。2016年5月12日。2017年12月29日時点のオリジナルよりアーカイブ。2016年5月13日閲覧。
- ^ 「Pharo Open Source Smalltalk - Release 6.0」。pharo.org。2017年6月6日。2017年11月20日時点のオリジナルよりアーカイブ。 2017年6月6日閲覧。
- ^ “Pharo 6.1 リリース”. pharo.org. 2017年7月24日. 2017年8月20日時点のオリジナルよりアーカイブ。 2017年8月11日閲覧。
- ^ “Pharo 7.0 リリース”. pharo.org. 2019年1月22日. 2022年2月12日時点のオリジナルよりアーカイブ。 2019年1月22日閲覧。
- ^ “Pharo 8.0 Released!”. pharo.org. 2020年1月20日. 2022年2月12日時点のオリジナルよりアーカイブ。 2020年1月20日閲覧。
- ^ 「Pharo 9.0 リリース!」 pharo.org。 2021年7月15日。
- ^ 「Pharo 10.0 リリース!」 pharo.org。 2022年4月5日。
- ^ 「Pharo 11.0 リリース!」 pharo.org。 2023年5月11日。
- ^ 「Pharo 12.0 リリース!」 pharo.org。2024年5月26日。
- ^ 「Pharo Open Source Smalltalk — 成功事例」(プレスリリース)Pharo-project.org 。2013年4 月 5 日閲覧。
- ^ 「Home」. seaside.st. 2007年3月18日. 2013年4月5日閲覧。
- ^ 「Zinc HTTP コンポーネント」Zn.stfx.eu 。2013年4 月 5 日閲覧。
- ^ Girba, Tudor. 「Home」. Moose technology . 2013年4月5日閲覧。
- ^ 「Agile Visualization」。オブジェクトプロファイル。2018年5月31日閲覧。
- ^ 「web: Pharo Consortium」Consortium.pharo.org。2013年3月31日。 2013年4月5日閲覧。
- ^ Ducasse, Stephane. 「association: Pharo Association」. Association.pharo.org . 2013年4月5日閲覧。
- ^ “Annance JOAFE n°1025 de la parution n°20110013 du 26 mars 2011”. Journal-officiel.gouv.fr 。2022 年5 月 1 日に取得。
- ^ 「Cog Blog」Mirandabanda.org . 2013年4月5日閲覧。
- ^ 「Spur メモリ マネージャーの 7 つのポイントの概要」 Clément Béra . 2015 年4 月 17 日閲覧。
外部リンク
- 公式サイト
