파로

Pharo
파로
Pharo Logo v3.0.svg
Pharo 6.0.jpg
패러다임객체 지향
개발자파로 군락
처음 등장한2008년, 14년 전(2008년)
안정된 릴리스
10.0[1] / 2022년 4월 5일; 4개월 전 (2022년 4월 5일)
타이핑 분야역학
구현 언어스몰토크
OSWindows, Linux, macOS
면허증.MIT 라이선스, 일부 Apache 라이선스 2[2].0
웹 사이트pharo.org
영향을 받다
스몰토크(스크릭)

Pharo는 클래식한 Smalltalk-80 프로그래밍 언어와 [3]런타임의 오픈 소스 크로스 플랫폼 구현입니다.이는 Cog(VM)라는 OpenSmalltalk 가상 머신을 기반으로 합니다.이 가상 머신은 Smalltalk-80과 매우 유사한 구문을 사용하여 동적, 반사적, 객체 지향 프로그래밍 언어를 평가합니다.

Pharo는 Pharo [7]: 16 시스템을 실행하는 데 필요한 모든 소프트웨어가 포함된 시스템 이미지로 컴파일된 소스 코드를 포함하여 출하됩니다.오리지널 Smalltalk-80과 마찬가지로 Pharo는 즉각적인 객체 조작, 라이브 업데이트, 저스트 인 타임 컴파일 등 몇 가지 라이브 프로그래밍 기능을 제공합니다.이미지에는 컴포넌트를 수정하기 위한 IDE와 같은 소프트웨어가 포함되어 있습니다.

Pharo는 2008년 [8][3][7][7]: 10 [9]3월에 Squak v3.9에서 분기되었다.

개요

Pharo는 순수한 객체 지향 동적 유형 및 반사 언어입니다.Pharo의 목표는 Smalltalk 디자인을 재검토하여 개선하는 것입니다.

파로라는 이름은 등대를 뜻하는 프랑스 단어 "phare" (프랑스어 발음: [fa]])에서 유래했습니다.그래서 파로 로고는 이름의 마지막 글자 O 안에 등대를 그려넣었다.

주요 기능

가상 머신

  • JIT, 결합된 가비지 수집기, ephemeron, Forwarder가 포함된 다중 플랫폼 가상 시스템
  • 고속 객체 열거
  • 스택의 간단한 조작
  • AST 메탈링크
  • 비교적 낮은 메모리 소비량
  • 커스터마이즈 가능한 컴파일러
  • 옵션 완전 객체 메모리 지속성
  • 재설정 가능한 예외
  • 고속 객체 시리얼화

빌트인 소프트웨어

  • 개발된 프로그램과 개발 환경을 선택적으로 통합
  • 라이브 오브젝트 검사

언어 기능

  • 간단한 구문
  • 객체 지향 프로그래밍
  • 즉시 개체 ID 스왑
  • 동적 상속
  • 메서드로서의 오브젝트
  • 녹색 스레드(옵션)
  • 커스터마이즈 가능한 메타클래스
  • 사용하기 쉬운 프록시 오브젝트

Smalltalk와의 관계

Paro는 Smalltalk의 일반적인 개념에 기초하고 있지만, 그것을 개선하려고 하기 때문에 그것들에 국한되지 않는다.그 언어의 기본 구문은 Smalltalk와 매우 유사하다.그러나 파로어로 클래스를 정의하는 방법은 다른 Smalltalk [how?]방언과 다릅니다.

언어 구문

파로 구문 엽서

Pharo 구문은 Smalltalk-80 언어 구문에 기초하고 있으며 여러 확장자가 있습니다.이들 중 일부는 현대의 Smalltalk 방언에서 흔히 볼 수 있다.

  • 다이나믹 어레이용 리터럴.어레이 콘텐츠를 지정하는 식은 프로그램 실행 시 평가됩니다.
{1. 2. 1+2}
  • 0 ~ 255 범위의 정수만으로 구성할 수 있는 바이트 배열용 리터럴
# [1 2 3 4 ]
  • 소수점 이하 리터럴로 소수점 이하 고정 소수점 이하를 정확하게 나타낼 수 있는 표현
3.14s2 
  • 프래그Smalltalk-80에서는 플러그마는 원시 메서드에만 사용됩니다.Pharo에서는 완전한 기능을 갖춘 방법 주석이다.
<gtInspector Presentation Order: 30>
  • 코멘트 내의 2개의 큰따옴표는 코멘트 내용의 일부인 1개의 큰따옴표로 해석됩니다.

파로어 구문은 매우 단순하고 미니멀리즘적이어야 한다.기본적인 언어 요소는 종종 하나의 엽서에 제시된다.문법은 LL(1)로 분류된다.

언어 문법은 파일에 코드를 저장하는 방법을 직접 지정하지 않습니다.Pharo는 Tonel을 선호하는 코드 직렬화 포맷으로 사용합니다.

역사

Pharo는 Smalltalk-80 팀(Dan Ingalls와 Alan Kay)이 만든 오픈 소스 Smalltalk 환경인 Squak의 포크로 부상했습니다.파로는 S에 의해 만들어졌다.Ducasse [1] 및 M.2008년 3월의 Denker.최신 소프트웨어 엔지니어링 [citation needed]및 개발 기술에 초점을 맞추고 있습니다.Pharo는 (법인을 위한) Pharo 컨소시엄[2]과 신체인을 위한 Pharo 협회[3]의 지원을 받는다.


Pharo look history.png
버전 발매일 주요 기능
2008년 3월 16일 스퀵 환경의 포크
파로 1.0 2010년 4월 15일 실제 폐쇄, EToy 및 MVC 제거
파로 1.1 2010년 7월 26일 톱니바퀴 JIT VM, 설정 프레임워크
파로 1.2 2011년 3월 29일 새 검색기, 최근 변경 도구, 향상된 도움말, 더 나은 테마
파로 1.3 2011년 8월 아연, 헤드리스 이미지
파로 1.4 2012년 4월[11] 링 메타모델, 더 나은 코드 시뮬레이터
파로 2.0 2013년 [12]3월 18일 브라우저 개선, QA 도구, Fuel 시리얼라이저, 더 나은 파일 API
파로 3.0 2014년 [13]4월 새로운 모듈러 컴파일러(Opal) 및 디버거, 계속
파로 4.0 2015년 [14]4월 GTool, 슬롯
파로 5.0 2016년 5월.[15] 스퍼 VM, UFFI, 반사율 향상
파로 6.0 2017년 6월 6일[16] 64비트 및 Git 지원
파로 6.1 2017년 7월 24일[17] 향상된 Git 지원
파로 7.0 2019년 1월 22일[18] 부트스트랩, 새로운 코드브라우저(Calypso), 스테이트풀 특성
파로 8.0 2020년 1월 20일[19] Git, 테스트, 리팩터링 및 Windows 지원 향상
파로 9.0 2021년 7월 15일[20] GTK3 지원, 객체 중심 디버거 및 인스펙터, 리팩터링, 공식 ARM VM
현재 안정적인 버전: 파로 10.0 2022년 4월 5일[21] 청소, 모듈화, 많은 수정 및 개선된 도구


파로의 사용

기업 및 컨설턴트

개발 프로젝트에 [22]파로를 사용하는 기업도 있습니다.특히 다음과 같은 기능을 사용합니다.

  • 동적인 웹 개발을[23] 위한 해변
  • 서버[24] 아키텍처의 장점
  • 모든[25] 프로그래밍 언어의 데이터와 소프트웨어를 분석하는 무스
  • 진화한 사용자 인터페이스용 그래픽 라이브러리
  • 데이터를 시각화하기[26] 위한 Roassal

파로 컨소시엄은[27] 파로 프로젝트를 지원하고자 하는 기업들을 위해 만들어졌다.Pharo[28] Association은 2011년 프로젝트[29] 지원을 원하는 사용자를 위해 만들어졌다.

퍼포먼스와 가상 머신(VM)

Pharo는 거의 전적으로 Smalltalk 자체에서 작성된 가상 머신에 의존합니다.2008년부터 Squak, Pharo 및 Newspeak용 새로운 가상 머신(Cog)이 개발되어 가장 빠른 Smalltalk 가상 [30]머신에 가까운 수준의 퍼포먼스가 실현되었습니다.2014/2015년에 VM 커뮤니티는 성능을 향상시키고 64비트 VM [31]지원을 개선할 수 있는 새로운 Cog용 메모리 매니저인 Spur를 개발하고 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Pharo 10 Released!". April 5, 2022. Archived from the original on April 5, 2022.
  2. ^ Pharo 라이선스 정보
  3. ^ a b Pharo by example. Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz, Damien Pollet, Damien Cassou, Marcus Denker. [Kehrsatz] Switzerland. October 28, 2009. ISBN 978-3-9523341-4-0. OCLC 957555627.{{cite book}}: CS1 유지보수: 기타 (링크)
  4. ^ "OpenSmalltalk". opensmalltalk.org. Retrieved November 24, 2021.
  5. ^ OpenSmalltalk/opensmalltalk-vm, OpenSmalltalk, November 23, 2021, retrieved November 24, 2021
  6. ^ "Cog Blog :: About Cog". Retrieved November 24, 2021.
  7. ^ a b c d Black, Andrew P.; Ducasse, Stéphane; Nierstrasz, Oscar; Pollet, Damien (October 28, 2009). "Pharo by Example". Samuel Morello. ResearchGate. ISBN 978-3-9523341-4-0.
  8. ^ "DevelopOnTheWeb". developontheweb.co.uk. Retrieved November 24, 2021.
  9. ^ "The Rise and Fall of Commercial Smalltalk". www.wirfs-brock.com. Retrieved November 24, 2021.
  10. ^ "Pharo got 10 years". Pharo-project.org. Retrieved May 31, 2018.
  11. ^ "Pharo Open Source Smalltalk — Release 1.4". Pharo-project.org. April 17, 2012. Retrieved April 5, 2013.
  12. ^ "Pharo Open Source Smalltalk — Release 2.0". Pharo-project.org. March 18, 2013. Retrieved April 5, 2013.
  13. ^ "Pharo Open Source Smalltalk — Release 3.0". pharo.org. April 30, 2014. Archived from the original on August 23, 2017. Retrieved May 1, 2014.
  14. ^ "Pharo Open Source Smalltalk — Release 4.0". pharo.org. April 15, 2015. Archived from the original on August 23, 2017. Retrieved April 16, 2015.
  15. ^ "Pharo Open Source Smalltalk — Release 5.0". pharo.org. May 12, 2016. Archived from the original on December 29, 2017. Retrieved May 13, 2016.
  16. ^ "Pharo Open Source Smalltalk - Release 6.0". pharo.org. June 6, 2017.
  17. ^ "Pharo 6.1 released". pharo.org. July 24, 2017.
  18. ^ "Pharo 7.0 released". pharo.org. January 22, 2019.
  19. ^ "Pharo 8.0 Released!". pharo.org. January 20, 2020.
  20. ^ "Pharo 9.0 Released!". pharo.org. July 15, 2021.
  21. ^ "Pharo 10.0 Released!". pharo.org. April 5, 2022.
  22. ^ "(Press Release) Pharo Open Source Smalltalk — Success stories". Pharo-project.org. Retrieved April 5, 2013.
  23. ^ "Home". seaside.st. March 18, 2007. Retrieved April 5, 2013.
  24. ^ "Zinc HTTP Components". Zn.stfx.eu. Retrieved April 5, 2013.
  25. ^ Girba, Tudor. "Home". Moose technology. Retrieved April 5, 2013.
  26. ^ "Agile Visualization". Object Profile. Retrieved May 31, 2018.
  27. ^ "web: Pharo Consortium". Consortium.pharo.org. March 31, 2013. Retrieved April 5, 2013.
  28. ^ Ducasse, Stephane. "association: Pharo Association". Association.pharo.org. Retrieved April 5, 2013.
  29. ^ "Annonce JOAFE n°1025 de la parution n°20110013 du 26 mars 2011". Journal-officiel.gouv.fr. Retrieved May 1, 2022.
  30. ^ "Cog Blog". Mirandabanda.org. Retrieved April 5, 2013.
  31. ^ "7-point summary of the Spur memory manager". Clément Béra. Retrieved April 17, 2015.

외부 링크