2010-03-26 8 views
8

나는 Python 프로그램을 가져 와서 C 프로그램을 생성하는 코드 변환기를 작성하도록 요청 받았다. 이 문제에 어떻게 접근 할 수 있을지 또는 가능한지 생각해보십시오.Python에서 C로 코드 변환기를 작성 하시겠습니까?

+19

내가 더 듣지 않고 사용자의 요구에 두 번째 추측 주저 합니다만, "(최악의 보스 중 한 사람과 같은 사람이)"코드 번역기를 작성하라는 요청을 받았다면, 어느 정도 오해를 불러 일으킬 수 있습니다. 나의 초기 반응은 (a) 누군가가 "Python = 느린, C = 빠름"을 항상 생각하고, (b) Python 용 코드 변환기가 작성하기 쉬운 것입니다. 돌아가서 그들이 왜 이것을 원 하냐고 물었습니다. – Ken

+0

[파이썬 프로그램을 C/C++ 코드로 변환 할 수 있습니까?] (http://stackoverflow.com/questions/4650243/convert-python-program-to-c-code) –

답변

2

Shedskin을 살펴보십시오. 그것은 정확하게 (물론 C++과 Python과 그 모듈의 서브 세트에 대해서) 그렇습니다. 하지만이 특정 문제에 접근하는 방법으로 가치있는 통찰력을 제공 할 수 있어야합니다. (물론 은 아니지만은 사소한 작업 임).

+0

고마워요, 크리스토퍼. Shedskin의 소스 코드를 지금 공부하겠습니다. – bodacydo

23
6

이 : 기본적으로 백 엔드로 C를 사용하는 파이썬 컴파일러를 만들 수있는 의도 나 프로그램을 C로 변환하고 C를 유지 하시겠습니까?

C를 출력으로 생성하는 (실제로 못생긴) 컴파일러를 작성하는 것은 쉬운 일이 아닙니다. 컴파일러는 거의 존재하지 않으며 Python 용 코드를 생성하는 것이 다른 많은 언어 (동적 입력, 특히, 적어도 매우 효율적인 출력까지는 컴파일하기가 어렵습니다.) OTOH, 최소한 파서는 일부 언어보다 훨씬 쉬울 것입니다.

"번역하다"는 말은 파이썬을 읽고 유지할 수있는 C로 변환한다는 의미입니다.이 질문은 전혀 다른 질문입니다. 은 실질적으로입니다. 현실적으로 필자는 어떤 기계 번역이 가치가 있는지 의심 스럽다. 평범한 기계 번역에 대한 많은 희망이 있기 때문에 파이썬과 C 언어의 문제에 일반적으로 접근하는 방법에는 너무 큰 차이가있다.

+7

+1 : 파이썬은 다른 구문을 가진 C가 아닙니다. 그것은 고유 한 의미론을 가진 근본적으로 다른 언어입니다. 그것이 "다른 구문을 가진 C"라면, 누군가는 이미 그 변환을 작성했을 것입니다. –

2

그것은 아무도 사이 썬 언급되지 않았다고 판단하기 어렵다 - 내 의견으로는, 이러한 유형의 작업에 대한 거의 사실상의 표준 : http://www.cython.org/

관련 문제