fbpx
Wikipedia

Pharo

Pharo is an open source, cross-platform implementation of the classic Smalltalk-80 programming language and runtime.[3] It is based on the OpenSmalltalk virtual machine called Cog (VM), [4][5][6][7]: 16  which evaluates a dynamic, reflective, and object-oriented programming language with a syntax closely resembling Smalltalk-80.

Pharo
ParadigmObject-oriented
DeveloperPharo community
First appeared2008; 15 years ago (2008)
Stable release
11.0.0[1]  / 11 May 2023; 6 months ago (11 May 2023)
Typing disciplineDynamic
Implementation languageSmalltalk
OSWindows, Linux, macOS, others
LicenseMIT license, partly Apache License 2.0[2]
Websitepharo.org
Influenced by
Smalltalk (Squeak)

Pharo is shipped with source code compiled into a system image that contains all software necessary to run Pharo.[7]: 16  Like the original Smalltalk-80, Pharo provides several live programming features such as immediate object manipulation, live updates, and just-in-time compilation. The image includes an IDE-like software to modify its components.

Pharo was forked from Squeak v3.9 in March of 2008.[8][3][7][7]: 10 [9]

Overview edit

Pharo is a pure object-oriented dynamically typed and reflective language. The stated goal of Pharo is to revisit Smalltalk design and enhance it.

The name Pharo comes from the French word "phare" (French pronunciation: [faʁ]) which means lighthouse. This is why the Pharo logo shows a drawing of a lighthouse inside the final letter O of the name.

Key features edit

Virtual machine edit

  • Multiplatform virtual machine with JIT, combined generational garbage collector, ephemerons, forwarders
  • Fast object enumeration
  • Easy call stack manipulation
  • AST metalinks
  • Relatively low memory consumption
  • Customizable compiler
  • Optional complete object memory persistence
  • Resumable exceptions
  • Fast object serialization

Built-in software edit

Language features edit

  • Simple syntax
  • Object-oriented programming
  • Immediate object identity swapping
  • Dynamic inheritance
  • Objects as methods
  • Optional Green threads
  • Customizable metaclasses
  • Easy to use proxy objects

Relation to Smalltalk edit

Pharo is based on general concepts of Smalltalk but seeks to improve on them so does not limit itself to them. The basic syntax of the language has a close resemblance to Smalltalk. However, the way classes are defined in Pharo differs from other Smalltalk dialects.[how?]

Language syntax edit

 
Pharo syntax postcard

The Pharo syntax is based on Smalltalk-80 language syntax with several extensions. Some of these are common among modern Smalltalk dialects.

  • literals for dynamic arrays. The expressions that specify the array content are evaluated in time of the program execution
{1. 2. 1+2} 
  • literals for byte arrays that can be composed only of integer numbers in the range from 0 to 255
#[1 2 3 4] 
  • literals for scaled decimals, a representation of fixed point decimal numbers able to accurately represent decimal fractions
3.14s2 
  • pragmas. In Smalltalk-80 the pragmas are used only for primitive methods. In Pharo they are fully capable method annotations
<gtInspectorPresentationOrder: 30> 
  • two double quotes inside a comment are interpreted as a single double quotes character that is part of the content of the comment

The Pharo language syntax is supposed to be very simple and minimalistic. The basic language elements are often presented on a single postcard as a showcase for the language's brevity. The grammar is classified as LL(1).

The language grammar does not specify directly how the code should be stored in files. Pharo uses Tonel as the preferred code serialization format.

History edit

