Articulo de referencia

Faraón

[https://pharo.org/license Pharo license information] "},"website":{"wt":"{{url|https://pharo.org/}}"},"influenced by":{"wt":"[[Smalltalk]] ([[Squeak]])"},"influenced":{"wt":""}...

Pharo es una implementación multiplataforma del lenguaje de programación y sistema de ejecución clásico Smalltalk -80 . [ 3 ] Se basa en la máquina virtual (VM) OpenSmalltalk llamada Cog, [ 4 ] [ 5 ] [ 6 ] [ 7 ] : 16 que evalúa un lenguaje de programación dinámico, reflexivo y orientado a objetos con una sintaxis muy parecida a Smalltalk-80 . Es software libre y de código abierto , publicado bajo una combinación de licencias MIT y Apache 2.

Pharo se distribuye con el código fuente compilado en una imagen del sistema que contiene todo el software necesario para ejecutar Pharo. [ 7 ] : 16 Al igual que el Smalltalk-80 original, Pharo ofrece varias características de programación en vivo , como manipulación inmediata de objetos, actualizaciones en vivo y compilación justo a tiempo (JIT). La imagen del sistema incluye un entorno de desarrollo integrado (IDE) para modificar sus componentes.

Pharo se bifurcó de Squeak v3.9 en marzo de 2008. [ 8 ] [ 3 ] [ 7 ] [ 7 ] : 10 [ 9 ]

Descripción general

Pharo es un lenguaje puramente orientado a objetos, de tipado dinámico y reflexivo. El objetivo declarado del proyecto es revisar el diseño de Smalltalk y mejorarlo.

El nombre Pharo proviene de la palabra francesa "phare" ( pronunciación francesa: [ faʁ ] ), que significa faro . Por eso, el logotipo de Pharo muestra el dibujo de un faro dentro de la letra O final del nombre.

Características principales

Máquina virtual

Software integrado

Características del idioma

  • Sintaxis simple
  • Programación orientada a objetos
  • Intercambio inmediato de identidad de objetos
  • Herencia dinámica
  • Los objetos como métodos
  • Hilos verdes opcionales
  • metaclases personalizables
  • Objetos proxy fáciles de usar

Relación con Smalltalk

Pharo se basa en conceptos generales de Smalltalk, pero busca mejorarlos, por lo que no se limita a ellos. La sintaxis básica del lenguaje guarda un gran parecido con Smalltalk. Sin embargo, la forma en que se definen las clases en Pharo difiere de la de otros dialectos de Smalltalk .

sintaxis del lenguaje

Postal de sintaxis de Pharo

La sintaxis de Pharo se basa en la sintaxis del lenguaje Smalltalk-80 con varias extensiones. Algunas de estas son comunes en los dialectos modernos de Smalltalk.

  • literales para matrices dinámicas . Las expresiones que especifican el contenido de la matriz se evalúan durante la ejecución del programa.
{ 1 . 2 . 1 + 2 } 
  • literales para matrices de bytes que solo pueden estar compuestas por números enteros en el rango de 0 a 255
#[1 2 3 4] 
  • literales para decimales escalados, una representación de números decimales de punto fijo capaces de representar con precisión fracciones decimales
3,14 s2
  • pragmas. En Smalltalk-80, las pragmas se utilizan únicamente para métodos primitivos. En Pharo, son anotaciones de métodos completamente funcionales.
< gtInspectorPresentationOrder: 30> 
  • Dos comillas dobles dentro de un comentario se interpretan como un solo carácter de comilla doble que forma parte del contenido del comentario.

Se supone que la sintaxis del idioma Pharo es muy simple y minimalista. Los elementos básicos del idioma se presentan a menudo en una postal como muestra de su brevedad. La gramática se clasifica como LL(1) .

La gramática del lenguaje no especifica directamente cómo debe almacenarse el código en los archivos. Pharo utiliza Tonel como formato de serialización de código preferido.

Historia

Pharo surgió como una bifurcación de Squeak , un entorno Smalltalk de código abierto creado por el equipo original de Smalltalk-80 ( Dan Ingalls y Alan Kay ). Pharo fue creado por S. Ducasse.y M. Denker en marzo de 2008. Se centra en técnicas modernas de ingeniería y desarrollo de software. Pharo cuenta con el respaldo del consorcio Pharo (para entidades jurídicas).y la asociación Pharo para personas físicas.

Uso de Pharo

Empresas y consultores

Algunas empresas utilizan Pharo para sus proyectos de desarrollo. [ 26 ] En particular, utilizan:

El consorcio Pharo [ 31 ] se creó para las empresas que deseaban apoyar el proyecto Pharo. La asociación Pharo [ 32 ] se creó en 2011 [ 33 ] para los usuarios que deseaban apoyar el proyecto.

Rendimiento y máquina virtual (VM)

Pharo se basa en una máquina virtual escrita casi en su totalidad en Smalltalk. A partir de 2008, se desarrolló una nueva máquina virtual (Cog) para Squeak, Pharo y Newspeak que ofrece un rendimiento casi tan bueno como la máquina virtual Smalltalk más rápida. [ 34 ] En 2014/2015, la comunidad de máquinas virtuales trabajó en Spur, un nuevo gestor de memoria para Cog que debería aumentar aún más el rendimiento y proporcionar una mejor compatibilidad con máquinas virtuales de 64 bits. [ 35 ]

Véase también

Referencias

  1. "Versión 13.1.0" . 26 de junio de 2025. Consultado el 17 de julio de 2025 .
  2. Información de la licencia de Pharo
  3. ^ Negro , Andrew P.; Ducasse, Stéphane; Nierstrasz, Óscar; Pollet, Damián; Cassou, Damián; Denker, Marcus (28 de octubre de 2009). Faro con el ejemplo . Kehrsatz, Suiza. ISBN 978-3-9523341-4-0OCLC 957555627 {{cite book}}: CS1 mantenimiento: falta el editor de ubicación ( enlace )
  4. "OpenSmalltalk" . opensmalltalk.org . Consultado el 24 de noviembre de 2021 .
  5. OpenSmalltalk/opensmalltalk-vm , OpenSmalltalk, 23 de noviembre de 2021 , consultado el 24 de noviembre de 2021
  6. "Blog de Cog: Acerca de Cog" . Consultado el 24 de noviembre de 2021 .
  7. 1 2 3 4 Negro, Andrew P.; Ducasse, Stéphane; Nierstrasz, Óscar; Pollet, Damien (28 de octubre de 2009). Faro con el ejemplo . Samuel Morello. Lulu.com. ISBN 978-3-9523341-4-0.
  8. "DevelopOnTheWeb" . developontheweb.co.uk . Consultado el 24 de noviembre de 2021 .
  9. "El auge y la caída de la charla informal comercial" . www.wirfs-brock.com . Consultado el 24 de noviembre de 2021 .
  10. "Pharo recibió 10 años" . Pharo-project.org. 29 de mayo de 2018. Consultado el 31 de mayo de 2018 .
  11. "Pharo Open Source Smalltalk — Versión 1.4" . Pharo-project.org. 17 de abril de 2012. Archivado del original el 29 de marzo de 2014. Consultado el 5 de abril de 2013 .
  12. "Pharo Open Source Smalltalk — Versión 2.0" . Pharo-project.org. 18 de marzo de 2013. Archivado del original el 29 de marzo de 2014. Consultado el 5 de abril de 2013 .
  13. "Pharo Open Source Smalltalk — Versión 3.0" . pharo.org. 30 de abril de 2014. Archivado del original el 23 de agosto de 2017. Consultado el 1 de mayo de 2014 .
  14. "Pharo Open Source Smalltalk — Versión 4.0" . pharo.org. 15 de abril de 2015. Archivado del original el 23 de agosto de 2017. Consultado el 16 de abril de 2015 .
  15. "Pharo Open Source Smalltalk — Versión 5.0" . pharo.org. 12 de mayo de 2016. Archivado del original el 29 de diciembre de 2017. Consultado el 13 de mayo de 2016 .
  16. "Pharo Open Source Smalltalk - Versión 6.0" . pharo.org. 6 de junio de 2017. Archivado del original el 20 de noviembre de 2017. Consultado el 6 de junio de 2017 .
  17. "Pharo 6.1 lanzado" . pharo.org. 24 de julio de 2017. Archivado del original el 20 de agosto de 2017. Consultado el 11 de agosto de 2017 .
  18. "Pharo 7.0 lanzado" . pharo.org. 22 de enero de 2019. Archivado del original el 12 de febrero de 2022. Consultado el 22 de enero de 2019 .
  19. "¡Pharo 8.0 lanzado!" . pharo.org. 20 de enero de 2020. Archivado del original el 12 de febrero de 2022. Consultado el 20 de enero de 2020 .
  20. "¡Pharo 9.0 lanzado!" . pharo.org. 15 de julio de 2021.
  21. "¡Pharo 10.0 lanzado!" . pharo.org. 5 de abril de 2022.
  22. "¡Pharo 11.0 lanzado!" . pharo.org. 11 de mayo de 2023.
  23. "¡Pharo 12.0 lanzado!" . pharo.org. 26 de mayo de 2024.
  24. "¡Pharo 13.0 lanzado!" . pharo.org. 21 de mayo de 2025.
  25. "¡Pharo 13.1 lanzado!" . pharo.org. 26 de junio de 2025.
  26. "Pharo Open Source Smalltalk: Casos de éxito" (Comunicado de prensa). Pharo-project.org . Consultado el 5 de abril de 2013 .
  27. "Inicio" . seaside.st. 18 de marzo de 2007. Consultado el 5 de abril de 2013 .
  28. "Componentes HTTP de Zinc" . Zn.stfx.eu. Consultado el 5 de abril de 2013 .
  29. Girba, Tudor. "Hogar" . Tecnología del alce . Consultado el 5 de abril de 2013 .
  30. "Visualización ágil" . Perfil del objeto . Consultado el 31 de mayo de 2018 .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  31. "web: Pharo Consortium" . Consortium.pharo.org. 31 de marzo de 2013. Consultado el 5 de abril de 2013 .
  32. Ducasse, Stephane. "Asociación: Pharo Association" . Association.pharo.org . Consultado el 5 de abril de 2013 .
  33. «Anuncio JOAFE n°1025 de la parution n°20110013 del 26 de marzo de 2011» . Journal-officiel.gouv.fr . Consultado el 1 de mayo de 2022 .
  34. "Cog Blog" . Mirandabanda.org . Consultado el 5 de abril de 2013 .
  35. "Resumen de 7 puntos del gestor de memoria Spur" . Clément Béra. 6 de febrero de 2014. Consultado el 17 de abril de 2015 .
  • Sitio web oficial
Obtenido de " https://en.wikipedia.org/w/index.php?title=Pharo&oldid=1353304552 "