Orientacion c/c++

Iniciado por Pirat3net, 20 Mayo 2011, 17:38 PM

0 Miembros y 1 Visitante están viendo este tema.

ShotgunLogic

#10
Cita de: Queta en 22 Mayo 2011, 11:52 AM
Lo que pasa es que con este libro, creo yo, vas a tener muchos problemas. Si eres estudiante de primer curso y empiezas con las matemáticas pueden enseñarte 2 + 2 o 2 x 4 + 6 - 2 - (2 x 2 x 2), ambos con el mismo resultado pero con procedimientos distintos. Lógicamente, si al alumno se le enseña mediante la segunda opción no se va a enterar de nada, a parte de que es más rápido y sencillo de la primera forma. Este ejemplo se puede aplicar a los lenguajes de programación.

Teóricamente, todos los lenguajes pueden ser compilados o interpretados, pero no te van a enseñar interpretar por ejemplo C/C++ debido a que no te será fácil depurar, juntar archivos (librerías, archivos de cabecera...) entre otras cosas. Lo mismo pasa con .NET y Java.

http://en.wikipedia.org/wiki/Interpreted_language

En cuanto a la duda principal ya se dieron múltiples opiniones y todo queda a gusto del autor.

El libro es un libro de Fundamentos de Computadores, solo que tiene en una hoja de estas de "para saber más" un pequeño resumen de eso, solamente que lo dice un poco por alto, y yo me lo leí y obviamente pensaba que era exactamente así.

Gracias y un saludo!

EDITO: Me he acordado ahora de una cosa. Me habian comentado que Java, cuando se esta ejecutando el programa, va cogiendo el bytecode y lo pasa a lo que es ya ensamblador y todo eso. Es por eso que al principio suelen tardar más en ejecutarse los ejecutables, pero también me habían comentado, y no me acuerdo ahroa respecto a que lenguaje era, que según ibas ejecutando iba pasando partes del código y de esta manera era más dinámico ya que dependiendo de la ejecución lo pasaba de una manera o de otra. ¿Sabéis algo de esto? ¿O es pura patraña? :P
The clans are marching against the law, bagpipers play the tunes of war, death or glory I will find, rebellion on my mind.

D4RIO

CitarTeóricamente, todos los lenguajes pueden ser compilados o interpretados, pero no te van a enseñar interpretar por ejemplo C/C++ debido a que no te será fácil depurar, juntar archivos (librerías, archivos de cabecera...) entre otras cosas. Lo mismo pasa con .NET y Java.
Un lenguaje puede ser interpretado o compilado dependiendo de cómo se haga efectivo su contenido. El lenguaje en sí es sólo el léxico, con su sintáxis y semántica. A lo que se refiere el texto que citas cuando dice que, por ejemplo, C ha sido implementado como lenguaje interpretado, es a que alguien ha escrito un programa que puede leer C y ejecutarlo mediante un intérprete. Eso no significa que C sea un lenguaje interpretado, sino que alguien ha implementado un intérprete.

Se dice que un lenguaje es compilado si se genera código de máquina en una imágen de proceso que el SO carga a memoria para iniciar un proceso nuevo. Se pueden iniciar procesos para programas interpretados, pero la instancia del proceso es la del intérprete, y no la del script o bytecode en cuestión.

C y C++ son DOS lenguajes compilados (lo digo porque me pareció leer que alguien interpretaba que era un solo lenguaje). Los intérpretes que se hicieron son aparte de su uso real.
JAVA es un lenguaje interpretado, porque aún el bytecode necesita del proceso java para funcionar. Una máquina virtual NO deja de ser un proceso, y un intérprete. No importa que sus códigos se parezcan a los de una máquina y que le digan máquina. JAVA NO es una máquina. Es un intérprete.

Saludos
OpenBSDFreeBSD