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. 😉

¿Qué tomar en cuenta antes de empezar?
Paradigma
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:
- Imperativos:
- Programación procedimental
- Programación orientada a objetos o POO
- Declarativo:
- Programación funcional
- Programación lógica
Dentro de cada uno de estos paradigmas podemos encontrar varios lenguajes, como:
- C (imperativo, procedimental).
- Java (imperativo, POO).
- Haskell (declarativo, funcional).
- Prolog (declarativo, lógico).
También existen los lenguajes multiparadigma, lenguajes en los que puedes programar en múltiples paradigmas o mezclando varios. Algunos ejemplos son:
- Python
- JavaScript
- Julia
Interpretado o compilado
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.

Sintaxis y semántica
Luego de eso también se debe pensar en su sintaxis y semántica.
- Sintaxis: se define como las reglas que verifican si el conjunto de símbolos de un programa está bien escrito o no.
- Semántica: es cómo el computador entiende el programa cuando lo ejecutamos. Para ello postula una máquina abstracta con las reglas de ejecución de un programa.
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.
¿Y ahora cómo empiezo a crear mi lenguaje? 🤔
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.
No te olvides de los detalles
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.

Dale un propósito 🙌
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.
Ahora te toca a ti crear tu lenguaje
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. 💪
Curso de Introducción al Desarrollo de Lenguajes de Programación