Jump to content

фараон

фараон
Логотип Фаро с маяком
Парадигма объектно-ориентированный
Семья Smalltalk : Писк
Разработчик Сообщество Фаро
Впервые появился март 2008 г .; 16 лет назад ( 2008-03 )
Стабильная версия
12.0 [1]  Отредактируйте это в Викиданных / 26 апреля 2024 г .; 3 месяца назад ( 26 апреля 2024 г. )
Дисциплина набора текста динамичный
Язык реализации Смолток
Платформа АРМ , ИА-32 , x86-64
ТЫ Windows , Linux , macOS и другие.
Лицензия MIT , частично Apache 2.0 [2]
Веб-сайт паро .org
Под влиянием
Smalltalk ( писк )

Pharo — это кроссплатформенная реализация классического Smalltalk -80 языка программирования и системы выполнения . [3] Он основан на OpenSmalltalk виртуальной машине (VM) под названием Cog. [4] [5] [6] [7] : 16  который оценивает динамический, рефлексивный и объектно-ориентированный язык программирования с синтаксисом, очень похожим на Smalltalk-80 . Это бесплатное программное обеспечение с открытым исходным кодом , выпущенное под лицензией MIT и Apache 2.

Pharo поставляется с исходным кодом , скомпилированным в образ системы , содержащий все программное обеспечение, необходимое для запуска Pharo. [7] : 16  Как и исходный Smalltalk-80, Pharo предоставляет несколько функций живого программирования, таких как немедленное манипулирование объектами, живые обновления и своевременная компиляция (JIT). Образ системы включает интегрированную среду разработки (IDE) для изменения ее компонентов.

Pharo был создан из Squeak v3.9 в марте 2008 года. [8] [3] [7] [7] : 10  [9]

Pharo — это чистый объектно-ориентированный, динамически типизированный и рефлексивный язык. Заявленная цель проекта — пересмотреть дизайн Smalltalk и улучшить его.

Имя Фаро происходит от французского слова «phare» ( Французское произношение: [faʁ] ), что означает маяк . Вот почему на логотипе Pharo изображен маяк внутри последней буквы О названия.

Ключевые особенности

[ редактировать ]

Виртуальная машина

[ редактировать ]
  • Многоплатформенная виртуальная машина с компиляцией JIT- , комбинированным сборщиком мусора поколений , эфемеронами , серверами пересылки
  • Быстрое перечисление объектов
  • Легкое стеком вызовов манипулирование
  • АСТ металинкс
  • Относительно низкое потребление памяти
  • Настраиваемый компилятор
  • Необязательное полное сохранение памяти объекта
  • Возобновляемые исключения
  • Быстрая сериализация объектов

Встроенное программное обеспечение

[ редактировать ]
  • Опциональное объединение разработанной программы и среды разработки
  • Проверка живого объекта

Особенности языка

[ редактировать ]
  • Простой синтаксис
  • Объектно-ориентированное программирование
  • Немедленная смена идентификаторов объектов
  • Динамическое наследование
  • Объекты как методы
  • Дополнительные зеленые нити
  • Настраиваемые метаклассы
  • Простые в использовании прокси-объекты

Отношение к Smalltalk

[ редактировать ]

Pharo основан на общих концепциях Smalltalk, но стремится их улучшить, поэтому не ограничивается ими. Базовый синтаксис языка очень похож на Smalltalk. Однако способ классов определения в Pharo отличается от других диалектов Smalltalk . [ как? ]

Синтаксис языка

[ редактировать ]
Открытка с синтаксисом Фаро

Синтаксис Pharo основан на синтаксисе языка Smalltalk-80 с несколькими расширениями. Некоторые из них распространены среди современных диалектов Smalltalk.

  • литералы для динамических массивов . Выражения, задающие содержимое массива, оцениваются во время выполнения программы.
{1. 2. 1+2}
  • литералы для байтовых массивов, которые могут состоять только из целых чисел в диапазоне от 0 до 255.
#[1 2 3 4]
  • литералы для масштабированных десятичных дробей, представление десятичных чисел с фиксированной запятой, способных точно представлять десятичные дроби
3.14s2
  • прагмы. В Smalltalk-80 прагмы используются только для примитивных методов. В Pharo они полностью поддерживают аннотации методов.
<gtInspectorPresentationOrder: 30>
  • две двойные кавычки внутри комментария интерпретируются как один символ двойной кавычки, который является частью содержимого комментария.

Синтаксис языка Pharo должен быть очень простым и минималистичным. Основные элементы языка часто представлены на одной открытке как демонстрация краткости языка. Грамматика классифицируется как LL(1).

