elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  De quien deriva C++?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: De quien deriva C++?  (Leído 6,982 veces)
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
De quien deriva C++?
« en: 6 Diciembre 2011, 22:44 pm »

hola! :D
me hice esa pregunta...
de quien deriva el lenguaje C/C++ ? pues porque pensando si fuera de ASM... como es que un programa de C++ es
portable y se puede ejecutar en cualquier computadora... y ASM se programa para un tipo de microprocesador...
¿?


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: De quien deriva C++?
« Respuesta #1 en: 6 Diciembre 2011, 23:43 pm »

http://en.wikipedia.org/wiki/C%2B%2B
http://en.wikipedia.org/wiki/C_%28programming_language%29

GIYF.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: De quien deriva C++?
« Respuesta #2 en: 7 Diciembre 2011, 02:33 am »

estoy algo cansado de leer x3 y mas en ingles :P pero gracias EI :) me lo leere mas tarde

Citar
GIYF.
:xD
En línea

farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Re: De quien deriva C++?
« Respuesta #3 en: 7 Diciembre 2011, 02:59 am »

Deriva de B, pero esta programado desde 0. Es portable porque se han hecho compiladores de C para cada arquitectura y como es compatible, se puede compilar en cualquiera. El backend de C es ASM. (cada compilador hay que programarlo desde 0, pues son arquitecturas diferentes)
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: De quien deriva C++?
« Respuesta #4 en: 7 Diciembre 2011, 03:09 am »

pues si eso me puse a pensar, que C debe tener varios compiladores para distintas arquitecturas, pero eso es a la hora del compilado y a la hora la ejecucion... si se compilo con uno de esos tantos compiladores que tiene C entonces seria lo mismo
porque los programas de C se ejecutan en todas las PCs no tendria porque tener varios compiladores para diferentes arquitecturas

y usa cosa... si es de otro lenguaje de alto nivel ( por lo que veo acerca de B ) ese lenguaje de quien deriva? :xD
osea todo deriva del lenguaje maquina... y el mas cercano es asm... osea todos derivan al final de asm...? :xD
pero entonces si fuese asi como es que el propio asm no es portable y sus derivaciones si :P
En línea

farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Re: De quien deriva C++?
« Respuesta #5 en: 7 Diciembre 2011, 03:26 am »

El proceso de compilado significa pasar de un lenguaje más comprensible para nosotros a lenguaje binario. Por lo tanto, cuando tu compilas, solo compilas para una arquitectura. Si quieres ejecutar en otra arquitectura, necesitas compilarlo otra vez en el compilador adecuado para tal arquitectura. Es portable porque no tienes que reescribir el código otra vez, solo compilarlo (a veces tienes que cambiar ciertas cosas, pero generalmente, poco).

Te confundes un poco con lo de derivado. C viene INFLUENCIADO de B, pero está reescrito otra vez. Yo si quiero puedo crear un lenguaje ahora mismo que no derive de ningún otro. Influenciado quiere decir que tiene ideas del lenguaje B pero no está copiado. Se usa el ensamblador para programarlo. El ensamblador no deriva del lenguaje máquina, ES EL LENGUAJE MÁQUINA. Solo que de modo que lo podamos entender. Si el procesador entiende 0001 1001 1010 0010, y para el procesador esto quiere decir sumar, nosotros representamos estos unos y zeros con una palabra, como por ejemplo, ADD. Y el ensamblador, cuando tu escribes la palabra ADD lo pasa a los zeros y unos.

El ensamblador no es portable porque cada procesador entiende los unos y zeros de distinto modo. 0001 1001 1010 0010 puede ser entendido por un procesador de la arquitectura x86 como ADD, pero por uno de la arquitectura ARM como MUL (multiplicar), por ejemplo. Cada compilador de C lo pasa a un ensamblador distinto, uno para cada arquitectura distinta, y este ensamblador, a la vez, lo convierte en binario.

Si tu compilases un programa en C para arquitectura x86, el compilador lo pasaría a ensamblador y, este, a binario. Entonces, el procesador x86 lo entendería. Pero si este programa lo ejecutaras en ARM, el código binario de antes no lo entendería, ya que los zeros y unos son entendidos de diferente manera.  0001 1001 1010 0010 lo puede entender de otro modo y no funcionaría (de hecho, es un ejemplo, ni tan solo es así, solo para que te hagas una idea.

Un abrazo!
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: De quien deriva C++?
« Respuesta #6 en: 7 Diciembre 2011, 03:38 am »

:D
bueno como dices tu que al compilar un programa de C este se "convierte"....
bien lo de ARM no se la verdad acerca de eso... me imagino que asi es como dices tu... eso significa que nisiquiera el lenguaje C
es portable 100% en cualquier maquina...
y mas que todo a lo portable me referia más a que un programa en ensamblador para arquitectura x86 no puede ser ejecutado
en un procesador 8086... en cambio un programa de C si, no...
En línea

farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Re: De quien deriva C++?
« Respuesta #7 en: 7 Diciembre 2011, 04:01 am »

Un procesador 8086 es un x86. Es lo mismo, solo que un poco mas antiguo. Todo programa es portado si tiene compilador para tal arquitectura. Java es portable porque han hecho un compilador para todas las arquitecturas. Si ahora yo me invento una arquitectura, nada me va a funcionar, lo tengo que crear yo. Un compilador de C, un ensamblador...
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: De quien deriva C++?
« Respuesta #8 en: 7 Diciembre 2011, 04:12 am »

perdon me referia a la arquitectura 80386,80486,pentium, superiores.
un programa hecho en ensamblador para esas arquitecturas no "corre" en un 8086 :P
en cambio un programa de C/C++ si puede correr en todas esas arquitecturas :P
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: De quien deriva C++?
« Respuesta #9 en: 7 Diciembre 2011, 10:43 am »

Tenes que RECOMPILAR para que un programa en C/C++ corra en diferentes plataformas, ahi esta la diferencia, en assembly tenes que escribirlo de nuevo con el juego de instrucciones y los detalles del microprocesador ...

PD. Y no, un mismo binario de C/C++ de 32 bits no corre ni en pedo en un 8086.

PD2. Java es portable por tener una MAQUINA VIRTUAL en cada plataforma, el binario es uno solo, no hay que recompilar.
« Última modificación: 7 Diciembre 2011, 10:49 am por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines