Si eres programador o ya tienes experiencia con los lenguajes de programación sabrás que existen muchísimos hoy en día, cada uno con sus fortalezas y debilidades, su sintaxis y peculiaridades.
Quizás hayas pensado en que un lenguaje sería mejor con cierta cualidad o tal vez pensaste en resolver un tipo de problema, pero las herramientas que tenías no se acoplaban lo suficiente a lo que necesitabas. Para ello una solución que encontré fue crear mi propio lenguaje de programación. Aquí te contaré cómo lo hice. 😉
Una de las principales cualidades de un lenguaje de programación es el paradigma al que pertenece. Existen dos clasificaciones principales de ellos: imperativos y declarativos. Por ejemplo:
- Programación procedimental
- Programación orientada a objetos o POO
- Programación funcional
- Programación lógica
Dentro de cada uno de estos paradigmas podemos encontrar varios lenguajes, como:
También existen los lenguajes multiparadigma, lenguajes en los que puedes programar en múltiples paradigmas o mezclando varios. Algunos ejemplos son:
Para crear un nuevo lenguaje debes tomar en cuenta cómo el computador entenderá tu lenguaje. Puede hacerse con intérpretes o compiladores.
A grandes rasgos, los lenguajes compilados son aquellos que se traducen a un lenguaje máquina para que el computador pueda entenderlo desde un archivo ejecutable. En cambio, los lenguajes interpretados se leen instrucción por instrucción y se ejecutan paso a paso conforme se leen.
Luego de eso también se debe pensar en su sintaxis y semántica.
Si quieres saber más de la maquina abstracta te recomiendo el
Curso de Historia de la Programación: Lenguajes y Paradigmas
Deberás buscar que tu lenguaje sea fácil y claro de entender, según su propósito.
Una vez que pensé en los puntos anteriores fue que comencé mi propio lenguaje de programación al ver el Curso de Introducción al Desarrollo de Lenguajes de Programación y el Curso de Creación Lenguajes de Programación: Intérpretes.
Decidí que sería un lenguaje interpretado para seguir con el curso. Además que es una de las formas más simples de comenzar con un lenguaje. En un comienzo no tenia un problema claro que resolver, sino que lo veía más como un reto y ambicioso proyecto.
Citando a mi profesor de lenguajes de programación:
“Hacer un lenguaje de programación es mitad diseñarlo y hacerlo bien y la otra mitad es community management”.
Mi lenguaje lo llamé SigmaF porque quería que fuese funcional, ya que yo estaba muy emocionado de haber conocido Haskell y para que sonara lo más matemático posible.
Elegí una letra griega que me gustara y quedara bien, en un nombre sucedido por la letra F por funcional. Y así es como nació el concepto de SigmaF.
Otro detalle importante es cómo los demás interactúan con tu lenguaje, es decir, cómo está construido. En mi caso yo usé Python 3.8 y TDD (Test-driven development) para su desarrollo, lo que agiliza la implementación de nuevas cualidades y permite anticiparte a los problemas o bugs que se puedan presentar.
Para comenzar a utilizar SigmaF en la terminal de tu computador ejecuta:
git clone git@github.com:FabianVegaA/sigmaF.git
Crea un entorno virtual con Python e instala los requirements. Puedes ver la guía completa en el repositorio oficial en GitHub de SigmaF, donde también puedes contribuir al lenguaje.
En este momento el propósito de SigmaF es ser un puente entre el paradigma funcional y el paradigma imperativo, ya que la mayoría no suelen ser tan fáciles de aprender, especialmente si te has acostumbrado a programar imperativamente. Por ello quiero que este sea un lenguaje fácil de aprender para cualquier programador, y los que no lo son aún, siendo la puerta para otros lenguajes funcionales.
Espero que con todo esto te animes a crear tu propio lenguaje o a apoyar otros en desarrollo. Ya tienes varias herramientas a tu disposición, para profundizar en ellas toma el Curso de Introducción al Desarrollo de Lenguajes de Programación y cuéntame aquí en comentarios cómo será tu lenguaje. 💪
Carai! Gran proyecto, Fabián! 😄
Grandioso trabajo
Excelente trabajo Fabián!
Bravo Fabian !!!
fantástico trabajo!!!
BIen Fabian!
Espero poder seguir tus pasos , muchas felicidades :3
Increíble, espero poder ver tu proyecto 😉
¡Maravilloso trabajo felicitaciones!
Muy buen proyecto 😉!
Recién estoy comenzando en este amplio rubro y la verdad, es que leer este artículo me ha instruido bastante y me ha aportado a tener más claridad de lo que he elegido aprender.
¡Buenísimo!
Excelente Aporte Fabian.