фараон
Парадигма | объектно-ориентированный |
---|---|
Семья | Smalltalk : Писк |
Разработчик | Сообщество Фаро |
Впервые появился | март 2008 г |
Стабильная версия | 12.0 [1]
/ 26 апреля 2024 г |
Дисциплина набора текста | динамичный |
Язык реализации | Смолток |
Платформа | АРМ , ИА-32 , x86-64 |
ТЫ | Windows , Linux , macOS и другие. |
Лицензия | MIT , частично Apache 2.0 [2] |
Веб-сайт | паро |
Под влиянием | |
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] В частности, они используют:
- Побережье для динамичной веб-разработки [25]
- Цинк для серверных архитектур [26]
- Лось [27] анализировать данные и программное обеспечение со всех языков программирования
- Графические библиотеки для усовершенствованных пользовательских интерфейсов
- Роассаль для визуализации данных [28]
Консорциум Маяк [29] был создан для компаний, желающих поддержать проект Фаро. Ассоциация Фаро [30] был создан в 2011 году [31] для пользователей, желающих поддержать проект.
Производительность и виртуальная машина (ВМ)
[ редактировать ]Pharo использует виртуальную машину, почти полностью написанную на Smalltalk. новая виртуальная машина (Cog) для Squeak, Pharo и Newspeak , которая работает почти так же быстро, как самая быстрая виртуальная машина Smalltalk. Начиная с 2008 года была разработана [32] В 2014/2015 году сообщество виртуальных машин работает над Spur, новым диспетчером памяти для Cog, который должен снова повысить производительность и обеспечить лучшую поддержку 64-битных виртуальных машин. [33]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ https://pharo.org/news/2024-04-26-pharo12-released.html .
{{cite web}}
: Отсутствует или пусто|title=
( помощь ) - ^ Информация о лицензии Фаро
- ^ Jump up to: а б Блэк, Эндрю П.; Дюкасс, Стефан; Ньерстраз, Оскар; Поллет, Дэмиен; Кассу, Дэмиен; Денкер, Маркус (28 октября 2009 г.). Фаро на примере . Керзац, Швейцария. ISBN 978-3-9523341-4-0 . OCLC 957555627 .
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ «ОпенСмоллТок» . opensmalltalk.org . Проверено 24 ноября 2021 г.
- ^ OpenSmalltalk/opensmalltalk-vm , OpenSmalltalk, 23 ноября 2021 г. , получено 24 ноября 2021 г.
- ^ «Блог Cog: О Cog» . Проверено 24 ноября 2021 г.
- ^ Jump up to: а б с д Блэк, Эндрю П.; Дюкасс, Стефан; Ньерстраз, Оскар; Поллет, Дэмиен (28 октября 2009 г.). Фаро на примере . Сэмюэл Морелло. ISBN 978-3-9523341-4-0 .
- ^ «РазвитиеОнTheWeb» . 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 г.
- ^ «Фаро 9.0 выпущен!» . pharo.org. 15 июля 2021 г.
- ^ «Фаро 10.0 выпущен!» . pharo.org. 5 апреля 2022 г.
- ^ «Фаро 11.0 выпущен!» . pharo.org. 11 мая 2023 г.
- ^ «Фаро 12.0 выпущен!» . pharo.org. 26 мая 2024 г.
- ^ «Pharo Open Source 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 г.
- ^ «Блог о винтиках» . Мирандабанда.org . Проверено 5 апреля 2013 г.
- ^ «Краткий обзор менеджера памяти Spur из 7 пунктов» . Клеман Бера . Проверено 17 апреля 2015 г.
Внешние ссылки
[ редактировать ]- Языки программирования
- Объектно-ориентированные языки программирования
- Языки программирования на основе классов
- Динамически типизированные языки программирования
- Семейство языков программирования Smalltalk
- Кроссплатформенное бесплатное программное обеспечение
- Бесплатные компиляторы и интерпретаторы
- Языки программирования, созданные в 2008 году.
- программное обеспечение 2008 года
- Программное обеспечение, использующее лицензию MIT
- Программное обеспечение, использующее лицензию Apache