Article View: es.comp.os.linux.programacion
Article #13785Re: Traductor de C++ a C
From: Peluco
Date: Fri, 19 Jan 2001 10:52
Date: Fri, 19 Jan 2001 10:52
56 lines
3454 bytes
3454 bytes
Santiago Romero escribi�: > > El Thu, 18 Jan 2001 13:29:27 +0100, Peluco escribi�: > > > > Hola. > > > >�Conoc�is alg�n programa que me permita convertir c�digo en C++ a algo > >compilable con un compilador est�ndar de C? > > Anda, no sab�a que eso exist�a... > �En qu� lo convierte, en structs y funciones a las que se le pasan > las estructuras? (this=estructura). Si te fijas en las entradas a funciones que hay en un fichero objeto creado a partir de C++ ver�s que son simples entradas a funciones normales como las creadas con C o ensamblador u otra cosa, pero que llevan en el nombre un prefijo que indica a qu� clase pertenecen, de que tipo son las funciones y de que tipo son los par�metros (el famoso name-mangling). Pues algo as� hacen los traductores estos. De cada m�todo de una clase crean una funci�n con un prefijo como el anterior para que sea �nica aunque utilices la sobrecarga y si la funci�n no es static lleva como primer argumento el puntero a this, que en realidad es una estructura de datos que contiene a todas las propiedades de la clase. Para los m�todos virtuales crea en la estructura una tabla de punteros a funciones que simula a la 'tabla virtual' de una clase. M�s o menos es esto. Por supuesto al c�digo generado por este traductor no hay dios que le meta mano, pero te permite trabajar en C++ con un compilador de C. Cuando lo us� para los Amiga el �nico problema que daba es que a veces los errores de compilaci�n no los detectaba en la fase de traducci�n, los detectaba cuando compilabas el C generado, y buscar de donde viene el error en el c�digo C++ era una tarea algo complicada (pero se le cog�a el truquillo, como a todo). > > Curioso trabajo el tuyo (lidiar con C++, y con micros :P) Je je, pero lo que m�s me gusta es mi pr�xima lidia: el pr�ximo sistema empotrado dise�ado en mi departamento (basado en un micro DragonBall de Motorola) va a tener como sistema operativo a Linux (bueno, una versi�n adaptada del n�cleo ucLinux). > Mira, el randsig me vuelve a sacar una firma apropiada XD > > - -- > "Hola, soy el nuevo Pentium 5 �qu�? �2+2? f�cil, 3.9999999999" -- reset > - - > / NoP / Compiler | compiler@escomposlinux.org - ICQ #98602813 \ > \ Linux Debian 2.2 | http://escomposlinux.org/sromero - #74.821 / > -- Peluco pelukoARROBAyahooPUNTOcom pelukoATyahooDOTcom
Technical Details
Message-ID:
<3A681C78.6604085D@algo.es>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-xit-04!supernews.com!xfer13.netnews.com!netnews.com!newsfeed.icl.net!news.tele.dk!134.222.94.5!npeer.kpnqwest.net!news!antoniodrak.labdes.emu!nobodyReferences:
<3A66E1A7.65E703F1@algo.es> <asc749.8d.ln@127.0.0.1>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,3a3941748ff58a34 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2001-01-19 03:22:26 PST Message-ID: <3A681C78.6604085D@algo.es> Date: Fri, 19 Jan 2001 11:52:40 +0100 From: Peluco <alguno@algo.es> Organization: H.A.M.P.A. X-Mailer: Mozilla 4.75 [es] (X11; U; Linux 2.2.17-21mdk i686) X-Accept-Language: es-ES, en MIME-Version: 1.0 Newsgroups: es.comp.os.linux.programacion Subject: Re: Traductor de C++ a C References: <3A66E1A7.65E703F1@algo.es> <asc749.8d.ln@127.0.0.1> Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit NNTP-Posting-Host: 212.166.157.74 X-Original-NNTP-Posting-Host: 212.166.157.74 X-Trace: 19 Jan 2001 12:22:24 +0100, 212.166.157.74 Lines: 56 Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-xit-04!supernews.com!xfer13.netnews.com!netnews.com!newsfeed.icl.net!news.tele.dk!134.222.94.5!npeer.kpnqwest.net!news!antoniodrak.labdes.emu!nobody