🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #8932

Re: qué es un binding?

#8932
From: David Asorey Álvarez
Date: Fri, 20 Sep 2002 08:25
77 lines
3694 bytes
Jose Antonio <pepehd@hotmail.com> wrote in message news:<20020919201420.5b5518bc.pepehd@hotmail.com>...
> On 19 Sep 2002 09:33:31 -0700
> forodejazz@yahoo.es (David Asorey �lvarez) wrote:
> 
> > Python con Gtk, haciendo referencias continuamente a un fichero que se
> > llama _gtk.pyd
> >    Este �ltimo archivo es binario, y es, a grandes rasgos, una
> > librer�a "compilada" que es la que realmente enlaza Python y Gtk.
> 
> Ese archivo binario �es ejecutable? por la "d" del final tiene toda la
> pinta de ser un demonio, y de ser as� entonces ser�a m�s o menos como lo
> ten�a pensado, es decir, dos ejecutables creados por separado que se
> comunican a traves del api proporcionada por gtk.py.
> 

  Como dice Lepton, que termine en "d" no significa nada. Es una
librer�a binaria sin m�s, no ejecutable.
  Usando terminolog�a "g�indous" (pido excusas por anticipado por
ponerlo como ejemplo siendo �sto un grupo sobre GNU/Linux) es como si
fuera una "dll", que no son ejecutables.
  De hecho, en la versi�n para "g�indous" de Python, hay m�dulos que
son "dll"s:


      Python 2.2.1 (#34, Apr  9 2002, 19:34:33) [MSC 32 bit (Intel)]
on win32
      Type "copyright", "credits" or "license" for more information.
      IDLE 0.8 -- press F1 for help
      >>> import libsip
      >>> dir(libsip)
      ['__doc__', '__file__', '__name__']
      >>> 
     
      (El libsip �ste concretamente es parte del "binding" pyQt y el
fichero es libsip.dll)


  Pues en Linux igual, hay m�dulos que son binarios y otros son c�digo
Python, �stos enlazan o hacen llamadas a los binarios:

#Trozo de c�digo del "binding" pyQt.
#Fichero qt.py
#.....

    import libqtc

    libqtc.sipInitModule(__name__)

    class Qt:
	def __init__(self,*args):
		libqtc.sipCallCtor(195,self,args)

    class QObject(Qt):
	def __init__(self,*args):
		libqtc.sipCallCtor(187,self,args)
#.... y sigue...

Como ves, en este trozo de c�digo se importa un m�dulo (libqtc.pyd)
que es binario. Este m�dulo est� escrito en C++, se ha compilado, es
una librer�a (no se si est�tica o din�mica, -- ando pez en C/C++ --) y
Python hace llamadas a funciones definidas en ella. L�gicamente para
compilar esta librer�a habr�n necesitado los archivos de cabecera (los
#include) tanto de Python como de Qt.

Con otros lenguajes de programaci�n ser� parecido el asunto de los
"binding".

> Muchas gracias, ya tengo algo m�s claro como va esto.

Me alegro :)

Un saludo.
David.

P.S.: Como dec�a antes, siento haber puesto ejemplos de "g�indous" en
ecol, pero ahora mismo no tengo a mano mi estupendo Debian Woody en mi
super P166 ;-)
Technical Details
Message-ID: <1759581e.0209200025.7b6215fd@posting.google.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!postnews1.google.com!not-for-mail
References: <1032367452.232669@seux119> <1759581e.0209190833.45cf5c5@posting.google.com> <20020919201420.5b5518bc.pepehd@hotmail.com>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,fd4852bf862a7ea
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2002-09-20 01:25:04 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!postnews1.google.com!not-for-mail
From: forodejazz@yahoo.es (David Asorey Álvarez)
Newsgroups: es.comp.os.linux.programacion
Subject: Re: qué  es un binding?
Date: 20 Sep 2002 01:25:03 -0700
Organization: http://groups.google.com/
Lines: 77
Message-ID: <1759581e.0209200025.7b6215fd@posting.google.com>
References: <1032367452.232669@seux119> <1759581e.0209190833.45cf5c5@posting.google.com> <20020919201420.5b5518bc.pepehd@hotmail.com>
NNTP-Posting-Host: 195.235.255.227
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: posting.google.com 1032510304 8599 127.0.0.1 (20 Sep 2002 08:25:04 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: 20 Sep 2002 08:25:04 GMT