Pharo emerged as a fork of Squeak, an open-source Smalltalk environment created by the Smalltalk-80 team (Dan Ingalls and Alan Kay). Pharo was created by S. Ducasse [1] and M. Denker in March 2008. It focuses on modern software engineering and development techniques.[citation needed] Pharo is supported by the Pharo consortium (for legal entities) [2] and the Pharo association for physical persons [3].


 
Version Release date Major features
March 16, 2008 [10] Fork of Squeak environment
Pharo 1.0 April 15, 2010 real closures, EToys and MVC removed
Pharo 1.1 July 26, 2010 Cog JIT VM, Settings framework
Pharo 1.2 March 29, 2011 new Finder, Recent changes tool, improved Help, better themes
Pharo 1.3 August 2011 Zinc, headless images
Pharo 1.4 April 2012[11] Ring metamodel, better code simulator
Pharo 2.0 March 18, 2013.[12] browser improvements, QA tools, Fuel serializer, better files API
Pharo 3.0 April 2014.[13] new modular compiler (Opal) and debugger, continuations
Pharo 4.0 April 2015.[14] GTools, slots
Pharo 5.0 May 2016. [15] Spur VM, UFFI, improved reflectivity
Pharo 6.0 6 June, 2017. [16] 64-bit and Git support
Pharo 6.1 24 July, 2017. [17] improved Git support
Pharo 7.0 22 January, 2019. [18] bootstrapping, new code browser (Calypso), stateful traits
Pharo 8.0 20 January, 2020. [19] improved support of Git, testing, refactoring and Windows
Pharo 9.0 15 July, 2021. [20] GTK3 support, object-centric debugger and inspector, refactorings, official ARM VMs
Pharo 10.0 5 April, 2022. [21] Cleanups, modularization, many rewritten and improved tools
Current stable version: Pharo 11.0 11 May, 2023. [22] Ephemerons, SIMD, more efficient closures, improved tools


Use of Pharo edit

Companies and consultants edit

Some companies use Pharo for their development projects.[23] In particular, they use:

  • Seaside for dynamic web development[24]
  • Zinc for server architectures[25]
  • Moose[26] to analyse data and software from all programming languages
  • Graphic libraries for evolved user interfaces
  • Roassal to visualize data[27]

The Pharo consortium[28] was created for companies wishing to support the Pharo project. The Pharo association[29] was created in 2011[30] for users wishing to support the project.

Performance and virtual machine (VM) edit

Pharo relies on a virtual machine that is written almost entirely in Smalltalk itself. Beginning in 2008, a new virtual machine (Cog) for Squeak, Pharo and Newspeak has been developed that has a level of performance close to the fastest Smalltalk virtual machine.[31] In 2014/2015 the VM community is working on Spur, a new Memory Manager for Cog that should again increase performance and provide better 64-bit VM support.[32]

See also edit

