가죽을 벗기다
Shed Skin원저작자 | Mark Dufour 외 |
---|---|
초기 릴리즈 | 2005 |
안정된 릴리스 | 0.9.4 / 2013년 6월 16일, 전( |
저장소 | |
기입처 | Python, C++ |
운영 체제 | 크로스 플랫폼: Linux, Mac OS X, Windows |
이용가능기간: | 파이썬 |
유형 | 소스 투 소스 컴파일러 |
면허증. | GPLv3, BSD, MIT |
웹 사이트 | slotskin.github.이오 |
Sheet Skin은 2.7 이전 버전의 Python to C++ 프로그래밍 언어 컴파일러입니다.이것은 실험적이며 순수하지만 암묵적으로 정적으로 입력된 Python 프로그램을 최적화된 C++로 변환할 수 있습니다.더 큰 파이썬 프로그램에서 가져와 사용할 수 있는 독립 실행형 프로그램이나 확장 모듈을 생성할 수 있습니다.
Sheet Skin은 많은 사람들의 기부를 받은 오픈 소스 프로젝트이지만, 주요 저자는 Mark Dufour입니다.작업은 [1]2005년부터 Shave Skin으로 진행되어 왔다.
특징들
타이핑 [2]제한 외에도 프로그램은 파이썬 표준 라이브러리를 자유롭게 사용할 수 없습니다.random
,itertools
그리고.re
(정규 표현식)은 2011년부터 지원됩니다.또한 중첩된 함수 및 변수 수와 같은 모든 Python 기능이 지원되는 것은 아닙니다.언어의 많은 자기성찰적 역동적인 부분은 지원되지 않습니다.예를 들어 다음과 같은 기능이 있습니다.getattr
,그리고.hasattr
지원되지 않습니다.
2011년 5월 현재 Unicode는 [3]지원되지 않습니다.
2016년 6월 현재 75개 비사소한 테스트 프로그램 세트(총 [4]25,000줄 이상의 코드)에 대해 측정한 결과, Psyco에 비해 평균 2-20배,[5][6][7][8] CPython에 비해 2-200배 속도가 향상되었습니다.Sheet Skin은 아직 개발 초기 단계이기 때문에 다른 많은 프로그램들은 [9]수정되지 않은 채 컴파일되지 않습니다.
Sheet Skin을 사용하여 C++ 런타임 라이브러리만 필요한 독립 실행형 실행 파일을 생성할 수 있습니다.또한 CPython 모듈을 생성하는 데도 사용할 수 있습니다.이렇게 하면 일반 CPython을 사용하여 다른 부분을 실행하고 Sheet Skin으로 더 큰 프로그램의 일부를 컴파일할 수 있습니다.
또 다른 용도는 Sheet Skin을 사용하여 C++ 클래스를 랩하여 C++ 클래스를 Python [10]클래스로 사용할 수 있도록 하는 것입니다.
Sheet Skin 소스 코드의 라이센스는 두 부분으로 나누어져 있습니다.메인 컴파일러 코드는 GNU General Public License(GPL)에 의거하고 있습니다.런타임 라이브러리로 사용하는 지원 코드는 모듈에 따라 BSD 또는 MIT 라이선스에 따라 달라집니다.이를 통해 GPL 프로그램과 비 GPL 프로그램을 모두 컴파일할 수 있습니다.
유형 추론
Sheet Skin은 Ole Ageensen의 Cartesian Product Algorithm(CPA)과 John Plevyak의 반복 흐름 분석(IFA)[11]의 데이터 다형성 부분을 결합합니다.Version 0.6에서는 프로그램의 대규모 버전을 완전히 분석할 때까지 반복적으로 분석하는 확장성 향상이 도입되었습니다.이를 통해 Sheet Skin은 이전보다 더 큰 프로그램에서 유형 추론을 수행할 수 있습니다.기본적으로 빈 콜그래프로 시작하여 콜그래프 전체가 추가될 때까지 서서히 추가됩니다.50개의 예제 프로그램에 대한 분석 시간을 총 15,000줄 정도로 보여주는 그래프가 [12]저자에 의해 공개되었습니다.
모듈
버전 0.9에서는 다음 25개의 모듈이 대부분 지원됩니다.[13]이들 중 os.path 등의 일부는 Shift Skin을 사용하여 C++로 컴파일되었습니다.
- 배열
- binascii
- 이등분하다
- 컬렉션(defaultdict, deque)
- ConfigParser(SafeConfigParser 없음)
- 알았다.
- 색채
- csv(사투리 없음, 스니퍼)
- 날짜
- 일치하다
- 옵션
- 지구본
- 히프
- itertools(스타맵 없음)
- 수학
- mmap
- os
- os.path
- 랜덤
- 참조.
- 소켓
- 스트링
- 구조(Structure, pack_into, unpack_from 없음)
- 시스템
- 시간을
pygame, pyqt 또는 피클과 같은 다른 모듈은 Shield Skin 생성 확장 모듈과 함께 사용할 수 있습니다.이에 대한 예는 Sheet Skin의 예를 참조하십시오.
「 」를 참조해 주세요.
레퍼런스
- ^ 첫 번째 Shoot Skin 릴리즈
- ^ Sheet Skin에 대한 Python Book 섹션 학습
- ^ Sheat Skin 튜토리얼("피톤 서브셋 제한" 섹션)
- ^ "Shedskin/Shedskin". GitHub. 17 May 2022.
- ^ Python 속도 향상:비적재 vs.피부 벗겨짐 vs.PyPy와Cython vs.c
- ^ 가죽을 벗기다
- ^ Sheet Skin으로 Python 코드 속도 향상
- ^ MiniLight, 최소 글로벌 조명 렌더러 벤치마크
- ^ 스킨 삭제 웹 페이지
- ^ Sheet Skin을 사용하여 C++ 클래스 래핑
- ^ 석사논문 Mark Dufour, "Sheed Skin" Python-to-C++ 컴파일러 최적화", 2006년 4월 19일
- ^ 유형추론의 확장성, 2010-12
- ^ Shatskin 0.9 릴리즈 노트