Грамматика языка не определяет напрямую, как код должен храниться в файлах. Pharo использует Tonel в качестве предпочтительного формата сериализации кода.

Pharo возник как ответвление Squeak , среды Smalltalk с открытым исходным кодом, созданной оригинальной командой Smalltalk-80 ( Дэн Ингаллс и Алан Кей ). Pharo был создан С. Дюкассом [1] и М. Денкером в марте 2008 года. Он ориентирован на современные методы разработки и разработки программного обеспечения. [ нужна ссылка ] Pharo поддерживается консорциумом Pharo (для юридических лиц) [2] и ассоциацией Pharo для физических лиц [3] .

Версия Фаро Дата выпуска Основные особенности
16 марта 2008 г. [10] Форк среды Squeak
1.0 15 апреля 2010 г. настоящие замыкания , EToys и MVC удалены
1.1 26 июля 2010 г. Cog JIT VM, платформа настроек
1.2 29 марта 2011 г. новый Finder, инструмент последних изменений, улучшенная справка, улучшенные темы
1.3 август 2011 г. Цинк, безголовые изображения
1.4 апрель 2012 г. [11] Метамодель кольца, лучший симулятор кода
2.0 18 марта 2013 г. [12] улучшения браузера, инструменты контроля качества, сериализатор топлива, улучшенный файловый API
3.0 апрель 2014 г. [13] новый модульный компилятор (Opal) и отладчик, продолжения
4.0 апрель 2015 г. [14] GИнструменты, слоты
5.0 май 2016 г. [15] Spur VM, UFFI, улучшенная отражательная способность
6.0 6 июня, 2017 [16] Поддержка 64-битной версии и Git
6.1 24 июля, 2017 [17] улучшенная поддержка Git
7.0 22 января, 2019 [18] начальная загрузка, новый браузер кода (Calypso), особенности с отслеживанием состояния
8.0 20 января, 2020 [19] улучшенная поддержка Git, тестирования, рефакторинга и Windows
9.0 15 июля, 2021 [20] Поддержка GTK3, объектно-ориентированный отладчик и инспектор, рефакторинг, официальные ARM. виртуальные машины
10.0 5 апреля, 2022 [21] Очистки, модульность, множество переписанных и улучшенных инструментов.
11.0 11 мая, 2023 [22] Эфемероны, SIMD , более эффективные замыкания, улучшенные инструменты
Текущая стабильная версия: 12.0. 26 мая, 2024 [23] Новая система точек отладки, новые определения классов, постоянное пространство.

Использование Фаро

[ редактировать ]

Компании и консультанты

[ редактировать ]

Некоторые компании используют Pharo для своих проектов развития. [24] В частности, они используют:

Консорциум Маяк [29] был создан для компаний, желающих поддержать проект Фаро. Ассоциация Фаро [30] был создан в 2011 году [31] для пользователей, желающих поддержать проект.

Производительность и виртуальная машина (ВМ)

[ редактировать ]

Pharo использует виртуальную машину, почти полностью написанную на Smalltalk. новая виртуальная машина (Cog) для Squeak, Pharo и Newspeak , которая работает почти так же быстро, как самая быстрая виртуальная машина Smalltalk. Начиная с 2008 года была разработана [32] В 2014/2015 году сообщество виртуальных машин работает над Spur, новым диспетчером памяти для Cog, который должен снова повысить производительность и обеспечить лучшую поддержку 64-битных виртуальных машин. [33]

См. также

[ редактировать ]
  1. ^ https://pharo.org/news/2024-04-26-pharo12-released.html . {{cite web}}: Отсутствует или пусто |title= ( помощь )
  2. ^ Информация о лицензии Фаро
  3. ^ Jump up to: а б Блэк, Эндрю П.; Дюкасс, Стефан; Ньерстраз, Оскар; Поллет, Дэмиен; Кассу, Дэмиен; Денкер, Маркус (28 октября 2009 г.). Фаро на примере . Керзац, Швейцария. ISBN  978-3-9523341-4-0 . OCLC   957555627 . {{cite book}}: CS1 maint: отсутствует местоположение издателя ( ссылка )
  4. ^ «ОпенСмоллТок» . opensmalltalk.org . Проверено 24 ноября 2021 г.
  5. ^ OpenSmalltalk/opensmalltalk-vm , OpenSmalltalk, 23 ноября 2021 г. , получено 24 ноября 2021 г.
  6. ^ «Блог Cog: О Cog» . Проверено 24 ноября 2021 г.
  7. ^ Jump up to: а б с д Блэк, Эндрю П.; Дюкасс, Стефан; Ньерстраз, Оскар; Поллет, Дэмиен (28 октября 2009 г.). Фаро на примере . Сэмюэл Морелло. ISBN  978-3-9523341-4-0 .
  8. ^ «РазвитиеОнTheWeb» . www.developontheweb.co.uk . Проверено 24 ноября 2021 г.
  9. ^ «Взлет и падение коммерческого Smalltalk» . www.wirfs-brock.com . Проверено 24 ноября 2021 г.
  10. ^ «Фарон получил 10 лет» . Pharo-project.org . Проверено 31 мая 2018 г.
  11. ^ «Pharo Smalltalk с открытым исходным кодом — версия 1.4» . Pharo-project.org. 17 апреля 2012 года . Проверено 5 апреля 2013 г.
  12. ^ «Pharo Smalltalk с открытым исходным кодом — версия 2.0» . Pharo-project.org. 18 марта 2013 года . Проверено 5 апреля 2013 г.
  13. ^ «Pharo Smalltalk с открытым исходным кодом — версия 3.0» . pharo.org. 30 апреля 2014. Архивировано из оригинала 23 августа 2017 года . Проверено 1 мая 2014 г.
  14. ^ «Pharo Smalltalk с открытым исходным кодом — версия 4.0» . pharo.org. 15 апреля 2015 года. Архивировано из оригинала 23 августа 2017 года . Проверено 16 апреля 2015 г.
  15. ^ «Pharo Smalltalk с открытым исходным кодом — версия 5.0» . pharo.org. 12 мая 2016. Архивировано из оригинала 29 декабря 2017 года . Проверено 13 мая 2016 г.
  16. ^ «Pharo Smalltalk с открытым исходным кодом — выпуск 6.0» . pharo.org. 6 июня 2017 года. Архивировано из оригинала 20 ноября 2017 года . Проверено 6 июня 2017 г.
  17. ^ «Выпущен Pharo 6.1» . pharo.org. 24 июля 2017. Архивировано из оригинала 20 августа 2017 года . Проверено 11 августа 2017 г.
  18. ^ «Выпущен Pharo 7.0» . pharo.org. 22 января 2019 года. Архивировано из оригинала 12 февраля 2022 года . Проверено 22 января 2019 г.
  19. ^ «Выпущен Pharo 8.0!» . pharo.org. 20 января 2020 года. Архивировано из оригинала 12 февраля 2022 года . Проверено 20 января 2020 г.
  20. ^ «Фаро 9.0 выпущен!» . pharo.org. 15 июля 2021 г.
  21. ^ «Фаро 10.0 выпущен!» . pharo.org. 5 апреля 2022 г.
  22. ^ «Фаро 11.0 выпущен!» . pharo.org. 11 мая 2023 г.
  23. ^ «Фаро 12.0 выпущен!» . pharo.org. 26 мая 2024 г.
  24. ^ «Pharo Open Source Smalltalk — Истории успеха» (Пресс-релиз). Pharo-project.org . Проверено 5 апреля 2013 г.
  25. ^ "Дом" . Приморская.ул. 18 марта 2007 года . Проверено 5 апреля 2013 г.
  26. ^ «Цинковые HTTP-компоненты» . Zn.stfx.eu. ​Проверено 5 апреля 2013 г.
  27. ^ Гирба, Тюдор. "Дом" . Лосиная технология . Проверено 5 апреля 2013 г.
  28. ^ «Гибкая визуализация» . Профиль объекта . Проверено 31 мая 2018 г.
  29. ^ "Интернет: Консорциум Фаро" . Консорциум.pharo.org. 31 марта 2013 года . Проверено 5 апреля 2013 г.
  30. ^ Дюкасс, Стефан. «ассоциация: Ассоциация Фаро» . Association.pharo.org . Проверено 5 апреля 2013 г.
  31. ^ «Сообщение JOAFE № 1025 публикации № 20110013 от 26 марта 2011 г.» . Журнал-officiel.gouv.fr . Проверено 1 мая 2022 г.
  32. ^ «Блог о винтиках» . Мирандабанда.org . Проверено 5 апреля 2013 г.
  33. ^ «Краткий обзор менеджера памяти Spur из 7 пунктов» . Клеман Бера . Проверено 17 апреля 2015 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: eff3fcfc1823a3f655a0801c2875e6ce__1714830780
URL1:https://arc.ask3.ru/arc/aa/ef/ce/eff3fcfc1823a3f655a0801c2875e6ce.html
Заголовок, (Title) документа по адресу, URL1:
Pharo - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)