Pharo поставляется с исходным кодом, скомпилированным в образ системы , содержащий все программное обеспечение, необходимое для запуска Pharo. [7] : 16 Как и исходный Smalltalk-80, Pharo предоставляет несколько функций живого программирования , таких как немедленное манипулирование объектами, динамические обновления и своевременная компиляция . Образ включает в себя программное обеспечение, подобное IDE, для изменения его компонентов.
Pharo был создан из Squeak v3.9 в марте 2008 года. [8] [3] [7] [7] : 10 [9]
Обзор
Pharo — это чистый объектно-ориентированный, динамически типизированный и рефлексивный язык. Заявленная цель Pharo — пересмотреть дизайн Smalltalk и улучшить его.
Имя Фаро происходит от французского слова «phare» ( французское произношение: [faʁ] ), что означает маяк. Вот почему на логотипе Pharo изображен маяк внутри последней буквы О названия.
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 они полностью поддерживают аннотации методов.
< gtInspectorPresentationOrder: 30>
две двойные кавычки внутри комментария интерпретируются как один символ двойных кавычек, который является частью содержимого комментария.
Синтаксис языка Pharo должен быть очень простым и минималистичным. Основные элементы языка часто представлены на одной открытке как демонстрация краткости языка. Грамматика классифицируется как LL(1).
Грамматика языка не определяет напрямую, как код должен храниться в файлах. Pharo использует Tonel в качестве предпочтительного формата сериализации кода.
История
Pharo возник как ответвление Squeak , среды Smalltalk с открытым исходным кодом, созданной командой Smalltalk-80 ( Дэн Ингаллс и Алан Кей ). Pharo был создан С. Дюкассом [1] и М. Денкером в марте 2008 года. Он ориентирован на современные методы разработки и разработки программного обеспечения. [ нужна ссылка ] Pharo поддерживается консорциумом Pharo (для юридических лиц) [2] и ассоциацией Pharo для физических лиц [3].
Использование Фаро
Компании и консультанты
Некоторые компании используют Pharo для своих проектов развития. [23] В частности, они используют:
Moose [26] для анализа данных и программного обеспечения со всех языков программирования.
Графические библиотеки для усовершенствованных пользовательских интерфейсов
Роассаль для визуализации данных [27]
Консорциум Фаро [28] был создан для компаний, желающих поддержать проект Фаро. Ассоциация Pharo [29] была создана в 2011 году [30] для пользователей, желающих поддержать проект.
Производительность и виртуальная машина (ВМ)
Pharo использует виртуальную машину, почти полностью написанную на Smalltalk. Начиная с 2008 года разрабатывается новая виртуальная машина (Cog) для Squeak, Pharo и Newspeak , имеющая уровень производительности, близкий к самой быстрой виртуальной машине Smalltalk. [31] В 2014–2015 годах сообщество виртуальных машин работает над Spur, новым диспетчером памяти для Cog, который должен снова повысить производительность и обеспечить лучшую поддержку 64-битных виртуальных машин. [32]
^ Ошибка: невозможно правильно отобразить ссылку. Подробности смотрите в документации .
^ Информация о лицензии Pharo
^ Аб Фаро, например. Эндрю П. Блэк, Стефан Дюкасс, Оскар Ньерстраз, Дэмиен Полле, Дэмиен Кассу, Маркус Денкер. [Керзац] Швейцария. 28 октября 2009 г. ISBN.978-3-9523341-4-0. ОКЛК 957555627.{{cite book}}: CS1 maint: отсутствует местоположение издателя ( ссылка ) CS1 maint: другие ( ссылка )
^ "OpenSmalltalk". opensmalltalk.org . Проверено 24 ноября 2021 г.
^ OpenSmalltalk/opensmalltalk-vm, OpenSmalltalk, 23 ноября 2021 г. , получено 24 ноября 2021 г.
^ "Блог Cog :: О Cog" . Проверено 24 ноября 2021 г.
^ abcd Блэк, Эндрю П.; Дюкасс, Стефан; Ньерстраз, Оскар; Поллет, Дэмиен (28 октября 2009 г.). Фаро на примере. Сэмюэл Морелло. ISBN978-3-9523341-4-0.
^ "DevelopOnTheWeb". www.developontheweb.co.uk . Проверено 24 ноября 2021 г.
^ «Взлет и падение коммерческого Smalltalk». www.wirfs-brock.com . Проверено 24 ноября 2021 г.
^ «Фарон получил 10 лет» . Pharo-project.org . Проверено 31 мая 2018 г.
^ "Pharo Smalltalk с открытым исходным кодом - выпуск 1.4" . Pharo-project.org. 17 апреля 2012 года . Проверено 5 апреля 2013 г.
^ «Pharo Smalltalk с открытым исходным кодом - версия 2.0» . Pharo-project.org. 18 марта 2013 года . Проверено 5 апреля 2013 г.
^ "Pharo Smalltalk с открытым исходным кодом - версия 3.0" . pharo.org. 30 апреля 2014. Архивировано из оригинала 23 августа 2017 года . Проверено 1 мая 2014 г.
^ "Pharo Smalltalk с открытым исходным кодом - выпуск 4.0" . pharo.org. 15 апреля 2015 года. Архивировано из оригинала 23 августа 2017 года . Проверено 16 апреля 2015 г.
^ "Pharo Smalltalk с открытым исходным кодом - версия 5.0" . pharo.org. 12 мая 2016. Архивировано из оригинала 29 декабря 2017 года . Проверено 13 мая 2016 г.
^ "Pharo Smalltalk с открытым исходным кодом - выпуск 6.0" . pharo.org. 6 июня 2017 года. Архивировано из оригинала 20 ноября 2017 года . Проверено 6 июня 2017 г.
^ «Выпущен Pharo 6.1» . pharo.org. 24 июля 2017 года. Архивировано из оригинала 20 августа 2017 года . Проверено 11 августа 2017 г.
^ «Выпущен Pharo 7.0» . pharo.org. 22 января 2019 года. Архивировано из оригинала 12 февраля 2022 года . Проверено 22 января 2019 г.
^ «Выпущен Pharo 8.0!». pharo.org. 20 января 2020 года. Архивировано из оригинала 12 февраля 2022 года . Проверено 20 января 2020 г.
^ «Выпущен Pharo 9.0!». pharo.org. 15 июля 2021 г.
^ «Выпущен Pharo 10.0!». pharo.org. 5 апреля 2022 г.
^ «Выпущен Pharo 11.0!». pharo.org. 11 мая 2023 г.
^ «(Пресс-релиз) Pharo Smalltalk с открытым исходным кодом - Истории успеха» . Pharo-project.org . Проверено 5 апреля 2013 г.
^ «Дом». Приморская.ул. 18 марта 2007 года . Проверено 5 апреля 2013 г.
^ «Цинковые HTTP-компоненты» . Zn.stfx.eu. Проверено 5 апреля 2013 г.
^ Гирба, Тюдор. "Дом". Лосиная технология . Проверено 5 апреля 2013 г.
^ «Гибкая визуализация». Профиль объекта . Проверено 31 мая 2018 г.
^ "Сеть: Консорциум Фаро" . Консорциум.pharo.org. 31 марта 2013 года . Проверено 5 апреля 2013 г.
^ Дюкасс, Стефан. «Ассоциация: Ассоциация Фаро». Association.pharo.org . Проверено 5 апреля 2013 г.
^ "Объявление JOAFE № 1025 о повышении № 20110013 от 26 марта 2011 г." . Журнал-officiel.gouv.fr . Проверено 1 мая 2022 г.
^ "Блог Cog" . Мирандабанда.org . Проверено 5 апреля 2013 г.
^ «Краткое описание менеджера памяти Spur из 7 пунктов» . Клеман Бера . Проверено 17 апреля 2015 г.