ZeroAOS 2.0과 Python 둘째

1.
Pocket이 있습니다. ‘Read it Later’라는 표어처럼 주머니속에 보관했다가 나중에 꺼내서 읽어볼 수 있도록 해주는 서비스입니다. 제가 인터넷을 이용할 때 항상 사용하는 서비스입니다. Chrome이나 Firefox에서 Pocket을 할 수 있는 플러그인이 있습니다. 그동안 Pocket했던 글들을 정리하려고 하니까 몇 천이 넘습니다. 마우스 휠을 내리다가 눈에 들어오는 글을 보았습니다. C/C++ 프로그램에 Python을 내장하는 방법에 관한 글들입니다. 오래전에 나온 글입니다. Python이 독자적인 개발언어로 정착하기 이전에 만들어진 글입니다. 그렇지만 Python으로 개발된 전략을 ZeroAOS에 내장하는 고민을 하고 있어서 정리합니다.

ZeroAOS 2.0와 Python

시작은 지금으로부터 15년전 Linux Journal에 실린 글입니다.

Embedding Python in Multi-Threaded C/C++ Applications

다시 5년이란 시간이 흐른 후 Jun Du가 codeproject에 글을 썼습니다. 첫번째 글인 Embedding Python in C/C++: Part I는 아래와 같은 목적입니다.

This is written for programmers who are more experienced in C/C++ than in Python, the tutorial takes a practical approach and omits all theoretical discussions.
Try to maintain Python’s cross-platform compatibility when writing the embedding code.

두번째 글인 Embedding Python in C/C++: Part II은 다음과 같습니다. TCP/IP와 Shared Memory가 나옵니다.

If you create the thread inside the Python module, place its server code in the Python thread function.
If you create the thread in the C/C++ code, call the Python server code from within the C thread function.

2.
2010년이 넘어서면 글들이 깊어지고 주제도 다양해집니다.

Embedding Python in multi-threaded C++ applications
Concurrency with embedded Python in a multi-threaded C++ application

아래 글은 데이타 처리와 차트로 표현하는 기능을 Python에 맡긴 경우입니다.

Embedding Python in C++: converting C++ vectors to numpy arrays, and plotting C++ vector contents using matplotlib

클리앙 크샤나님이 올린 글도 있습니다. C/C++와의 결합. Embedded python으로 소스까지 올렸습니다.

Download (PDF, 259KB)


Download (PDF, 164KB)


Download (PDF, 187KB)

Python을 내장하는 기본은 같겠지만 2000년과 2014년의 Python이 다르므로 최근 Pyhon의 Manual을 기본으로 확인해야 합니다.

Extending and Embedding the Python Interpreter

3.
우연히 두개의 책을 보았습니다. 첫째는 루마니아 교수가 A Practical Guide for Scientists and Engineers Using Python and C/C++을 목적으로 쓴 Introduction to Numerical Programming입니다.

Download (PDF, 533KB)

다른 하나는 미국 교수가 C개발자를 위해 2014년에 펴낸 자료입니다.

INTRODUCTION TO NUMERICAL ANALYSIS WITH C PROGRAMS

Download (PDF, 1.67MB)

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.