Эта статья содержит контент, который написан как реклама . ( Апрель 2019 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Разработчик | Сообщество фараонов |
---|---|
Впервые появился | 2008 |
Стабильный выпуск | 8.0 / 20 января 2020 г . |
Язык реализации | Болтовня |
Операционные системы | Windows , Linux , macOS , другие |
Лицензия | Лицензия MIT , частично лицензия Apache 2.0 [1] |
Интернет сайт | pharo |
Под влиянием | |
Smalltalk ( писк ) |
Pharo - это динамический и рефлексивный язык с открытым исходным кодом, созданный на основе языка программирования Smalltalk . Pharo предлагает несколько функций живого программирования, таких как немедленное манипулирование объектами, оперативное обновление и горячая перекомпиляция.
Введение [ править ]
Pharo - это чистый объектно-ориентированный язык с динамической типизацией и рефлексией. Заявленная цель Pharo - пересмотреть дизайн Smalltalk и улучшить его.
Название Pharo происходит от французского слова « в проекте PHARE» ( французское произношение: [faʁ] ) , который маяк средства. Вот почему на логотипе Pharo изображен маяк внутри последней буквы O названия.
Ключевые особенности [ править ]
- Дополнительное слияние разработанной программы и среды разработки
- Чисто объектно-ориентированный подход
- Простой синтаксис
- Немедленная подмена идентификатора объекта
- Возобновляемые исключения
- Осмотр живого объекта
- Динамическое наследование
- Мультиплатформенная виртуальная машина с JIT , комбинированный сборщик мусора поколений , эфемероны, пересылки
- Простое управление стеком вызовов
- Быстрый перебор объектов
- Объекты как методы
- Дополнительные зеленые нити
- Металлинки AST
- Настраиваемые метаклассы
- Относительно низкое потребление памяти
- Настраиваемый компилятор
- Необязательное полное сохранение памяти объекта
- Быстрая сериализация объектов
- Простое использование прокси-объектов
Отношение к Smalltalk [ править ]
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 использует тонель в качестве предпочтительного формата сериализации кода.
История [ править ]
Pharo возник как ответвление Squeak , среды Smalltalk с открытым исходным кодом, созданной командой Smalltalk-80 ( Дэн Ингаллс и Алан Кей ). Pharo был создан С. Дюкассом [1] и М. Денкером в марте 2008 г. Он ориентирован на современные методы разработки и разработки программного обеспечения. [ необходима цитата ] Pharo поддерживается консорциумом Pharo (для юридических лиц) [2] и ассоциацией Pharo для физических лиц [3] .
Версия | Дата выхода | Основные особенности |
---|---|---|
16 марта 2008 г. [2] | Вилка писка среды | |
Pharo 1.0 | 15 апреля 2010 г. | настоящие закрытия, EToys и MVC удалены |
Pharo 1.1 | 26 июля 2010 г. | Cog JIT VM, платформа настроек |
Pharo 1.2 | 29 марта 2011 г. | новый Finder, инструмент последних изменений, улучшенная справка, улучшенные темы |
Pharo 1.3 | Август 2011 г. | Цинк, изображения без головы |
Pharo 1.4 | Апрель 2012 [3] | Кольцевая метамодель, лучший симулятор кода |
Pharo 2.0 | 18 марта 2013 г. [4] | улучшения браузера, инструменты контроля качества, сериализатор топлива, улучшенный API файлов |
Pharo 3.0 | Апрель 2014 г. [5] | новый модульный компилятор (Opal) и отладчик, продолжения |
Pharo 4.0 | Апрель 2015 г. [6] | GTools, слоты |
Pharo 5.0 | Май 2016. [7] | Spur VM, UFFI, улучшенная отражательная способность |
Pharo 6.0 | 6 июня, 2017. [8] | 64-битная и поддержка Git |
Pharo 6.1 | 24 июля, 2017. [9] | улучшенная поддержка Git |
Pharo 7.0 | 22 января 2019 г. [10] | начальная загрузка, новый браузер кода (Calypso), свойства с отслеживанием состояния |
Pharo 8.0 | 20 января 2020 г. [11] | улучшена поддержка Git, тестирования, рефакторинга и Windows |
Использование 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
Ссылки [ править ]
- ^ Информация о лицензии Pharo
- ^ "Фарон получил 10 лет" . Pharo-project.org . Проверено 31 мая 2018 года .
- ^ "Pharo Open Source Smalltalk - Выпуск 1.4" . Pharo-project.org. 17 апреля 2012 . Проверено 5 апреля 2013 года .
- ^ "Pharo Open Source Smalltalk - Выпуск 2.0" . Pharo-project.org. 18 марта 2013 . Проверено 5 апреля 2013 года .
- ^ "Pharo Open Source Smalltalk - Выпуск 3.0" . pharo.org. 30 апреля, 2014. Архивировано из оригинального 23 августа 2017 года . Проверено 1 мая 2014 года .
- ^ "Pharo Open Source Smalltalk - Выпуск 4.0" . pharo.org. 15 апреля, 2015. Архивировано из оригинального 23 августа 2017 года . Проверено 16 апреля 2015 года .
- ^ "Pharo Open Source Smalltalk - Выпуск 5.0" . pharo.org. 12 мая 2016 года Архивировано из оригинального 29 декабря 2017 года . Проверено 13 мая 2016 года .
- ^ "Pharo Open Source Smalltalk - Выпуск 6.0" . pharo.org. 6 июня 2017 г.
- ^ "Выпущен Pharo 6.1" . pharo.org. 24 июля 2017 года.
- ^ "Выпущен Pharo 7.0" . pharo.org. 22 января 2019.
- ^ "Pharo 8.0 выпущен!" . pharo.org. 20 января 2020.
- ^ «(Пресс-релиз) Pharo Open Source Smalltalk - Истории успеха» . Pharo-project.org . Проверено 5 апреля 2013 года .
- ^ "Дом" . Seaside.st. 18 марта 2007 . Проверено 5 апреля 2013 года .
- ^ "Zinc HTTP Components" . Zn.stfx.eu . Проверено 5 апреля 2013 года .
- ^ Гирба, Тюдор. «Дом» . Технология лося . Проверено 5 апреля 2013 года .
- ^ «Гибкая визуализация» . Профиль объекта . Проверено 31 мая 2018 года .
- ^ "Сеть: Консорциум Фаро" . Consortium.pharo.org. 31 марта 2013 . Проверено 5 апреля 2013 года .
- ^ Дюкасс, Стефан. "Ассоциация: Ассоциация Фаро" . Association.pharo.org . Проверено 5 апреля 2013 года .
- ^ "Блог Cog" . Mirandabanda.org . Проверено 5 апреля 2013 года .
- ^ "Обзор диспетчера памяти Spur из 7 пунктов" . Клеман Бера . Проверено 17 апреля 2015 года .
Внешние ссылки [ править ]
- Официальный веб-сайт