|
http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1517 [복사]
파이썬(Python)은 1991년 프로그래머인 귀도 반 로섬(Guido van Rossum)이 발표한 고급 프로그래밍 언어로, 플랫폼 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다. 파이썬이라는 이름은 귀도가 좋아하는 코미디 〈Monty Python's Flying Circus〉에서 따온 것이다.파이썬은 비영리의 파이썬 소프트웨어 재단이 관리하는 개방형, 공동체 기반 개발 모델을 가지고 있다. 사실상의 표준은 CPython의 구현이다.
파이썬은 초보자부터 전문가까지 폭넓은 사용자층을 보유하고 있다. 동적 타이핑(dynamic typing) 범용 프로그래밍 언어로, 펄 및 루비와 자주 비교된다. 다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부하여, 대학을 비롯한 여러 교육 기관, 연구 기관 및 산업계에서 이용이 증가하고 있다. 또 파이썬은 순수한 프로그램 언어로서의 기능 외에도 다른 언어로 쓰인 모듈들을 연결하는 풀언어(glue language)로써 자주 이용된다. 실제 파이썬은 많은 상용 응용 프로그램에서 스크립트 언어로 채용되고 있다. 도움말 문서도 정리가 잘 되어 있으며, 유니코드 문자열을 지원해서 다양한 언어의 문자 처리에도 능하다.
파이썬은 기본적으로 해석기(인터프리터) 위에서 실행될 것을 염두에 두고 설계되었다.
주요 특징
동적 타이핑(dynamic typing). (실행 시간에 타입 검사가 이루어진다.)
객체의 멤버에 대한 접근이 제한되어 있지 않다. (속성이나 전용의 메서드 훅을 만들어 제한할 수는 있음.)
모듈, 클래스, 객체와 같은 언어의 요소가 내부에서 접근할 수 있고, 리플렉션을 이용한 기술을 쓸 수 있다.
인터프리터의 종류
CPython : C로 작성된 인터프리터.
스택리스 파이썬 : C 스택을 사용하지 않는 인터프리터.
Jython : 자바 가상 머신 용 인터프리터. 과거에는 제이파이썬(JPython)이라고 불렸다.
IronPython : .NET 플랫폼 용 인터프리터.
PyPy : 파이썬으로 작성된 파이썬 인터프리터.
현대의 파이썬은 여전히 인터프리터 언어인 것처럼 동작하나 사용자가 모르는 사이에 스스로 파이썬 소스 코드를 컴파일하여 바이트 코드(Byte code)를 만들어 냄으로써 다음에 수행할 때에는 빠른 속도를 보여 준다. 파이썬의 이러한 특징으로 소스 코드의 유출 등의 보안 문제도 해결할 수 있다.
파이썬에서는 들여쓰기(indentation)를 사용해서 블록을 구분하는 독특한 문법을 채용하고 있다. 이 문법은 파이썬에 익숙한 사용자나 기존 프로그래밍 언어에서 들여쓰기의 중요성을 높이 평가하는 사용자에게는 잘 받아들여지고 있지만, 다른 언어의 사용자에게서는 프로그래머의 코딩 스타일을 제한한다는 비판도 많다. 이 밖에도 네이티브 이진 파일(바이너리)을 만들어 주는 C/C++ 등의 언어에 비해 수행 속도가 느리다는 단점이 있다. 그러나 사업 분야 등 일반적인 컴퓨터 응용 환경에서는 속도가 그리 중요하지 않고, 빠른 속도를 요하는 프로그램의 경우에도 프로토타이핑한 뒤 빠른 속도가 필요한 부분만 골라서 C 언어 등으로 모듈화할 수 있다(ctypes, SWIG, SIP 등 wrapper 생성 프로그램들이 많이 있다). 또한 Pyrex, Psyco, NumPy 등을 이용하면 수치를 빠르게 연산할 수 있기 때문에 과학, 공학 분야에서도 많이 이용되고 있다. 점차적인 중요성의 강조로 국내에서도 점차 그 활용도가 커지고 있으며 2010년 한국과학기술원(kaist)에서 처음 신입생을 상대로 C언어나 자바 대신 이 python을 배우게끔 하고 있으나 학생들 사이에서는 "악마의 언어"로 통한다.
(출처:위키백과)
요즘 파이썬에 관심이 생겨서, 한번 위키백과 내용을 일부 올렸습니다.
기본적 문법은 c언어에서 가져왔다고 하니, c언어를 공부한 다음에 한번 공부해보고 싶네요.(6개월에 c언어 공부하고 있는 1人)
ps. 근데 왜 악마의 언어일까요? |
Hit : 9223 Date : 2010/08/19 02:39
|