파로 (프로그래밍 언어)

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

1. 개요

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

파로 (프로그래밍 언어) - [IT 관련 정보]에 관한 문서
기본 정보

이미지 준비중입니다.

등대가 있는 파로 로고
개발자파로 커뮤니티
최초 출시2008년 3월
웹사이트파로 공식 웹사이트
기술 정보
패러다임객체 지향 프로그래밍
계열스몰토크: 스퀵
자료형동적 타이핑
프로그래밍 언어스몰토크
운영체제마이크로소프트 윈도우, 리눅스, macOS 등
플랫폼ARM 아키텍처, IA-32, x86-64
라이선스MIT 라이선스, 부분적으로 아파치 라이선스 2.0
영향
영향을 준 언어스몰토크 (스퀵)
📚 더 읽어볼만한 페이지
  • 스몰토크 프로그래밍 언어 계열 - 스크래치 (프로그래밍 언어)
    스크래치는 MIT 미디어 연구소에서 개발한 어린이 및 입문자를 위한 시각적 프로그래밍 언어이며, 블록 기반 방식을 통해 애니메이션, 게임, 스토리 등을 만들 수 있도록 설계되었고, 코드 공유 및 재사용을 장려하며 다양한 교육 환경에서 활용된다.
  • 스몰토크 프로그래밍 언어 계열 - 스퀵
    앨런 케이와 댄 잉갈스 등이 개발한 스몰토크 기반 프로그래밍 환경인 스퀵은 다이나북 프로젝트의 이상 구현, 자유로운 이식성, 고기능 멀티미디어 처리를 목표로 개발되었으며, 다양한 사용자 인터페이스 프레임워크와 교육용 환경 eToys를 제공하고 MIT 및 아파치 라이선스로 자유롭게 사용 가능하다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
    브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
    광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
  • MIT 라이선스 소프트웨어 - MS-DOS
    MS-DOS는 마이크로소프트가 개발한 개인용 컴퓨터용 디스크 운영 체제로, IBM PC의 표준 운영 체제로 널리 사용되었으며, 단일 작업 환경과 명령줄 인터페이스를 특징으로 한다.
  • MIT 라이선스 소프트웨어 - Zcash
    Zcash는 존스 홉킨스 대학교 연구를 기반으로 개발된 익명성 강화 암호화폐로, zk-SNARK 영지식 증명을 통해 거래 당사자의 익명성을 보장하지만, 범죄 악용 우려와 규제 대상 가능성이 존재한다.

2. 주요 특징

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

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

2.1. 가상 머신 (VM)

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

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

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

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일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월링 메타모델, 더 나은 코드 시뮬레이터
2.02013년 3월 18일브라우저 개선, QA 도구, Fuel 시리얼라이저, 더 나은 파일 API
3.02014년 4월새로운 모듈식 컴파일러(Opal) 및 디버거, 연속
4.02015년 4월GTools, 슬롯
5.02016년 5월Spur VM, UFFI, 향상된 반사성
6.02017년 6월 6일64비트 및 Git 지원
6.12017년 7월 24일향상된 Git 지원
7.02019년 1월 22일부트스트래핑, 새로운 코드 브라우저(Calypso), 상태 트레이트
8.02020년 1월 20일Git, 테스트, 리팩토링 및 Windows 지원 개선
9.02021년 7월 15일GTK3 지원, 객체 중심 디버거 및 검사기, 리팩토링, 공식 ARM VM
10.02022년 4월 5일정리, 모듈화, 많은 재작성 및 개선된 도구
11.02023년 5월 11일에페머론, SIMD, 보다 효율적인 클로저, 향상된 도구
12.02024년 5월 26일새로운 디버그 포인트 시스템, 새로운 클래스 정의, 영구 공간

5. 활용 사례

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

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

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

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

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

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

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

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