References edit

  1. ^ Error: Unable to display the reference properly. See the documentation for details.
  2. ^ Pharo license information
  3. ^ a b 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.{{cite book}}: CS1 maint: location missing publisher (link) CS1 maint: others (link)
  4. ^ "OpenSmalltalk". opensmalltalk.org. Retrieved November 24, 2021.
  5. ^ OpenSmalltalk/opensmalltalk-vm, OpenSmalltalk, November 23, 2021, retrieved November 24, 2021
  6. ^ "Cog Blog :: About Cog". Retrieved November 24, 2021.
  7. ^ a b c d Black, Andrew P.; Ducasse, Stéphane; Nierstrasz, Oscar; Pollet, Damien (October 28, 2009). Pharo by Example. Samuel Morello. ISBN 978-3-9523341-4-0.
  8. ^ "DevelopOnTheWeb". developontheweb.co.uk. Retrieved November 24, 2021.
  9. ^ "The Rise and Fall of Commercial Smalltalk". www.wirfs-brock.com. Retrieved November 24, 2021.
  10. ^ "Pharo got 10 years". Pharo-project.org. Retrieved May 31, 2018.
  11. ^ "Pharo Open Source Smalltalk — Release 1.4". Pharo-project.org. April 17, 2012. Retrieved April 5, 2013.
  12. ^ "Pharo Open Source Smalltalk — Release 2.0". Pharo-project.org. March 18, 2013. Retrieved April 5, 2013.
  13. ^ . pharo.org. April 30, 2014. Archived from the original on August 23, 2017. Retrieved May 1, 2014.
  14. ^ . pharo.org. April 15, 2015. Archived from the original on August 23, 2017. Retrieved April 16, 2015.
  15. ^ . pharo.org. May 12, 2016. Archived from the original on December 29, 2017. Retrieved May 13, 2016.
  16. ^ "Pharo Open Source Smalltalk - Release 6.0". pharo.org. June 6, 2017.
  17. ^ "Pharo 6.1 released". pharo.org. July 24, 2017.
  18. ^ "Pharo 7.0 released". pharo.org. January 22, 2019.
  19. ^ "Pharo 8.0 Released!". pharo.org. January 20, 2020.
  20. ^ "Pharo 9.0 Released!". pharo.org. July 15, 2021.
  21. ^ "Pharo 10.0 Released!". pharo.org. April 5, 2022.
  22. ^ "Pharo 11.0 Released!". pharo.org. May 11, 2023.
  23. ^ "(Press Release) Pharo Open Source Smalltalk — Success stories". Pharo-project.org. Retrieved April 5, 2013.
  24. ^ "Home". seaside.st. March 18, 2007. Retrieved April 5, 2013.
  25. ^ "Zinc HTTP Components". Zn.stfx.eu. Retrieved April 5, 2013.
  26. ^ Girba, Tudor. "Home". Moose technology. Retrieved April 5, 2013.
  27. ^ "Agile Visualization". Object Profile. Retrieved May 31, 2018.
  28. ^ "web: Pharo Consortium". Consortium.pharo.org. March 31, 2013. Retrieved April 5, 2013.
  29. ^ Ducasse, Stephane. "association: Pharo Association". Association.pharo.org. Retrieved April 5, 2013.
  30. ^ "Annonce JOAFE n°1025 de la parution n°20110013 du 26 mars 2011". Journal-officiel.gouv.fr. Retrieved May 1, 2022.
  31. ^ "Cog Blog". Mirandabanda.org. Retrieved April 5, 2013.
  32. ^ "7-point summary of the Spur memory manager". Clément Béra. Retrieved April 17, 2015.

External links edit

  • Official website

pharo, other, uses, disambiguation, confused, with, similar, term, pharaoh, disambiguation, open, source, cross, platform, implementation, classic, smalltalk, programming, language, runtime, based, opensmalltalk, virtual, machine, called, which, evaluates, dyn. For other uses see Pharo disambiguation Not to be confused with the similar term Pharaoh disambiguation Pharo is an open source cross platform implementation of the classic Smalltalk 80 programming language and runtime 3 It is based on the OpenSmalltalk virtual machine called Cog VM 4 5 6 7 16 which evaluates a dynamic reflective and object oriented programming language with a syntax closely resembling Smalltalk 80 PharoParadigmObject orientedDeveloperPharo communityFirst appeared2008 15 years ago 2008 Stable release11 0 0 1 11 May 2023 6 months ago 11 May 2023 Typing disciplineDynamicImplementation languageSmalltalkOSWindows Linux macOS othersLicenseMIT license partly Apache License 2 0 2 Websitepharo wbr orgInfluenced bySmalltalk Squeak Pharo is shipped with source code compiled into a system image that contains all software necessary to run Pharo 7 16 Like the original Smalltalk 80 Pharo provides several live programming features such as immediate object manipulation live updates and just in time compilation The image includes an IDE like software to modify its components Pharo was forked from Squeak v3 9 in March of 2008 8 3 7 7 10 9 Contents 1 Overview 2 Key features 2 1 Virtual machine 2 2 Built in software 2 3 Language features 3 Relation to Smalltalk 4 Language syntax 5 History 6 Use of Pharo 6 1 Companies and consultants 7 Performance and virtual machine VM 8 See also 9 References 10 External linksOverview editPharo is a pure object oriented dynamically typed and reflective language The stated goal of Pharo is to revisit Smalltalk design and enhance it The name Pharo comes from the French word phare French pronunciation faʁ which means lighthouse This is why the Pharo logo shows a drawing of a lighthouse inside the final letter O of the name Key features editVirtual machine edit Multiplatform virtual machine with JIT combined generational garbage collector ephemerons forwarders Fast object enumeration Easy call stack manipulation AST metalinks Relatively low memory consumption Customizable compiler Optional complete object memory persistence Resumable exceptions Fast object serializationBuilt in software edit Optional fusion of developed program and development environment Live object inspectionLanguage features edit Simple syntaxObject oriented programming Immediate object identity swapping Dynamic inheritance Objects as methods Optional Green threads Customizable metaclasses Easy to use proxy objectsRelation to Smalltalk editPharo is based on general concepts of Smalltalk but seeks to improve on them so does not limit itself to them The basic syntax of the language has a close resemblance to Smalltalk However the way classes are defined in Pharo differs from other Smalltalk dialects how Language syntax edit nbsp Pharo syntax postcardThe Pharo syntax is based on Smalltalk 80 language syntax with several extensions Some of these are common among modern Smalltalk dialects literals for dynamic arrays The expressions that specify the array content are evaluated in time of the program execution 1 2 1 2 literals for byte arrays that can be composed only of integer numbers in the range from 0 to 255 1 2 3 4 literals for scaled decimals a representation of fixed point decimal numbers able to accurately represent decimal fractions3 14 s2 pragmas In Smalltalk 80 the pragmas are used only for primitive methods In Pharo they are fully capable method annotations lt gtInspectorPresentationOrder 30 gt two double quotes inside a comment are interpreted as a single double quotes character that is part of the content of the commentThe Pharo language syntax is supposed to be very simple and minimalistic The basic language elements are often presented on a single postcard as a showcase for the language s brevity The grammar is classified as LL 1 The language grammar does not specify directly how the code should be stored in files Pharo uses Tonel as the preferred code serialization format History editPharo emerged as a fork of Squeak an open source Smalltalk environment created by the Smalltalk 80 team Dan Ingalls and Alan Kay Pharo was created by S Ducasse 1 and M Denker in March 2008 It focuses on modern software engineering and development techniques citation needed Pharo is supported by the Pharo consortium for legal entities 2 and the Pharo association for physical persons 3 nbsp Version Release date Major featuresMarch 16 2008 10 Fork of Squeak environmentPharo 1 0 April 15 2010 real closures EToys and MVC removedPharo 1 1 July 26 2010 Cog JIT VM Settings frameworkPharo 1 2 March 29 2011 new Finder Recent changes tool improved Help better themesPharo 1 3 August 2011 Zinc headless imagesPharo 1 4 April 2012 11 Ring metamodel better code simulatorPharo 2 0 March 18 2013 12 browser improvements QA tools Fuel serializer better files APIPharo 3 0 April 2014 13 new modular compiler Opal and debugger continuationsPharo 4 0 April 2015 14 GTools slotsPharo 5 0 May 2016 15 Spur VM UFFI improved reflectivityPharo 6 0 6 June 2017 16 64 bit and Git supportPharo 6 1 24 July 2017 17 improved Git supportPharo 7 0 22 January 2019 18 bootstrapping new code browser Calypso stateful traitsPharo 8 0 20 January 2020 19 improved support of Git testing refactoring and WindowsPharo 9 0 15 July 2021 20 GTK3 support object centric debugger and inspector refactorings official ARM VMsPharo 10 0 5 April 2022 21 Cleanups modularization many rewritten and improved toolsCurrent stable version Pharo 11 0 11 May 2023 22 Ephemerons SIMD more efficient closures improved toolsUse of Pharo editCompanies and consultants edit Some companies use Pharo for their development projects 23 In particular they use Seaside for dynamic web development 24 Zinc for server architectures 25 Moose 26 to analyse data and software from all programming languages Graphic libraries for evolved user interfaces Roassal to visualize data 27 The Pharo consortium 28 was created for companies wishing to support the Pharo project The Pharo association 29 was created in 2011 30 for users wishing to support the project Performance and virtual machine VM editPharo relies on a virtual machine that is written almost entirely in Smalltalk itself Beginning in 2008 a new virtual machine Cog for Squeak Pharo and Newspeak has been developed that has a level of performance close to the fastest Smalltalk virtual machine 31 In 2014 2015 the VM community is working on Spur a new Memory Manager for Cog that should again increase performance and provide better 64 bit VM support 32 See also editAmber Smalltalk GNU Smalltalk Squeak VisualWorksReferences edit Error Unable to display the reference properly See the documentation for details Pharo license information a b Pharo by example Andrew P Black Stephane Ducasse Oscar Nierstrasz Damien Pollet Damien Cassou Marcus Denker Kehrsatz Switzerland October 28 2009 ISBN 978 3 9523341 4 0 OCLC 957555627 a href Template Cite book html title Template Cite book cite book a CS1 maint location missing publisher link CS1 maint others link OpenSmalltalk opensmalltalk org Retrieved November 24 2021 OpenSmalltalk opensmalltalk vm OpenSmalltalk November 23 2021 retrieved November 24 2021 Cog Blog About Cog Retrieved November 24 2021 a b c d Black Andrew P Ducasse Stephane Nierstrasz Oscar Pollet Damien October 28 2009 Pharo by Example Samuel Morello ISBN 978 3 9523341 4 0 DevelopOnTheWeb developontheweb co uk Retrieved November 24 2021 The Rise and Fall of Commercial Smalltalk www wirfs brock com Retrieved November 24 2021 Pharo got 10 years Pharo project org Retrieved May 31 2018 Pharo Open Source Smalltalk Release 1 4 Pharo project org April 17 2012 Retrieved April 5 2013 Pharo Open Source Smalltalk Release 2 0 Pharo project org March 18 2013 Retrieved April 5 2013 Pharo Open Source Smalltalk Release 3 0 pharo org April 30 2014 Archived from the original on August 23 2017 Retrieved May 1 2014 Pharo Open Source Smalltalk Release 4 0 pharo org April 15 2015 Archived from the original on August 23 2017 Retrieved April 16 2015 Pharo Open Source Smalltalk Release 5 0 pharo org May 12 2016 Archived from the original on December 29 2017 Retrieved May 13 2016 Pharo Open Source Smalltalk Release 6 0 pharo org June 6 2017 Pharo 6 1 released pharo org July 24 2017 Pharo 7 0 released pharo org January 22 2019 Pharo 8 0 Released pharo org January 20 2020 Pharo 9 0 Released pharo org July 15 2021 Pharo 10 0 Released pharo org April 5 2022 Pharo 11 0 Released pharo org May 11 2023 Press Release Pharo Open Source Smalltalk Success stories Pharo project org Retrieved April 5 2013 Home seaside st March 18 2007 Retrieved April 5 2013 Zinc HTTP Components Zn stfx eu Retrieved April 5 2013 Girba Tudor Home Moose technology Retrieved April 5 2013 Agile Visualization Object Profile Retrieved May 31 2018 web Pharo Consortium Consortium pharo org March 31 2013 Retrieved April 5 2013 Ducasse Stephane association Pharo Association Association pharo org Retrieved April 5 2013 Annonce JOAFE n 1025 de la parution n 20110013 du 26 mars 2011 Journal officiel gouv fr Retrieved May 1 2022 Cog Blog Mirandabanda org Retrieved April 5 2013 7 point summary of the Spur memory manager Clement Bera Retrieved April 17 2015 External links editOfficial website Retrieved from https en wikipedia org w index php title Pharo amp oldid 1184787794, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.