234
edits
Line 2: | Line 2: | ||
<div style="float: right; margin-left: 12px">__TOC__</div> | <div style="float: right; margin-left: 12px">__TOC__</div> | ||
= 개요 = | = 개요 = | ||
[[파이썬]]([[Python]])은 [[프로그래밍 언어]]의 일종이다. 창시자는 [[귀도 반 로섬]]([[Guido van Rossum]])이다. 네덜란드어 발음으로 | [[파이썬]]([[Python]])은 [[프로그래밍 언어]]의 일종이다. 창시자는 [[귀도 반 로섬]]([[Guido van Rossum]])이다. 네덜란드어 발음으로 [[히도 판 로쉼]]이다. 1989년 크리스마스 주에 연구실은 닫혀있고 심심해서 만들었다. 귀도가 즐겨 보던 영국의 6인조 개그 그룹 [[몬티 파이선]]([[Monty Python]])에서 이름을 땄다. [[귀도 반 로섬]]은 [[구글]]에 입사했다가 2012년 12월 7일부로 [[드랖박스]]([[Dropbox]])로 [[이직]]했다. 한 [[헤드헌터]]로부터 경력직 파이썬 개발자 취업 제안을 받은 적도 있다고 한다. 즉, 파이썬 창시자에게 파이썬 '경력직' 개발자를 구하는 수준의 메일을 보낸 것(...). https://plus.google.com/115212051037621986145/posts/R8jEVrobbRj ~~면접관: 파이썬 어느정도 하시나요? 귀도: '''제가 만들었는데요'''.~~ | ||
Line 28: | Line 28: | ||
= 언어 구현 = | = 언어 구현 = | ||
보통 말하는 Python은 [[C 언어]]로 구현되었으며, 다른 구현체와 구분하여 언급할 때에는 [[CPython]]이라고 표기한다. CLR [[바이트코드]]로 구현된, 즉 | 보통 말하는 Python은 [[C 언어]]로 구현되었으며, 다른 구현체와 구분하여 언급할 때에는 [[CPython]]이라고 표기한다. | ||
CLR [[바이트코드]]로 구현된, 즉 [[닷넷 프레임워크]] 위에서 동작하는 IronPython, CPython에서 C 스택을 없앤 Stackless Python, JVM 바이트코드로 구현되어 JVM 위에서 돌아가는 Jython, 파이썬 자체로 구현된 [[PyPy]] 등이 있으며 이 가운데 오리지날은 CPython이다. 이전 버전 문서에는 C#으로 구현된 Ironpython, Java로 구현된 Jython이라고 되어있었으나 이는 명백한 오류다. Jython이 JVM 바이트코드가 아니라 Java로 구현된거라면 안드로이드 Dalvik VM에서는 왜 안돌아간다고 생각하는가? | |||
파이썬 창시자 [[Guido van Rossum]]이 다니는 [[Dropbox]]에서 [[파이썬]]을 프론트엔드로 하고 [[LLVM]]을 백엔드로 사용하는 [[Pyston]]이란 [[JIT]] 기반 파이썬을 개발하였다. https://github.com/dropbox/pyston | |||
LLVM(이전 이름: Low Level Virtual Machine)은 컴파일러의 기반구조이다. 프로그램을 컴파일 타임, 링크 타임, 런타임 상황에서 프로그램의 작성 언어에 상관없이 최적화를 쉽게 구현할 수 있도록 구성되어 있다. | |||
한편 [[중국]]에서는 Chinese Python이라는, 중국어 문법으로 한자를 쳐서 돌아가는 언어를 개발했다. | 한편 [[중국]]에서는 Chinese Python이라는, 중국어 문법으로 한자를 쳐서 돌아가는 언어를 개발했다. | ||
== PyPy == | == PyPy == | ||
Line 158: | Line 162: | ||
파이썬은 접착(glue) 언어라고도 부르는데, 그 이유는 다른 언어들과 잘 어울려 다른 언어와 결합해서 사용할 수 있기 때문이다. C나 C++로 만든 프로그램을 파이썬에서 사용할 수 있으며, 파이썬으로 만든 프로그램 역시 C나 C++에서 사용할 수 있다. | 파이썬은 접착(glue) 언어라고도 부르는데, 그 이유는 다른 언어들과 잘 어울려 다른 언어와 결합해서 사용할 수 있기 때문이다. C나 C++로 만든 프로그램을 파이썬에서 사용할 수 있으며, 파이썬으로 만든 프로그램 역시 C나 C++에서 사용할 수 있다. | ||
Python만 쓰는 것이 답은 아니다. 동적 인터프리팅 언어의 한계로 당연히 C, C++ 같은 low-level 언어의 계산속도를 따라갈 순 없으며, 사실 [[자바스크립트]]나 [[LISP]]계열 언어 등 동적 언어들을 전체를 주욱 놓고 비교 해봐도 속도가 빠른 편은 아니다. 보통 인터프리터 언어의 속도 문제를 극복하기 위해서 인터프리터에 [[JIT]] 컴파일러를 넣는 추세지만 python의 표준인 CPython에서는 구현이 안되어 있다. | Python만 쓰는 것이 답은 아니다. 동적 인터프리팅 언어의 한계로 당연히 C, C++ 같은 low-level 언어의 계산속도를 따라갈 순 없으며, 사실 [[자바스크립트]]나 [[LISP]]계열 언어 등 동적 언어들을 전체를 주욱 놓고 비교 해봐도 속도가 빠른 편은 아니다. 보통 인터프리터 언어의 속도 문제를 극복하기 위해서 인터프리터에 [[JIT]] 컴파일러를 넣는 추세지만 python의 표준인 CPython에서는 구현이 안되어 있다. | ||
C 바인딩인 ctypes도 있다. | |||
= 사용 용도 = | = 사용 용도 = |
edits