Faro - Pharo

Faro
Pharo 6.0.jpg
TuzuvchiFaro jamoasi
Birinchi paydo bo'ldi2008; 12 yil oldin (2008)
Barqaror chiqish
8.0 / 2020 yil 20-yanvar; 10 oy oldin (2020-01-20)
Amalga oshirish tiliKichik munozarasi
OSWindows, Linux, macOS, boshqalar
LitsenziyaMIT litsenziyasi qisman Apache litsenziyasi 2.0[1]
Veb-saytfaro.org
Ta'sirlangan
Kichik munozarasi (Siqish )

Faro bu ochiq manba dan ilhomlangan dinamik va aks ettiruvchi til dasturlash tili Kichik munozarasi. Pharo bir nechtasini taklif qiladi jonli dasturlash ob'ektni darhol manipulyatsiya qilish, jonli yangilash va issiq qayta kompilyatsiya qilish kabi xususiyatlar.

Kirish

Faro - sof ob'ektga yo'naltirilgan dinamik ravishda yozilgan va aks ettiruvchi til. Faroning belgilangan maqsadi Smalltalk dizaynini qayta ko'rib chiqish va uni takomillashtirishdir.

Pharo nomi frantsuzcha "phare" so'zidan kelib chiqqan (Frantsuzcha talaffuz:[faʁ]) mayoq degan ma'noni anglatadi. Shuning uchun Pharo logotipida so'nggi harf ichida dengiz chiroqining chizilgani ko'rsatilgan O ism.

Asosiy xususiyatlar

  • Sof ob'ektga yo'naltirilgan yondashuv
  • Oddiy sintaksis
  • Ob'ektni zudlik bilan almashtirish
  • Qayta tiklanadigan istisnolar
  • Ob'ektni jonli tekshirish
  • Dinamik meros
  • Ko'p platformali virtual mashina JIT, birlashtirilgan avlod axlat yig'uvchi, efemeronlar, ekspeditorlar
  • Oson chaqiruv to'plami manipulyatsiya
  • Ob'ektni tezkor ro'yxatga olish
  • Ob'ektlar usul sifatida
  • Ixtiyoriy Yashil iplar
  • AST metalinkalari
  • Moslashtiriladigan metaclasses
  • Nisbatan kam xotira sarfi
  • Moslashtiriladigan kompilyator
  • Ixtiyoriy to'liq ob'ekt xotirasining doimiyligi
  • Ob'ektni tezkor ketma-ketlashtirish
  • Proksi-server ob'ektlaridan qulay foydalanish

Smalltalk bilan munosabat

Faro Smalltalkning umumiy tushunchalariga asoslanadi, ammo ularni takomillashtirishga intiladi, shuning uchun ular bilan cheklanib qolmaydi. Tilning asosiy sintaksisi Smalltalk bilan juda o'xshashdir. Biroq, "Faro" da sinflarni belgilash usuli boshqa Smalltalk lahjalaridan farq qiladi.[Qanaqasiga? ]

Til sintaksisi

Faro sintaksisining otkritkasi

Faro sintaksisiga asoslanadi Smalltalk-80 bir nechta kengaytmali til sintaksisi. Ulardan ba'zilari zamonaviy Smalltalk shevalarida keng tarqalgan.

  • dinamik massivlar uchun harflar. Massiv tarkibini ko'rsatadigan iboralar dastur bajarilishi vaqtida baholanadi
{1. 2. 1+2}
  • 0 dan 255 gacha bo'lgan oraliqdagi faqat butun sonlardan iborat bo'lishi mumkin bo'lgan baytli qatorlar uchun harflar
#[1 2 3 4]
  • o‘nli kasrlar uchun harflar, o‘nli kasrlarni aniq ifodalashga qodir bo‘lgan sobit o‘nli raqamlar tasviri
