맨위로가기

파로 (프로그래밍 언어)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

파로(Pharo)는 객체 지향 프로그래밍 언어이다. 스몰토크의 개념을 기반으로 하지만, 스몰토크에 국한되지 않으며, 스몰토크와 유사한 문법을 가진다. 파로는 JIT 컴파일을 갖춘 멀티 플랫폼 가상 머신을 사용하며, 개발 환경과의 통합, 실시간 객체 검사, 동적 상속 등의 특징을 제공한다. 2008년 Squeak에서 분기되어 개발되었으며, Pharo 컨소시엄과 Pharo 협회를 통해 지원받고 있다. 씨사이드, Zinc, 무스 등 다양한 소프트웨어 개발에 활용되며, 가상 머신 성능 향상을 위해 지속적인 개발이 이루어지고 있다.

더 읽어볼만한 페이지

  • 스몰토크 프로그래밍 언어 계열 - 스크래치 (프로그래밍 언어)
    스크래치는 MIT 미디어 연구소에서 개발한 어린이 및 입문자를 위한 시각적 프로그래밍 언어이며, 블록 기반 방식을 통해 애니메이션, 게임, 스토리 등을 만들 수 있도록 설계되었고, 코드 공유 및 재사용을 장려하며 다양한 교육 환경에서 활용된다.
  • 스몰토크 프로그래밍 언어 계열 - 스퀵
    앨런 케이와 댄 잉갈스 등이 개발한 스몰토크 기반 프로그래밍 환경인 스퀵은 다이나북 프로젝트의 이상 구현, 자유로운 이식성, 고기능 멀티미디어 처리를 목표로 개발되었으며, 다양한 사용자 인터페이스 프레임워크와 교육용 환경 eToys를 제공하고 MIT 및 아파치 라이선스로 자유롭게 사용 가능하다.
  • 동적 타입 프로그래밍 언어 - Tcl
    Tcl은 존 오스터하우트가 개발한 명령어 기반의 프로그래밍 언어로, Tk 툴킷과 결합하여 GUI 스크립팅 환경으로 발전했으며, 다양한 운영체제에서 사용 가능하고 C, C++, Java 등 다른 언어와의 인터페이스를 지원한다.
  • 동적 타입 프로그래밍 언어 - PHP
    PHP는 라스무스 러도프가 개발한 범용 스크립팅 언어로, 웹 개발에 널리 사용되며 LAMP 아키텍처의 핵심 요소이다.
  • MIT 라이선스 소프트웨어 - MS-DOS
    MS-DOS는 마이크로소프트가 개발한 개인용 컴퓨터용 디스크 운영 체제로, IBM PC의 표준 운영 체제로 널리 사용되었으며, 단일 작업 환경과 명령줄 인터페이스를 특징으로 한다.
  • MIT 라이선스 소프트웨어 - Zcash
    Zcash는 존스 홉킨스 대학교 연구를 기반으로 개발된 익명성 강화 암호화폐로, zk-SNARK 영지식 증명을 통해 거래 당사자의 익명성을 보장하지만, 범죄 악용 우려와 규제 대상 가능성이 존재한다.
파로 (프로그래밍 언어) - [IT 관련 정보]에 관한 문서
기본 정보
파로 로고, 등대가 있음
등대가 있는 파로 로고
개발자파로 커뮤니티
최초 출시2008년 3월
최신 안정화 버전 출시일}}
웹사이트파로 공식 웹사이트
기술 정보
패러다임객체 지향 프로그래밍
계열스몰토크: 스퀵
자료형동적 타이핑
프로그래밍 언어스몰토크
운영체제마이크로소프트 윈도우, 리눅스, macOS 등
플랫폼ARM 아키텍처, IA-32, x86-64
라이선스MIT 라이선스, 부분적으로 아파치 라이선스 2.0
영향
영향을 준 언어스몰토크 (스퀵)

2. 주요 특징

파로는 순수 객체 지향, 동적 타입, 반사적 언어이다. 이 프로젝트의 목표는 스몰토크 설계를 재검토하고 개선하는 것이다.

파로(Pharo)라는 이름은 프랑스어 단어 "파르"(phare, phare|파르프랑스어)에서 유래되었으며, 이는 등대를 의미한다. 이 때문에 파로 로고는 이름의 마지막 글자 "O" 안에 등대 그림을 보여준다.

2. 1. 가상 머신 (VM)

JIT 컴파일을 갖춘 멀티 플랫폼 가상 머신으로, 세대별 가비지 컬렉션, 에페머론, 포워더를 결합하였다. 다음과 같은 특징을 가진다.

  • 빠른 객체 열거
  • 쉬운 콜 스택 조작
  • AST 메타링크
  • 비교적 낮은 메모리 소비
  • 사용자 정의 컴파일러
  • 선택적 완전 객체 메모리 영속성
  • 재개 가능한 예외
  • 빠른 객체 직렬화


Pharo의 성능은 (스몰토크로 작성된) 가상 머신에 의존한다. 2008년, Squeak, Pharo 및 Newspeak을 위해 개발된 새로운 가상 머신인 Cog는 가장 빠른 Smalltalk 가상 머신에 근접하는 높은 성능을 보였다[48]. 2014년부터 2015년까지, 가상 머신 커뮤니티는 성능 향상과 64비트 가상 머신 지원을 위해 새로운 Cog를 위한 메모리 관리자인 Spur 개발에 주력했다[49].

2. 2. 내장 소프트웨어


  • 개발된 프로그램과 개발 환경의 선택적 융합
  • 실시간 객체 검사

2. 3. 언어 특징


  • 단순한 구문
  • 객체 지향 프로그래밍
  • 즉각적인 객체 ID 스와핑
  • 동적 상속
  • 메서드로서의 객체
  • 선택적인 그린 스레드
  • 사용자 정의 가능한 메타클래스
  • 사용하기 쉬운 프록시 객체

3. Smalltalk과의 관계

파로는 스몰토크의 일반적인 개념에 기반을 두지만, 이를 개선하고자 하며, 따라서 이에 국한되지 않는다. 언어의 기본적인 문법은 스몰토크와 매우 유사하다. 하지만, 파로에서 클래스가 정의되는 방식은 다른 스몰토크 방언과는 다르다.

4. 역사

파로(Pharo프랑스어)라는 이름은 프랑스어 단어 "파르"(phare, )에서 유래되었으며, 이는 등대를 의미한다. 이 때문에 파로 로고는 이름의 마지막 글자 "O" 안에 등대 그림을 보여준다. 파로는 현대적인 소프트웨어 공학 및 개발 기술에 중점을 둔다.

4. 1. 주요 버전별 역사

파로의 버전별 외형 변화


파로는 댄 잉걸스와 앨런 케이가 제작한 오픈 소스 Smalltalk 환경인 Squeak에서 분기되어 나왔다. 파로는 S. Ducasse와 M. Denker에 의해 2008년 3월에 만들어졌다. 파로는 법인을 위한 Pharo 컨소시엄과 개인을 위한 Pharo 협회에서 지원한다.

파로 버전출시일주요 기능
2008년 3월 16일[9]Squeak 환경 분기
1.02010년 4월 15일실제 클로저, EToys 및 MVC 제거
1.12010년 7월 26일Cog JIT VM, 설정 프레임워크
1.22011년 3월 29일새로운 파인더, 최근 변경 사항 도구, 향상된 도움말, 더 나은 테마
1.32011년 8월Zinc, 헤드리스 이미지
1.42012년 4월[10]링 메타모델, 더 나은 코드 시뮬레이터
2.02013년 3월 18일[11]브라우저 개선, QA 도구, Fuel 시리얼라이저, 더 나은 파일 API
3.02014년 4월[12]새로운 모듈식 컴파일러(Opal) 및 디버거, 연속
4.02015년 4월[13]GTools, 슬롯
5.02016년 5월[14]Spur VM, UFFI, 향상된 반사성
6.02017년 6월 6일[15]64비트 및 Git 지원
6.12017년 7월 24일[16]향상된 Git 지원
7.02019년 1월 22일[17]부트스트래핑, 새로운 코드 브라우저(Calypso), 상태 트레이트
8.02020년 1월 20일[18]Git, 테스트, 리팩토링 및 Windows 지원 개선
9.02021년 7월 15일[19]GTK3 지원, 객체 중심 디버거 및 검사기, 리팩토링, 공식 ARM VM
10.02022년 4월 5일[20]정리, 모듈화, 많은 재작성 및 개선된 도구
11.02023년 5월 11일[21]에페머론, SIMD, 보다 효율적인 클로저, 향상된 도구
12.02024년 5월 26일[22]새로운 디버그 포인트 시스템, 새로운 클래스 정의, 영구 공간


5. 활용 사례

몇몇 회사들은 개발 프로젝트에 파로를 사용한다.[23] 특히 다음과 같은 것들을 활용한다.


  • 동적 웹 개발을 위한 씨사이드[24]
  • 서버 아키텍처를 위한 Zinc[25]
  • 모든 프로그래밍 언어의 데이터 및 소프트웨어 분석을 위한 무스[26]
  • 발전된 사용자 인터페이스를 위한 그래픽 라이브러리
  • 데이터 시각화를 위한 로아살[27]


파로 컨소시엄[28]은 파로 프로젝트를 지원하고자 하는 회사들을 위해 만들어졌다. 파로 협회[29]는 2011년[30]에 프로젝트를 지원하고자 하는 사용자들을 위해 설립되었다.

기업을 포함한 다양한 프로젝트에서 Pharo를 사용하여 개발을 진행하고 있다. 예를 들면 다음과 같다.

  • Seaside사: 동적인 웹 개발[43]
  • Zinc사: 서버 구축[44]
  • Moose(분석 플랫폼): 데이터 분석 및 소프트웨어 개발[45]
  • 그래픽스 라이브러리 개발
  • Roassal(데이터 시각화 도구)[46]


Pharo consortium[46]은 Pharo를 후원하는 기업을 위해 설립되었다. Pharo association[47]은 Pharo를 후원하는 사용자를 위해 설립되었다.

6. 성능 및 가상 머신 (VM)

파로는 거의 모든 부분이 스몰토크로 작성된 가상 머신에 의존한다. 2008년부터 스퀵, 파로, 뉴스피크를 위한 새로운 가상 머신(Cog)이 개발되었으며, 이는 가장 빠른 스몰토크 가상 머신만큼의 성능을 발휘한다.[31] 2014/2015년에 VM 커뮤니티는 Cog를 위한 새로운 메모리 관리자인 Spur을 개발하고 있으며, 이는 다시 성능을 향상시키고 더 나은 64비트 VM 지원을 제공할 것이다.[32][48][49]

참조

[1] 웹사이트 Pharo license information https://pharo.org/li[...]
[2] 서적 Pharo by example https://www.worldcat[...] 2009-10-28
[3] 웹사이트 OpenSmalltalk https://opensmalltal[...] 2021-11-24
[4] 간행물 OpenSmalltalk/opensmalltalk-vm https://github.com/O[...] OpenSmalltalk 2021-11-23
[5] 웹사이트 Cog Blog: About Cog http://www.mirandaba[...] 2021-11-24
[6] 서적 Pharo by Example https://www.research[...] Lulu.com 2009-10-28
[7] 웹사이트 DevelopOnTheWeb http://developonthew[...] 2021-11-24
[8] 웹사이트 The Rise and Fall of Commercial Smalltalk http://www.wirfs-bro[...] 2021-11-24
[9] 웹사이트 Pharo got 10 years https://pharoweekly.[...] Pharo-project.org 2018-05-29
[10] 웹사이트 Pharo Open Source Smalltalk — Release 1.4 http://www.pharo-pro[...] Pharo-project.org 2012-04-17
[11] 웹사이트 Pharo Open Source Smalltalk — Release 2.0 http://www.pharo-pro[...] Pharo-project.org 2013-03-18
[12] 웹사이트 Pharo Open Source Smalltalk — Release 3.0 http://pharo.org/new[...] pharo.org 2014-04-30
[13] 웹사이트 Pharo Open Source Smalltalk — Release 4.0 http://pharo.org/new[...] pharo.org 2015-04-15
[14] 웹사이트 Pharo Open Source Smalltalk — Release 5.0 http://pharo.org/new[...] pharo.org 2016-05-12
[15] 웹사이트 Pharo Open Source Smalltalk - Release 6.0 http://pharo.org/new[...] pharo.org 2017-06-06
[16] 웹사이트 Pharo 6.1 released http://pharo.org/new[...] pharo.org 2017-07-24
[17] 웹사이트 Pharo 7.0 released https://pharo.org/ne[...] pharo.org 2019-01-22
[18] 웹사이트 Pharo 8.0 Released! https://pharo.org/ne[...] pharo.org 2020-01-20
[19] 웹사이트 Pharo 9.0 Released! https://pharo.org/ne[...] pharo.org 2021-07-15
[20] 웹사이트 Pharo 10.0 Released! https://pharo.org/ne[...] pharo.org 2022-04-05
[21] 웹사이트 Pharo 11.0 Released! https://pharo.org/ne[...] pharo.org 2023-05-11
[22] 웹사이트 Pharo 12.0 Released! https://pharo.org/ne[...] pharo.org 2024-05-26
[23] 보도자료 Pharo Open Source Smalltalk — Success stories http://www.pharo-pro[...] Pharo-project.org
[24] 웹사이트 Home http://www.seaside.s[...] seaside.st 2007-03-18
[25] 웹사이트 Zinc HTTP Components http://zn.stfx.eu/zn[...] Zn.stfx.eu
[26] 웹사이트 Home http://www.moosetech[...] Moose technology
[27] 웹사이트 Agile Visualization http://agilevisualiz[...] Object Profile
[28] 웹사이트 web: Pharo Consortium http://consortium.ph[...] Consortium.pharo.org 2013-03-31
[29] 웹사이트 association: Pharo Association http://association.p[...] Association.pharo.org
[30] 웹사이트 Annonce JOAFE n°1025 de la parution n°20110013 du 26 mars 2011 https://www.journal-[...] Journal-officiel.gouv.fr
[31] 웹사이트 Cog Blog http://www.mirandaba[...] Mirandabanda.org
[32] 웹사이트 7-point summary of the Spur memory manager https://clementbera.[...] Clément Béra 2014-02-06
[33] 웹사이트 Pharo license information https://pharo.org/li[...]
[34] 웹사이트 Pharo Open Source Smalltalk — Release 1.4 http://www.pharo-pro[...] Pharo-project.org 2012-04-17
[35] 웹사이트 Pharo Open Source Smalltalk — Release 2.0 http://www.pharo-pro[...] Pharo-project.org 2013-03-18
[36] 웹사이트 Pharo Open Source Smalltalk — Release 3.0 http://pharo.org/new[...] pharo.org 2014-04-30
[37] 웹사이트 Pharo Open Source Smalltalk — Release 4.0 http://pharo.org/new[...] pharo.org 2015-04-15
[38] 웹사이트 Pharo Open Source Smalltalk — Release 5.0 http://pharo.org/new[...] pharo.org 2016-05-12
[39] 웹사이트 Pharo Open Source Smalltalk - Release 6.0 http://pharo.org/new[...] pharo.org 2017-06-06
[40] 웹사이트 Pharo 6.1 released http://pharo.org/new[...] pharo.org 2017-07-24
[41] 웹사이트 Pharo 7.0 released https://pharo.org/ne[...] pharo.org 2019-11-15
[42] 웹사이트 Pharo 8.0 released! https://pharo.org/ne[...] pharo.org 2021-02-14
[43] 웹사이트 Home http://www.seaside.s[...] seaside.st 2013-04-05
[44] 웹사이트 Zinc HTTP Components http://zn.stfx.eu/zn[...] Zn.stfx.eu 2013-04-05
[45] 웹사이트 Home http://www.moosetech[...] Moose technology 2013-04-05
[46] 웹사이트 web: Pharo Consortium http://consortium.ph[...] Consortium.pharo.org 2013-04-05
[47] 웹사이트 association: Pharo Association http://association.p[...] Association.pharo.org 2013-04-05
[48] 웹사이트 Cog Blog http://www.mirandaba[...] Mirandabanda.org 2013-04-05
[49] 웹사이트 7-point summary of the Spur memory manager https://clementbera.[...] Clément Béra 2015-04-17
[50] 문서 Pharo license information https://pharo.org/li[...]
[51] 서적 Pharo by example https://www.worldcat[...] 2009-10-28
[52] 웹인용 OpenSmalltalk https://opensmalltal[...] 2021-11-24
[53] 간행물 OpenSmalltalk/opensmalltalk-vm https://github.com/O[...] OpenSmalltalk 2021-11-24
[54] 웹인용 Cog Blog :: About Cog http://www.mirandaba[...] 2021-11-24
[55] 웹인용 Pharo by Example https://www.research[...] ResearchGate 2009-10-28
[56] 웹인용 DevelopOnTheWeb http://developonthew[...] 2021-11-24
[57] 웹인용 The Rise and Fall of Commercial Smalltalk http://www.wirfs-bro[...] 2021-11-24



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com