🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Traductor de C++ a C

#13785
From: Peluco
Date: Fri, 19 Jan 2001 10:52
56 lines
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!nobody
References: <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