Foro de elhacker.net

Foros Generales => Foro Libre => Mensaje iniciado por: Yuki en 29 Mayo 2016, 16:20 pm



Título: Nuevo Compilador
Publicado por: Yuki en 29 Mayo 2016, 16:20 pm
Bueno, les traigo una muestra de mi compilador, lo he estado programando estos ultimos meses y la verdad es que ha sido todo un desafio, nunca pense que iba a ser tan complejo y exajerado, pero con mucho esfuerzo he podido desarrollarlo hasta el punto de poder compartirlo con ustedes.

Antes de que lo prueben, les informo que los bugs estan GARANTIZADOS, asi que no me insulten demasiado.

Les dejo el enlace de descarga, pido disculpas si esto no se debe hacer en esta sección.

http://www.mediafire.com/download/f5xsd5mmymxf5o9/%5BBinario%5D_Compilado.zip

El comprimido contiene información y un código de ejemplo.

Espero criticas constructivas, sugerencias y recomendaciones.

Saludos!


Título: Re: Nuevo Compilador
Publicado por: fary en 29 Mayo 2016, 17:43 pm
No entiendo como debo compilar el código de ejemplo, ¿podrías describirlo con un poco mas de detalle?

saludos.

EDITO: Ya lo he conseguido... esta interesante el proyecto... lo seguiré sin duda alguna :P



Título: Re: Nuevo Compilador
Publicado por: MinusFour en 29 Mayo 2016, 22:15 pm
¿Es un compilador de que lenguaje? ¿Es un lenguaje que tu diseñaste? ¿También veo que incluiste un archivo "FASM.exe", acaso este es el compilador FASM?

No he visto nada del código, pero me imagino que lo que haces es hacer la traducción de tu lenguaje a ASM y luego compilarlo con FASM.


Título: Re: Nuevo Compilador
Publicado por: Yuki en 30 Mayo 2016, 06:02 am
fary, espero tus criticas sobre el código ensambladora generado, lo podes ver usando /asm, trate de hacerlo lo mas compacto y practico posible, aunque se que se puede mejorar mas.

MinisFour, es un lenguaje que efectivamente, yo estoy diseñando.

No he visto nada del código, pero me imagino que lo que haces es hacer la traducción de tu lenguaje a ASM y luego compilarlo con FASM.

Exactamente. ¿No funcionan todos los lenguajes de esa manera?.


Título: Re: Nuevo Compilador
Publicado por: engel lex en 30 Mayo 2016, 06:18 am
no de manera tan simple (traducción directa),  algunos buscan la forma mas eficiente de la compilación (donde un código quede traducido a menos operaciones posibles),  otros buscan el código compilado mas seguro,  otras el menor consumo de recursos... y asi...


Título: Re: Nuevo Compilador
Publicado por: Yuki en 30 Mayo 2016, 09:31 am
no de manera tan simple (traducción directa),  algunos buscan la forma mas eficiente de la compilación (donde un código quede traducido a menos operaciones posibles),  otros buscan el código compilado mas seguro,  otras el menor consumo de recursos... y asi...

No te diria que el compilador cree código tan directo, añadí funciones que permiten minimisar el código ensamblador generado.

Si te refieres a que otros lenguajes usan (como por ejemplo) archivos objeto (.obj,.a,.o) pues no, el compilador no tiene complejidad en ese sentido, ya que lo que yo quiero es que sea lo mas simple posible.

Me quede traumado con C, cuando queria llamar a timeGetTime API y me lanzaba un error de referencia a dicha api, desde ahi decidí que si hacia un compilador algún dia, jamás iba a depender de archivos objetos externos.


Título: Re: Nuevo Compilador
Publicado por: MinusFour en 30 Mayo 2016, 17:34 pm
Exactamente. ¿No funcionan todos los lenguajes de esa manera?.

No es una característica precisa del lenguaje sino de los compiladores, no todos hacen esto, pero algunos sí. Por ejemplo el backend de GCC es un compilador de ASM.

https://en.wikipedia.org/wiki/GNU_Assembler

No hay nada de malo en ello la verdad, me parecio raro tener dos ejecutables, compiladores separados. Por cierto, sería buena idea que pusieras el código fuente (o es acaso el .inc?) y no solo los ejecutables (especialmente en un foro como este).


Título: Re: Nuevo Compilador
Publicado por: Yuki en 31 Mayo 2016, 18:39 pm
MinisFour entiendo, yo lo hice de esta manera debido a que seria imposible para mi encontrar una manera de crear un compilador que genere un archivo ejecutable directamente, ademas queria aprovechar las caracteristicas del compilador FASM.

agradezco a todos por sus comentarios, actualmente sigo trabajando en este compilador (añadí punteros y re-programe el analizis de variables y procedimientos), si esto se convierte en algo mas grande necesitaria un nombre para este programa ¿alguna idea?

Editado:
MinisFour dudo mucho que libere el código fuente original, talvez algún dia re-haga el compilador de cero y lo libere, el código es un desastre.

Si tienen sus dudas sobre los componentes del archivo, son totalmente libres de subirlo a VirusTotal.

Saludos!


Título: Re: Nuevo Compilador
Publicado por: class_OpenGL en 13 Junio 2016, 06:44 am
El primer lenguaje en español. ¡YUJU! No sé que tan óptimo será el lenguaje y/o el compilador, pero ya de por sí hacer un compilador está muy bien ;).

Un consejo:
* Veo que en el código usas la 'ñ'. La 'ñ' no está en la codificación ASCII, entonces si guardas el código fuente en una codificación que el compilador no espera, puede que tengas errores. Lo mismo pasa con las vocales acentuadas