Nuevo Compilador

Iniciado por Yuki, 29 Mayo 2016, 16:20 PM

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

Yuki

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!

fary

#1
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

Un byte a la izquierda.

MinusFour

#2
¿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.

Yuki

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.

Cita de: MinusFour en 29 Mayo 2016, 22:15 PM
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?.

engel lex

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...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Yuki

Cita de: 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...

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.

MinusFour

#6
Cita de: Yuki en 30 Mayo 2016, 06:02 AM
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).

Yuki

#7
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!

class_OpenGL

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

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL