Cpython

임승환·2024년 12월 4일

Python

목록 보기
14/20

알고리즘 테스트 코드 자동화를 위해 코드를 받았는데, Cpython으로 컴파일 되어 열 수 없는 상태였다.
하지만 도커에 이미지 빌드하니 launcher는 잘 돌아가는..
당시 Cpython에 대해 간략한 설명을 듣긴 했지만, 궁금증이 생겨 따로 더 찾아보고 정리해두려 한다.
간략하게 정리한 것이라 깊이 있는 내용을 찾는다면 아래의 가짜 연구소 노션 혹은 Cpython 파헤치기 책을 참고하자.

Cpython이란?

python 구현체 중 하나, python에서 제공하는 공식 파이썬 구현체(C로 작성)

  • 다른 python 구현체 Jython : Java로 작성된 파이썬 구현체, JVM(Java Virtual Machine)에서 실행 IronPython : C# 으로 작성된 파이썬 구현체, .NET 프레임워크 사용 PyPy : Python 정적 타입으로 작성된 파이썬 구현체
    • 정적 타입 : 실행하기 전에 변수의 type을 미리 결정하고, 그 이후에는 type을 변경하지 않는 방식
    • JIT(Just-In-Time)
      • 프로그램을 실행하는 동안 실시간으로 기계어로 변환
      • 컴파일러 방식으로 구현되어 기존 interpreter 방식보다 빠르고 효율적

CPython 배포판 구성 요소

  • 언어 사양 : 파이썬
  • 컴파일러(Interpreter) : C 언어로 작성된 컴파일러
    • 파이썬 소스 코드를 실행 가능한 기계어로 변환하는 역할
  • 표준 라이브러리 모듈 : 기본적으로 포함되어 있는 패키지
    • 파일 입출력, 네트워킹, 문자열 처리, 데이터 구조, GUI 프로그래밍 등
  • 코어 타입 : 내장 데이터 타입
  • 테스트 스위트(Test Suite)
    • 유닛 테스트, 통합 테스트, 성능 테스트

CPython 컴파일하기

컴파일(compile)이란?

  • 프로그래밍 언어로 작성된 소스 코드를 컴퓨터가 직접 이해하고 실행할 수 있는 기계어 코드로 변환하는 과정 (소스 코드 → 실행 가능한 프로그램)

기존의 Python 코드보다 시간을 크게 단축 시킬 수 있다.

참고 사이트

https://pseudo-lab.com/chanrankim/Python-CPython-eb832e65c4b1443ba3b9be8d5fc5883a

참고 서적

Python 제대로 알고 써먹기 - CPython 파헤치기

profile
주니어 개발자

0개의 댓글