Pharo

Pharo 是一套开源Smalltalk程序开发平台。Pharo具备所谓现场编程（英语：Interactive programming）的特性，例如实时操控对象，实时更新等。Pharo支持高级Web开发框架，例如Seaside（英语：Seaside (software)）。 Pharo是在2008年3月从Squeak v3.9分叉而来:10。Pharo的英文名称源自希腊语（Φάρος），意为灯塔。事实上在其标志上的最后一个字母O里有一座灯塔。 作为Smalltalk平台，Pharo具备Smalltak的特点： 面向对象编程 立即对象身份切换 动态继承 对象作为方法 可选的绿色线程 可定制的元类 易于使用代理对象 它的虚拟机的特点： 具有JIT的多平台虚拟机，合并了分代垃圾回收器，ephemeron（英语：ephemeron），转发器 快速对象枚举 容易的调用栈操纵 AST元连接 相对较低的内存消耗 可定制的编译器 可选的完全的对象内存持久化 可恢复的异常 快速对象序列化 它的内建软件的特点： 已开发程序和开发环境的可选融合 现场对象检查 凭借Smalltalk与生具来的特点， Pharo最大的优势之一是在修改代码时不必全程编译。例如，在调试窗口里编辑一个方法或者创建一个方法后不需要重启进程。这就是所谓的“编辑、继续”，有别于在其他语言里常见的“编辑、编译然后运行”。 Pharo语法基于了具有一些扩展的Smalltalk-80语言语法。这些扩展在现代Smalltalk方言中是常见的。 用于动态数组的文字，指定数组内容在程序执行期间求值的表达式： {1. 2. 1+2} 用于字节数组的文字，它只能用在0到255范围内的整数构成： #[1 2 3 4] 用于比例十进制数的文字，它是能够准确表示十进制分数的定点十进制数的表示法： 3.14s2 pragma。在Smalltalk-80中，pragma只用于原始方法。在Pharo中，它们是全功能的方法标注： <gtInspectorPresentationOrder: 30> 在注释中的两个双引号，被被解释为作为这个注释内容一部份的一个单引号字符。 提供的Pharo语言语法是非常简单和极简主义的。基本语言元素通常可以体现在一张明信片上。它的文法被归类为LL(1)。 语言文法不直接指定代码应怎样存储在文件中。Pharo使用Tonel，作为其偏好的代码序列化格式。 自Squeak衍生，Pharo旨在创建一个符合Smalltalk-80规范的开源Smalltak环境。它专注于现代软件工程和程序开发技术，而Squeak定位于教学。 Pharo有一个活跃的社区和宽松的MIT许可。学习Smalltalk程序语言的利器，是两本介绍Pharo的书。第一本书为《Pharo by Example》 ，免费下载。第二本书是《Deep into Pharo》，免费下载。 初学者最好的体验Pharo的方法是在其官方网站下载一站式版本。 Pharo意在开发为公司和研究人员开发一个现代Smalltalk。作为示例，Pharo用于开发Seaside（英语：Seaside (software)），一个Web应用框架。Pharo有两个支持机构，面向公司的Pharo财团，和面向用户的Pharo协会。 一些公司在开发中使用Pharo，典型例子为： Seaside（英语：Seaside (software)），动态Web开发 Zinc，服务器架构 Moose（英语：Moose (analysis)），分析所有程序语言的数据和软件 图形库，用于演化的用户界面 Roassal，用于可视化数据 一些教育机构使用Pharo，包括： 布宜诺斯艾丽斯大学 伯恩大学 布鲁塞尔大学 Bretagne Occidentale大学 École des Mines de Douai Savoie大学 Ivan Franko Nat. Uni. of Lviv Czech 技术大学 CULS Prague 喀麦隆Maroua大学 北密执根大学 阿根廷天主教大学 Santiago大学 Policnica de Catalunya大学 Saarland大学 Quilmes大学 La Plata大学 Technologica Nacional大学 Nacional de San Martin大学 Tomsk大学 一些使用Pharo的研究机构： LAFHIS, AR SCG, CH CEA-List, FR CAR-EMD, FR RMOD-Inria, FR UMMISCO-IRD, FR Reveal, CH LYSIC, FR IGEVET, AR Pleiad, CL Uqbar, AR Pharo的虚拟机几乎完全用Smalltalk语言打造。自2008年，Pharo的虚拟机的表现接近最快的Smalltalk虚拟机。 Smalltalk GNU Smalltalk Squeak https://pharo.org/news/2024-04-26-pharo12-released.html. Pharo license information. [2017-06-08]. （原始内容存档于2016-05-30）.  Pharo board. [2015-04-01]. （原始内容存档于2015-03-31）.  DevelopOnTheWeb. developontheweb.co.uk. [2021-11-24]. （原始内容存档于2021-12-23）.  Pharo by example. Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz, Damien Pollet, Damien Cassou, Marcus Denker. [Kehrsatz] Switzerland. October 28, 2009. ISBN 978-3-9523341-4-0. OCLC 957555627.  Black, Andrew P.; Ducasse, Stéphane; Nierstrasz, Oscar; Pollet, Damien. Pharo by Example. Samuel Morello. ResearchGate. October 28, 2009 [2022-02-12]. ISBN 978-3-9523341-4-0. （原始内容存档于2021-11-24）.  The Rise and Fall of Commercial Smalltalk. www.wirfs-brock.com. [2021-11-24]. （原始内容存档于2022-04-15） （美国英语）.  Tonel. [2022-02-12]. （原始内容存档于2022-04-03）.  Pharo got 10 years. Pharo-project.org. [May 31, 2018]. （原始内容存档于2022-03-14）.  Pharo Open Source Smalltalk — Release 1.4. Pharo-project.org. April 17, 2012 [April 5, 2013]. （原始内容存档于2014-03-29）.  Pharo Open Source Smalltalk — Release 2.0. Pharo-project.org. March 18, 2013 [April 5, 2013]. （原始内容存档于2014-03-29）.  Pharo Open Source Smalltalk — Release 3.0. pharo.org. April 30, 2014 [May 1, 2014]. （原始内容存档于August 23, 2017）.  Pharo Open Source Smalltalk — Release 4.0. pharo.org. April 15, 2015 [April 16, 2015]. （原始内容存档于August 23, 2017）.  Pharo Open Source Smalltalk — Release 5.0. pharo.org. May 12, 2016 [May 13, 2016]. （原始内容存档于December 29, 2017）.  Pharo Open Source Smalltalk - Release 6.0. pharo.org. June 6, 2017 [2022-02-12]. （原始内容存档于2017-11-20）.  Pharo 6.1 released. pharo.org. July 24, 2017 [2022-02-12]. （原始内容存档于2017-08-20）.  Pharo 7.0 released. pharo.org. January 22, 2019 [2022-02-12]. （原始内容存档于2022-02-12）.  Pharo 8.0 Released!. pharo.org. January 20, 2020 [2022-02-12]. （原始内容存档于2022-02-12）.  Pharo 9.0 Released!. pharo.org. July 15, 2020 [2022-02-12]. （原始内容存档于2021-07-20）.  Pharo 10.0 Released!. pharo.org. April 5, 2022 [2022-04-06]. （原始内容存档于2022-04-07）.  Pharo 11.0 Released!. pharo.org. May 11, 2023 [2023-07-02]. （原始内容存档于2023-06-14）.  Pharo 12.0 Released!. pharo.org. April 26, 2024 [2024-05-22]. （原始内容存档于2024-05-07）.  Pharo by Example. Pharo by Example. [April 5, 2013]. （原始内容存档于2013年3月26日）.  Deep into Pharo. Deep into Pharo. [September 1, 2013]. （原始内容存档于2015-02-18）.  one-click version（页面存档备份，存于互联网档案馆） Pharo consortium（页面存档备份，存于互联网档案馆） Pharo association（页面存档备份，存于互联网档案馆） Pharo Open Source Smalltalk — Success stories. Pharo-project.org. [April 5, 2013]. （原始内容存档于2014-03-29）.  Home. seaside.st. March 18, 2007 [April 5, 2013]. （原始内容存档于2015-03-23）.  Zinc HTTP Components. Zn.stfx.eu. [April 5, 2013]. （原始内容存档于2015-05-09）.  Girba, Tudor. Home. Moose technology. [April 5, 2013]. （原始内容存档于2020-09-21）.  Agile Visualization. Object Profile. [May 31, 2018]. （原始内容存档于2022-05-01）.  Cog Blog. Mirandabanda.org. [April 5, 2013]. （原始内容存档于2015-02-18）.  Pharo Homepage（页面存档备份，存于互联网档案馆） Awesome Pharo （页面存档备份，存于互联网档案馆）