Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Введение [ править ]

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

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

Ключевые особенности [ править ]

  • Чисто объектно-ориентированный подход
  • Простой синтаксис
  • Немедленная подмена идентификатора объекта
  • Возобновляемые исключения
  • Осмотр живого объекта
  • Динамическое наследование
  • Мультиплатформенная виртуальная машина с JIT , комбинированный сборщик мусора поколений , эфемероны, пересылки
  • Простое управление стеком вызовов
  • Быстрый перебор объектов
  • Объекты как методы
  • Дополнительные зеленые нити
  • Металлинки AST
  • Настраиваемые метаклассы
  • Относительно низкое потребление памяти
  • Настраиваемый компилятор
  • Необязательное полное сохранение памяти объекта
  • Быстрая сериализация объектов
  • Простое использование прокси-объектов

Отношение к Smalltalk [ править ]

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

Синтаксис языка [ править ]

Открытка с синтаксисом Pharo

Синтаксис 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 использует тонель в качестве предпочтительного формата сериализации кода.

История [ править ]

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



Использование Pharo [ править ]

Компании и консультанты [ править ]

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

  • Seaside для динамической веб-разработки [13]
  • Цинк для серверных архитектур [14]
  • Moose [15] для анализа данных и программного обеспечения на всех языках программирования.
  • Графические библиотеки для усовершенствованных пользовательских интерфейсов
  • Роассаль для визуализации данных [16]

Консорциум Pharo [17] был создан для компаний, желающих поддержать проект Pharo. Ассоциация Фаро [18] была недавно [ когда? ] создан для пользователей, желающих поддержать проект.

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

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

См. Также [ править ]

  • Янтарный Smalltalk
  • GNU Smalltalk
  • Писк
  • VisualWorks

Ссылки [ править ]

  1. ^ Информация о лицензии Pharo
  2. ^ "Фарон получил 10 лет" . Pharo-project.org . Проверено 31 мая 2018 года .
  3. ^ "Pharo Open Source Smalltalk - Выпуск 1.4" . Pharo-project.org. 17 апреля 2012 . Проверено 5 апреля 2013 года .
  4. ^ "Pharo Open Source Smalltalk - Выпуск 2.0" . Pharo-project.org. 18 марта 2013 . Проверено 5 апреля 2013 года .
  5. ^ "Pharo Open Source Smalltalk - Выпуск 3.0" . pharo.org. 30 апреля, 2014. Архивировано из оригинального 23 августа 2017 года . Проверено 1 мая 2014 года .
  6. ^ "Pharo Open Source Smalltalk - Выпуск 4.0" . pharo.org. 15 апреля, 2015. Архивировано из оригинального 23 августа 2017 года . Проверено 16 апреля 2015 года .
  7. ^ "Pharo Open Source Smalltalk - Выпуск 5.0" . pharo.org. 12 мая 2016 года Архивировано из оригинального 29 декабря 2017 года . Проверено 13 мая 2016 года .
  8. ^ "Pharo Open Source Smalltalk - Выпуск 6.0" . pharo.org. 6 июня 2017 г.
  9. ^ "Выпущен Pharo 6.1" . pharo.org. 24 июля 2017 года.
  10. ^ "Выпущен Pharo 7.0" . pharo.org. 22 января 2019.
  11. ^ "Pharo 8.0 выпущен!" . pharo.org. 20 января 2020.
  12. ^ «(Пресс-релиз) Pharo Open Source Smalltalk - Истории успеха» . Pharo-project.org . Проверено 5 апреля 2013 года .
  13. ^ "Дом" . Seaside.st. 18 марта 2007 . Проверено 5 апреля 2013 года .
  14. ^ "Zinc HTTP Components" . Zn.stfx.eu . Проверено 5 апреля 2013 года .
  15. ^ Гирба, Тюдор. «Дом» . Технология лося . Проверено 5 апреля 2013 года .
  16. ^ «Гибкая визуализация» . Профиль объекта . Проверено 31 мая 2018 года .
  17. ^ "Сеть: Консорциум Фаро" . Consortium.pharo.org. 31 марта 2013 . Проверено 5 апреля 2013 года .
  18. ^ Дюкасс, Стефан. "Ассоциация: Ассоциация Фаро" . Association.pharo.org . Проверено 5 апреля 2013 года .
  19. ^ "Блог Cog" . Mirandabanda.org . Проверено 5 апреля 2013 года .
  20. ^ "Обзор диспетчера памяти Spur из 7 пунктов" . Клеман Бера . Проверено 17 апреля 2015 года .

Внешние ссылки [ править ]

  • Официальный веб-сайт