SIP (software)
Encyclopedia
SIP is an open source software tool used to connect computer program
Computer program
A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...

s or libraries written in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 or C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 with the scripting language
Scripting language
A scripting language, script language, or extension language is a programming language that allows control of one or more applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the...

 Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

. It is a concurrent of SWIG
SWIG
SWIG is an open source software tool used to connect computer programs or libraries written in C or C++ with scripting languages such as Lua, Perl, PHP, Python, R, Ruby, Tcl, and other languages like C#, Java, Modula-3, Objective Caml, Octave, and Scheme...

.

SIP was originally developed in 1998 for PyQt
PyQt
PyQt is a Python binding of the cross-platform GUI toolkit Qt. It is one of the alternatives for GUI programming in Python to Tkinter, which is bundled with Python. Other popular alternatives are PySide, PyGTK, and wxPython. Like Qt, PyQt is free software. PyQt is implemented as a Python...

 — the Python bindings for the Qt GUI toolkit — but is suitable for generating bindings for any C or C++ library.

Concept

SIP takes a set of specification (.sip) files describing the API and generates the required C++ code. This is then compiled to produce the Python extension modules. A .sip file is basically the class header file with some things removed (because SIP doesn't include a full C++ parser) and some things added (because C++ doesn't always provide enough information about how the API works).

Notable applications that use SIP

  • PyQt
    PyQt
    PyQt is a Python binding of the cross-platform GUI toolkit Qt. It is one of the alternatives for GUI programming in Python to Tkinter, which is bundled with Python. Other popular alternatives are PySide, PyGTK, and wxPython. Like Qt, PyQt is free software. PyQt is implemented as a Python...

    , a python port of the application framework and widget toolkit Qt
    QT
    - Units and measurements :* Quart, a measure of volume in traditional systems of units* Quarter, a unit of mass in Imperial units, equal to 2 stones or a quarter of a long hundredweight; one quarter = 12.70058636 kg* QT interval, a measurement used in cardiology...

  • QtiPlot
    QtiPlot
    QtiPlot is a platform-independent open-source cross-platform computer program for interactive scientific graphing and data analysis. It is similar to the proprietary programs Origin or SigmaPlot, and is being used to substitute these in universities ....

    , a computer program to analyze and visualize scientific data
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK