가죽을 벗기다

Shed Skin
가죽을 벗기다
원저작자Mark Dufour 외
초기 릴리즈2005
안정된 릴리스
0.9.4 / 2013년 6월 16일, 9년 전(2013-06-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의 예를 참조하십시오.

「 」를 참조해 주세요.

레퍼런스

  1. ^ 첫 번째 Shoot Skin 릴리즈
  2. ^ Sheet Skin에 대한 Python Book 섹션 학습
  3. ^ Sheat Skin 튜토리얼("피톤 서브셋 제한" 섹션)
  4. ^ "Shedskin/Shedskin". GitHub. 17 May 2022.
  5. ^ Python 속도 향상:비적재 vs.피부 벗겨짐 vs.PyPy와Cython vs.c
  6. ^ 가죽을 벗기다
  7. ^ Sheet Skin으로 Python 코드 속도 향상
  8. ^ MiniLight, 최소 글로벌 조명 렌더러 벤치마크
  9. ^ 스킨 삭제 웹 페이지
  10. ^ Sheet Skin을 사용하여 C++ 클래스 래핑
  11. ^ 석사논문 Mark Dufour, "Sheed Skin" Python-to-C++ 컴파일러 최적화", 2006년 4월 19일
  12. ^ 유형추론의 확장성, 2010-12
  13. ^ Shatskin 0.9 릴리즈 노트

외부 링크