Foros del Web » Programación para mayores de 30 ;) » Programación General »

¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o actuales?

Estas en el tema de ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o actuales? en el foro de Programación General en Foros del Web. Hola a todos, quiero saber con qué lenguaje de programación se crean los lenguajes que actualmente utilizamos (PHP, JAVA, PHYTON, C, etc). Antes que me ...
  #1 (permalink)  
Antiguo 15/12/2013, 17:23
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o actuales?

Hola a todos, quiero saber con qué lenguaje de programación se crean los lenguajes que actualmente utilizamos (PHP, JAVA, PHYTON, C, etc). Antes que me respondan por favor lean un pequeño extracto de lo que he entendido de mi clase de historia informática, más que todo para que me corrijan en caso esté equivocado o haya captado algo mal.

El código binario está conformado de 0 y 1 (negativo y positivo), y a partir de este se crean todos los sistemas informáticos o plataformas donde se desarrollan los sistemas operativos... como esa codificación (binaria) es muy difícil se hicieron grandes esfuerzos para crear un lenguaje llamado código máquina (que no sólo aceptaba ceros y unos), pero este lenguaje seguía siendo complejo y esclusivamente numérico, así que con el tiempo desarollaron el lenguaje ensamblador, que con ayuda de un compilador hacía posible traducir las palabras del ensamblador al código máquina; este es considerado un lenguaje de bajo nivel... Luego aparecieron, para facilitar más las cosas, los denominados lenguajes de alto nivel, que también necesitaban un compilador para ser traducidos a lenguajes inferiores, y así se dejó de usar el ensamblador, que antes se usaba para crear los sistemas operativos e incluso los primeros juegos, aunque en algunos casos todavía se usa.

Bueno, como les decía, eso es lo que hasta ahora he recepcionado de mi clase de historia informática XD, pero, tengo una duda que me olvidé de consultar y quiero ir más informado a clases así que la voy a exponer aquí:

¿Con qué lenguaje de programación se hacen los lenguajes de programación modernos o actuales?

Basándome en lo que he dicho arriba, y por lógica, deduzco que los lenguajes de programación modernos, como PHP o PYTHON, han sido desarrollados a partir de un programa compilador, que a su vez a sido hecho en código máquina y supongo que el código máquina también está sujeto a un compilador hecho en binario.
Corríjanme si me equivoco por favor, y, no se burlen si algo de lo que he dicho es erróneo XDDD


Supongo que el primer compilador debe haber traducido el código máquina a binario, el segundo debe haber traducido el código ensamblador a el máquina y así sucesivamente ¿no?
  #2 (permalink)  
Antiguo 15/12/2013, 22:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Cita:
Supongo que el primer compilador debe haber traducido el código máquina a binario, el segundo debe haber traducido el código ensamblador a el máquina y así sucesivamente ¿no?
No exactamente, aunque el concepto tiene algunos detalles acertados.
Sigue investigando.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 16/12/2013, 00:09
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Python tiene varias implementaciones, la mas popular esta escrita en c cpython.

Pero, incluso hay una implementación de python hecha en python llamada PyPy.

Te recomiendo leer sobre generaciones de lenguajes de programación.

También sobre como funciona un compilador.

Y creo que estas mezclando binario y lenguaje maquina. Las maquinas solo saben su propio lenguaje maquina, binario es solamente una representación de los datos que nosotros como humanos le damos.
  #4 (permalink)  
Antiguo 17/12/2013, 15:50
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Cita:
Iniciado por razpeitia Ver Mensaje
Python tiene varias implementaciones, la mas popular esta escrita en c cpython.

Pero, incluso hay una implementación de python hecha en python llamada PyPy.

Te recomiendo leer sobre generaciones de lenguajes de programación.

También sobre como funciona un compilador.

Y creo que estas mezclando binario y lenguaje maquina. Las maquinas solo saben su propio lenguaje maquina, binario es solamente una representación de los datos que nosotros como humanos le damos.
AAA o sea que sistema binario y L máquina son lo mismo, es decir lenguaje máquina se le dice al código que reconoce el ordenador, o sea el binario.

Pero... ¿Por qué en Wikipedia hay una foto del código máquina que tiene más números que ceros y unos? es decir, si código máquina y sistema binario son sinónimos entonces ¿por qué esas fotos muestran un código decimal? Creo que estoy confundido, el jueves preguntaré en clase.
  #5 (permalink)  
Antiguo 17/12/2013, 15:54
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No exactamente, aunque el concepto tiene algunos detalles acertados.
Sigue investigando.
Qué gran respuesta
  #6 (permalink)  
Antiguo 17/12/2013, 16:43
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Esa es una representación hexadecimal.


Saludos
__________________
Grupo Telegram Docker en Español

Última edición por Carlangueitor; 17/12/2013 a las 17:14
  #7 (permalink)  
Antiguo 17/12/2013, 17:10
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Hola,

Cita:
Iniciado por eduardobrutaldeath Ver Mensaje
¿Con qué lenguaje de programación se hacen los lenguajes de programación modernos o actuales?
No hay una respuesta genérica a eso, por ejemplo, inicialmente el lenguaje C++ fue creado en C, seguidamente se creó en el mismo C++ el compilador para C++.

Existen diferentes 'implementaciones' de los lenguajes escritos en diferentes lenguages, como mencionaba razpeitia, el lenguaje Python ha sido implementado en C, C++, Python, Java, etc. También PHP está implementado en C, así como en Java. Gran parte del lenguaje Java está escrito en Java.

Por lógica, una vez tienes un lenguaje que genere código objeto, puedes usar el mismo lenguaje para crear el compilador o interprete de ese mismo lenguaje.

Y 'creo' que Microsoft usa su propio unmanaged C++ y MASM para crear .NET.

Cita:
Iniciado por eduardobrutaldeath Ver Mensaje
AAA o sea que sistema binario y L máquina son lo mismo, es decir lenguaje máquina se le dice al código que reconoce el ordenador, o sea el binario.
...
No son lo mismo, el binario es un sistema de numeración, como el decimal. El código máquina es una serie de instrucciones que le dicen al procesador que hacer.

Como sabrás, internamente la computadora solamente trabaja con números, así que un programa de computación a nivel de código máquina está escrito con números, por la arquitectura de las computadoras se optó por la numeración binaria, en contra de la decimal o hexadecimal u otras. Aunque no significa que no se puedan convertir entre diferentes sistemas de numeración.

Las instrucciones del procesador pueden ser, por ejemplo: 0x01a y 0x01b (en hexadecimal), que le dicen al procesador que haga una operación, la operación que tengan asignadas esas instrucciones o códigos numéricos.

Mas adelante se optó por darles un nombre y pasaron a ser PUSHD, INC, RET, IRET, etc., que simplemente se traducían a su representación numérica.

Básicamente lo que hace el compilador del lenguaje máquina es convertir esas instrucciones RET, INC, PUSHD, en su representación numérica 'en binario' para que la entienda el procesador. Lógicamente hay un proceso mucho mas complejo al final.

Saludos,

Última edición por HackmanC; 17/12/2013 a las 17:22
  #8 (permalink)  
Antiguo 18/12/2013, 11:09
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Cita:
Iniciado por HackmanC Ver Mensaje
Básicamente lo que hace el compilador del lenguaje máquina es convertir esas instrucciones RET, INC, PUSHD, en su representación numérica 'en binario' para que la entienda el procesador. Lógicamente hay un proceso mucho mas complejo al final.
Yo dije eso al inicio pero un usuario me confundió XDDD

Unas preguntas más: ¿Qué profesionales están capacitados para hacer compiladores?
O sea por ejemplo si quisiera crear mi lenguaje de programación ¿sería muy difícil?

Al inicio del año voy a estudiar o desarollo de software o computación e informática, si termino una de esas carreras ya tendría un conocimiento aceptable para crear un compilador ¿o tengo que saber ingenería de sistemas, que es algo más completo?

Por favor si sabes, oriéntame sobre qué carrera es mejor de las que te he mencionado, para no equivocarme al elegir

POSDATA: Me gustaría aprender más programación que otra cosa, o sea después de aprender bien PHP mi meta es aprender PYTHON y C
  #9 (permalink)  
Antiguo 18/12/2013, 12:12
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Hola,

Cita:
Iniciado por eduardobrutaldeath Ver Mensaje
Yo dije eso al inicio pero un usuario me confundió XDDD
Lo que sucede es que la terminología es muy compleja, simplemente con escribir el lenguaje maquina es en binario se presta para muchas malas interpretaciones, como que son lo mismo.

Yo solamente quise exponerlo mas claro, aunque un purista en Assembler me podría debatir algunos aspectos, al simplificarlo se presta a ese tipo de confusiones pero es mas fácil comprender el concepto en general. Me imagino que eso fue lo que sucedió realmente con ese usuario.

Cita:
Iniciado por eduardobrutaldeath Ver Mensaje
Unas preguntas más: ¿Qué profesionales están capacitados para hacer compiladores?
O sea por ejemplo si quisiera crear mi lenguaje de programación ¿sería muy difícil?
Depende, si quieres generar código máquina, es decir, el lenguaje numérico basado en el sistema de numeración binario que entienden los procesadores, entonces sí es sumamente complejo. Tendrías que tener un conocimiento profundo de como funciona la computadora internamente. La mejor fuente de información es directamente del sitio de Intel, donde puedes encontrar los 4 libros del x86 y sucesores. Posiblemente, también tienes que conocer muy bien el sistema operativo en el cual va a funcionar el compilador. Depende de muchos factores.

Si el lenguaje es interpretado es más fácil, es casi como hacer cualquier otro programa. O si solamente creas un pre-procesador que convierta de un lenguaje a otro también es mas simple.

Cita:
Iniciado por eduardobrutaldeath Ver Mensaje
Al inicio del año voy a estudiar o desarollo de software o computación e informática, si termino una de esas carreras ya tendría un conocimiento aceptable para crear un compilador ¿o tengo que saber ingenería de sistemas, que es algo más completo? ...
Creo que no te puedo ayudar en ese aspecto, depende del país donde vives y su nivel educativo. Inclusive dentro de los mismos sectores hay diferencias (algunas veces económicas) que influyen directamente sobre los resultados. Esas carreras que mencionas creo que no existen en mi país.

Acá en Guatemala, al terminar la carrera de Ingeniería en Sistemas deberías poder hacer un compilador simple sin mucho problema.

Cita:
Iniciado por eduardobrutaldeath Ver Mensaje
...
POSDATA: Me gustaría aprender más programación que otra cosa, o sea después de aprender bien PHP mi meta es aprender PYTHON y C
Si sabes lenguaje C, el PHP viene casi por añadidura. No sé si sea buen consejo pero yo comenzaría por lenguaje C, así PHP casi ni lo tendría que estudiar, con una leída del manual completo ya estarías casi al 100%. Aunque todavía te haría falta la parte orientada a objetos de PHP.

Saludos,

Última edición por HackmanC; 18/12/2013 a las 12:42 Razón: SO
  #10 (permalink)  
Antiguo 18/12/2013, 13:45
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Cita:
Iniciado por HackmanC Ver Mensaje
Si el lenguaje es interpretado es más fácil, es casi como hacer cualquier otro programa. O si solamente creas un pre-procesador que convierta de un lenguaje a otro también es mas simple.


Si sabes lenguaje C, el PHP viene casi por añadidura. No sé si sea buen consejo pero yo comenzaría por lenguaje C, así PHP casi ni lo tendría que estudiar, con una leída del manual completo ya estarías casi al 100%. Aunque todavía te haría falta la parte orientada a objetos de PHP.
Saludos,
Hola,
Me refería a hacer un lenguaje con ayuda de otro lenguaje
Por ejemplo crear un lenguaje llamado LOQUESEA con código PHP

Y lo de C#, si lo he pensado, ya son muchas las personas que me dicen que C# es el lenguaje padre y que casi todo está hecho en él, Sistemas Operativos, juegos, ect, etc, pero, no estoy seguro todavía porque, actualmente PHP me está dando muchos problemas, tengo nivel básico y no puedo alcanzar el alto, así que me imagino que C# debe ser mucho peor... Supongo que tendré que estudiarlo en un instituto porque por mi cuenta no creo, como dije, con PHP estoy sufriendo, sobre todo porque no hay tutoriales completos y muchos maestros virtuales O No enseñan bien O No saben...
  #11 (permalink)  
Antiguo 18/12/2013, 14:02
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

No confundas C con C++ ni mucho menos con C#.

Saludos
__________________
Grupo Telegram Docker en Español
  #12 (permalink)  
Antiguo 18/12/2013, 15:28
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Cita:
Iniciado por Carlangueitor Ver Mensaje
No confundas C con C++ ni mucho menos con C#.

Saludos
Si sé que C y C++ son diferentes lenguajes pero, no sabía que C# es diferente a C, pensé que eran lo mismo
Y de los 2, entre C y C# ¿Cuál es el mejor? Cuál de esos es el lenguaje del que siempre habla la gente para referirse al monstruo de la programación
Ya me confundiste XD
  #13 (permalink)  
Antiguo 18/12/2013, 16:30
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

C es el padre, C# es el refrito de Microsoft (sin ofender a los presentes ).
__________________
Grupo Telegram Docker en Español
  #14 (permalink)  
Antiguo 18/12/2013, 18:29
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Cita:
Iniciado por Carlangueitor Ver Mensaje
C es el padre, C# es el refrito de Microsoft (sin ofender a los presentes ).
Ya!
C es el bravo entonces
XDD
  #15 (permalink)  
Antiguo 18/12/2013, 21:34
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Hola,

Cita:
Iniciado por eduardobrutaldeath Ver Mensaje
...
Me refería a hacer un lenguaje con ayuda de otro lenguaje
Por ejemplo crear un lenguaje llamado LOQUESEA con código PHP
Por eso mencioné tres casos diferentes, tienes que poner mas atención, quieres que el programa genere código máquina, o quieres que el programa sea 'interpretado' (como php, pero que necesita de php.exe para ejecutar los scripts) o quieres convertir de 'tu' lenguaje a PHP, y que sea PHP el que corra tu programa al final.

Puedes hacer cualquiera de los tres en PHP, pero, en el primer caso tienes que tener un conocimiento muy avanzado de procesadores y sistemas operativos (se puede hacer en PHP porque al fin y al cabo PHP no va a ejecutar el código objeto).

En el segundo caso es medianamente sencillo y el tercero tendría que ser el más fácil. En los dos últimos casos siempre vas a depender de PHP.

La mayoría de lenguajes inicialmente fueron hechos en C.

Saludos,
  #16 (permalink)  
Antiguo 19/12/2013, 01:44
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Cita:
Iniciado por eduardobrutaldeath Ver Mensaje
Al inicio del año voy a estudiar o desarollo de software o computación e informática, si termino una de esas carreras ya tendría un conocimiento aceptable para crear un compilador ¿o tengo que saber ingenería de sistemas, que es algo más completo?
Yo hice dos asignaturas en la carrera para tratar de forma específica la programación de compiladores. No es tan sencillo como parece porque no es una traducción de una palabra a una serie de números. Hay que estudiar teoría de gramáticas y como construir analizadores sintácticos (LL, LR,..) y, por último, teoría de arboles para la construcción del código intermedio (es donde se hacen optimizaciones, etc.).

Si quieres saber como de complejo es el tema, he visto que una asignatura de Compiladores tiene publicado un powerpoint con una pequeña parte del temario. Dale un vistazo y ya nos comentarás como de sencillo o complicado lo ves...

www.cvc.uab.es/shared/teach/a21289/Tema4.ppt‎
__________________
Aviso: No se resuelven dudas por MP!
  #17 (permalink)  
Antiguo 19/12/2013, 01:52
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

En coursera hay una clase de compiladores.

https://www.coursera.org/course/compilers

Hay esta todo lo que necesitas saber. Y si, Ingles es una de esas que necesitas saber.
  #18 (permalink)  
Antiguo 19/12/2013, 12:01
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Hola,

Cita:
Iniciado por Malenko Ver Mensaje
Yo hice dos asignaturas en la carrera para tratar de forma específica la programación de compiladores. ...
Lo normal en la ingeniería.

Cita:
Iniciado por Malenko Ver Mensaje
... No es tan sencillo como parece porque no es una traducción de una palabra a una serie de números. ...
Solo una aclaración, como dije anteriormente, al tratar de simplificar los conceptos para que sean mas comprensibles, se generan muchos malentendidos. No quise entrar en una compleja explicación porque entonces no va a entender ni de que se trata, supongo que explicar que es LR y LL es muy simple, si inicialmente existía la confusión de que el lenguaje máquina y el binario son lo mismo.

Uno de los primeros compiladores de Assembler, (el A86.com), que solamente generaba archivos .com (que ya no se usan), simplemente traducía las instrucciones al operador del x86 correspondiente y agregaba un data segment de 100k. Básicamente cada instrucción correspondía exactamente con su representación numérica.

Por supuesto que no se compara con un lenguaje moderno, en ese caso se necesita un análisis semántico y sintáctico mas complejo y un largo etcetera de conocimientos. Pero eso ya le tocará investigarlo y estudiarlo si ese fuera el caso.

Lo que siempre he apoyado personalmente, es la investigación y desarrollo personal, supongo que los desarrolladores de C K&R, no tuvieron una cátedra de analizadores sintácticos ni semánticos de nada, se las batieron solitos, interpretando el for, el if, etc.

Saludos,

Última edición por HackmanC; 19/12/2013 a las 12:30 Razón: fix
  #19 (permalink)  
Antiguo 20/12/2013, 02:24
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: ¿Con qué lenguaje de progra se crean los lenguajes de progra modernos o ac

Cita:
Iniciado por HackmanC Ver Mensaje
Solo una aclaración, como dije anteriormente, al tratar de simplificar los conceptos para que sean mas comprensibles, se generan muchos malentendidos. No quise entrar en una compleja explicación porque entonces no va a entender ni de que se trata, supongo que explicar que es LR y LL es muy simple, si inicialmente existía la confusión de que el lenguaje máquina y el binario son lo mismo.
La simplificación no iba por ti, iba por el usuario que preguntó. Quería que viera que no es tan sencillo como quizás pueda creer. De ahí que le pasara el powerpoint, o también tiene el curso que ha linkado @razpeitia.

Resumiendo, lo que quería decir es que no es algo trivial, sino que hay que tener unos conocimientos bastante sólidos, tanto de programación como una base de teoría :)
__________________
Aviso: No se resuelven dudas por MP!

Etiquetas: forma, java, lenguaje, lenguajes, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:53.