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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Como hacer un lenguaje de programación?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como hacer un lenguaje de programación?  (Leído 5,080 veces)
n1sen

Desconectado Desconectado

Mensajes: 122



Ver Perfil
Como hacer un lenguaje de programación?
« en: 21 Octubre 2017, 00:41 am »

Aveces me pregunto como hacer un lenguaje de programación, he visto paginas, nada me aclara, siempre veo que dicen "busca un lenguaje que se paresca al que quieres crear". Una vez intente hacer un interprete en Python, funcionaba, pero era muy básico, el código era ineficiente y mal programado, pero funcionaba!, aunque le faltaba lo mas básico, las variables, lo cual me genero muchos problemas...
El lenguaje que estaba programado tenia una """sintaxis""" igual a Python y Ruby.
De paso les dejo una muestra del lenguaje que estaba haciendo:
Código:
~Este es un comentario
putsln "Hola"
add "5" "5" ~Suma 5 mas 5 y lo muestra en pantalla



En línea

null
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Como hacer un lenguaje de programación?
« Respuesta #1 en: 21 Octubre 2017, 14:28 pm »

Un lenguaje al final es poco más que un parser, la forma de la cual guardas el código en memoria y la forma de "ejecutarlo" (que puede ser interpretarlo a mmento, generar bytecode, compilarlo...).

Para las variables, pues bueno. Depende. Una forma fácil sería tener un mapeado clave-valor donde la clave sea el nombre de la variable y el valor sea la información de esta (tipo, valor, y lo que sea).
En caso de un lenguaje estructurado, habría que tener un map en cada contexto (local, global, namespace, clase...) (Dependiendo del lenguaje, desde luego).

En fin, depende totalmente del lenguaje, paradigma que quieras seguir, etc. Un lenguaje ensamblador, por ejemplo, es realmente sencillo. Su parser es prácticamente trivial y su ejecución lo mismo.
Un lenguaje orientado a objetos como Java o C++, pues ya hay que andar con clases, funciones, imports... El parser se complica ya que, por ejemplo, en un ensamblador solo te vas a encontrar en el código unos operadores que tú has definido. Sin embargo, en Java, vas a encontrarte también cosas definidas por el programador, como nombres de clases, funciones...

Así que antes de nada, ¿qué es lo que tienes en mente?


En línea

n1sen

Desconectado Desconectado

Mensajes: 122



Ver Perfil
Re: Como hacer un lenguaje de programación?
« Respuesta #2 en: 21 Octubre 2017, 15:42 pm »

Un lenguaje de tipado dinámico, interpretado (pues para hacerlo compilado lo veo algo dificil), orientado a objetos, un poco de programación funcional.
Así que seria un lenguaje multiparadigma.
En línea

null
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Como hacer un lenguaje de programación?
« Respuesta #3 en: 21 Octubre 2017, 17:54 pm »

Si realmente vas a ponerte a hacerlo, lo primero es que tengas claro qué va a ser y cómo va a ser xD
Sintaxis y posibilidades.
En línea

n1sen

Desconectado Desconectado

Mensajes: 122



Ver Perfil
Re: Como hacer un lenguaje de programación?
« Respuesta #4 en: 21 Octubre 2017, 18:22 pm »

Una sintaxis simple, como Python y Ruby
En línea

null
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Como hacer un lenguaje de programación?
« Respuesta #5 en: 21 Octubre 2017, 21:50 pm »

Pues nada, empieza a ello. Empieza definiendo <exactamente> la sintaxis que tendrá tu lenguaje: Cómo declarar variables, cómo declarar funciones (si se las vas a meter), cómo hacer bucles, condicionales... También, qué tipos de variables tendrá.

En fin, si tienes alguna duda más concreta, puedes preguntar.
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: Como hacer un lenguaje de programación?
« Respuesta #6 en: 23 Octubre 2017, 14:29 pm »

Una sintaxis simple, como Python y Ruby
Cuando uno decide crear un lenguaje nuevo, tiene la oportunidad dorada, de decidir como ha de ser su lenguaje y desterrar del mismo las tonterías que encuentra en otros lenguajes y añadir lo que cree que falta.

Si al final encuentras que tales lenguajes no contienen tonterías sobrantes, ni les falta nada, entonces es una pérdida de tiempo, pretender hacer un lenguaje prácticamente idéntico a uno ya "existonto"... Si es meramente por practicar, haz lo que muchos crea un lenguaje simple para una calculadora, sigue siendo un ejercicio, pero sin la pérdida considerable de tiempo y esfuerzo (como el que lleva un lenguaje complejo y completo).

Te recomiendo encarecidamente que te leas la notación BNF
Esto puede ilustrarte bastante:
https://tools.ietf.org/html/rfc5511  RBNF
https://www.ietf.org/rfc/rfc2234.txt ABNF
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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