3.14s2
  • pragmalar. Smalltalk-80-da pragmalar faqat ibtidoiy usullar uchun ishlatiladi. Faro-da ular to'liq tushunarli metodik izohlarga ega
<gtInspectorPresentationOrder: 30>
  • sharh ichidagi ikkita qo'shaloq kotirovka sharhning tarkibiga kiruvchi bitta qo'shaloq kotirovka belgisi sifatida talqin etiladi

Faro tili sintaksisi juda sodda va minimalistik bo'lishi kerak. Asosiy til elementlari ko'pincha bitta postkartada taqdim etiladi. Grammatika LL (1) deb tasniflanadi.

Til grammatikasida kodni fayllarda qanday saqlash kerakligi to'g'ridan-to'g'ri ko'rsatilmagan. Faro foydalanadi Tonel afzal kodni seriyalashtirish formati sifatida.

Tarix

Foro fork sifatida paydo bo'ldi Siqish, Smalltalk-80 jamoasi tomonidan yaratilgan ochiq manbali Smalltalk muhiti (Dan Ingalls va Alan Kay ). Faroni S. Djuzey yaratgan [1] va M. Denker 2008 yil mart oyida bo'lib, u zamonaviy dasturiy ta'minot muhandisligi va ishlab chiqish texnikasiga bag'ishlangan.[iqtibos kerak ] Faro Pharo konsortsiumi tomonidan qo'llab-quvvatlanadi (yuridik shaxslar uchun) [2] va jismoniy shaxslar uchun "Faro" uyushmasi [3].


Pharo look history.png
VersiyaIshlab chiqarilish sanasiAsosiy xususiyatlar
2008 yil 16 mart [2]Squeak muhitining vilkasi
Faro 1.02010 yil 15 aprelhaqiqiy yopilishlar, EToys va MVC o'chirildi
Faro 1.12010 yil 26-iyulCog JIT VM, Sozlamalar doirasi
Faro 1.22011 yil 29 martyangi qidiruvchi, so'nggi o'zgarishlar vositasi, yaxshilangan yordam, yaxshi mavzular
Faro 1.32011 yil avgustSink, boshsiz tasvirlar
Faro 1.42012 yil aprel[3]Ring metamodel, yaxshiroq kod simulyatori
Pharo 2.02013 yil 18 mart.[4]brauzerni takomillashtirish, QA vositalari, Yoqilg'i seriyalizatori, API-ning yaxshi fayllari
Faro 3.02014 yil aprel.[5]yangi modulli kompilyator (Opal) va disk raskadrovka, davom etish
Faro 4.02015 yil aprel.[6]GTools, slot
Faro 5.02016 yil may. [7]Spur VM, UFFI, aks ettiruvchi yaxshilandi
Faro 6.06 iyun, 2017 yil. [8]64-bit va Git-ni qo'llab-quvvatlash
Faro 6.12017 yil 24-iyul. [9]yaxshilangan Git-ni qo'llab-quvvatlash
Faro 7.022 yanvar, 2019 yil. [10]bootstrapping, yangi kod brauzeri (Calypso), holat xususiyatlari
Amaldagi barqaror versiya: Faro 8.020 yanvar, 2020 yil. [11]Git, sinov, qayta ishlash va Windows-ni takomillashtirish


Farodan foydalanish

Kompaniyalar va maslahatchilar

Ba'zi kompaniyalar rivojlanish loyihalari uchun Pharo-dan foydalanadilar.[12] Xususan, ular quyidagilardan foydalanadilar:

  • Dengiz bo'yi dinamik veb-ishlab chiqish uchun[13]
  • Server arxitekturasi uchun sink[14]
  • Mus[15] barcha dasturlash tillaridan ma'lumotlarni va dasturiy ta'minotni tahlil qilish
  • Rivojlangan foydalanuvchi interfeyslari uchun grafik kutubxonalar
  • Roassal ma'lumotlarni ingl[16]

Faro konsortsiumi[17] Pharo loyihasini qo'llab-quvvatlashni istagan kompaniyalar uchun yaratilgan. Faro uyushmasi[18] yaqinda edi[qachon? ] loyihani qo'llab-quvvatlashni istagan foydalanuvchilar uchun yaratilgan.

Ishlash va virtual mashina (VM)

Faro deyarli butunlay Smalltalk-da yozilgan virtual mashinaga tayanadi. 2008 yildan boshlab Squeak, Pharo va uchun yangi virtual mashina (Cog) paydo bo'ldi Gazeta eng tez ishlaydigan Smalltalk virtual mashinasiga yaqin ishlash darajasiga ega bo'lgan ishlab chiqilgan.[19] 2014/2015 yillarda VM hamjamiyati Spur - Cog uchun yangi xotira menejeri ustida ishlamoqda, u yana ishlashni oshirishi va 64-bitli VM-ni yaxshiroq qo'llab-quvvatlashi kerak.[20]

Shuningdek qarang

Adabiyotlar

  1. ^ Pharo litsenziyasi haqida ma'lumot
  2. ^ "Faro 10 yoshga to'ldi". Pharo-project.org. Olingan 31 may, 2018.
  3. ^ "Pharo Open Source Smalltalk - 1.4 versiyasi". Pharo-project.org. 2012 yil 17 aprel. Olingan 5-aprel, 2013.
  4. ^ "Pharo Open Source Smalltalk - 2.0 versiyasi". Pharo-project.org. 2013 yil 18 mart. Olingan 5-aprel, 2013.
  5. ^ "Pharo Open Source Smalltalk - 3.0 versiyasi". pharo.org. 30 aprel 2014 yil. Arxivlangan asl nusxasi 2017 yil 23 avgustda. Olingan 1 may, 2014.
  6. ^ "Pharo Open Source Smalltalk - 4.0 versiyasi". pharo.org. 2015 yil 15 aprel. Arxivlangan asl nusxasi 2017 yil 23 avgustda. Olingan 16 aprel, 2015.
  7. ^ "Pharo Open Source Smalltalk - 5.0 versiyasi". pharo.org. 2016 yil 12-may. Arxivlangan asl nusxasi 2017 yil 29 dekabrda. Olingan 13 may, 2016.
  8. ^ "Pharo Open Source Smalltalk - 6.0 versiyasi". pharo.org. 2017 yil 6-iyun.
  9. ^ "Pharo 6.1 chiqarildi". pharo.org. 2017 yil 24-iyul.
  10. ^ "Pharo 7.0 chiqarildi". pharo.org. 2019 yil 22-yanvar.
  11. ^ "Pharo 8.0 chiqarildi!". pharo.org. 2020 yil 20-yanvar.
  12. ^ "(Press-reliz) Pharo Open Source Smalltalk - Muvaffaqiyat hikoyalari". Pharo-project.org. Olingan 5-aprel, 2013.
  13. ^ "Uy". seaside.st. 2007 yil 18 mart. Olingan 5-aprel, 2013.
  14. ^ "Sink HTTP komponentlari". Zn.stfx.eu. Olingan 5-aprel, 2013.
  15. ^ Girba, Tudor. "Uy". Bug'u texnologiyasi. Olingan 5-aprel, 2013.
  16. ^ "Tezkor vizualizatsiya". Ob'ekt profili. Olingan 31 may, 2018.
  17. ^ "veb: Pharo konsortsiumi". Consortium.pharo.org. 2013 yil 31 mart. Olingan 5-aprel, 2013.
  18. ^ Ducasus, Stefan. "uyushma: Pharo uyushmasi". Association.pharo.org. Olingan 5-aprel, 2013.
  19. ^ "Cog Blog". Mirandabanda.org. Olingan 5-aprel, 2013.
  20. ^ "Spur xotira menejerining 7-bandli xulosasi". Clément Béra. Olingan 17 aprel, 2015.

Tashqi havolalar