57

Cómo empezar a crear un lenguaje de programación

28861Puntos

hace 4 meses

Curso de Introducción al Desarrollo de Lenguajes de Programación
Curso de Introducción al Desarrollo de Lenguajes de Programación

Curso de Introducción al Desarrollo de Lenguajes de Programación

Descubre el funcionamiento interno de los intérpretes y compiladores de software. Aprende las características de los lenguajes de programación más importantes y sus tipos. Desarrolla lenguajes de programación para dar tus primeros pasos en el mundo de computer science con tu profesor David Aroesti.

Para crear un lenguaje de programación principalmente necesitas:

  1. Entender que estos lenguajes sirven para resolver problemas donde necesitamos instrucciones precisas y exactas.

  2. Conocer el legado de otros y tomar su ejemplo.

  3. Aprender cómo funcionan los lenguajes por dentro usando intérpretes y compiladores.

Todos estos elementos a simple vista pueden parecer no tan claros y conllevan una serie de conceptos e ideas por detrás. Veamos uno a uno de qué tratan para que lo entiendas mejor.

Resolver problemas con instrucciones precisas y exactas

¿Cómo podemos definir instrucciones precisas y exactas? Recuerda las instrucciones para resolver un cubo Rubik, debes girar las caras en direcciones delimitadas hasta tenerlas todas de un mismo color. Las instrucciones de un lenguaje de programación no son tan diferentes, todas están delimitadas a funcionar, bajo ciertas condiciones, hasta obtener un resultado.

Entonces, cuando tengamos un problema que se pueda resolver con ese tipo de instrucciones, puede entrar en acción un lenguaje de programación. Por eso es que esos problemas son tu punto de partida y la razón para crear uno.

A consecuencia de eso vemos que cada lenguaje fue creado por alguna razón o propósito específico. Este acercamiento ha llevado a tener lenguajes que resuelven cálculos estadísticos como R, o para desarrollo web como JavaScript, o que incluso nos ayudaron a procesar lenguaje natural como PROLOG.

Recordar a los grandes lenguajes

Hemos conocido varios lenguajes de programación gracias a nuestra experiencia como programadoras y programadores. Si alguna vez te preguntaste por qué hay tantos y por qué tienen bastantes cosas en común, déjame decirte que vas por buen camino para crear uno.

Es importante recordar todas esas similitudes que hemos encontrado en ellos. En su mayoría, los lenguajes han recibido influencias de otros del pasado y, prácticamente, sería imposible crear algo completamente nuevo y no tomarlos en cuenta.

Dentro la historia de los lenguajes podemos recordar a Cobol, creado por Grace Hopper, uno de los más antiguos que siguen en uso. También a C, de Dennis Ritchie, que actualmente sigue teniendo influencia muy fuerte en muchos otros. Por último, no podemos olvidar a Python, creado por Guido van Rossum, cuyo acercamiento fue escribir código lo más entendible posible para humanos.

Hasta ahora los lenguajes que hemos recordado son solo un puñado de ellos. Imagina agregar el tuyo a todo el universo de lenguajes de programación y posicionarte junto a estos míticos creadores y creadoras. Pero antes deberás meterte en su núcleo y entender su funcionamiento interno.

Cómo funcionan: intérpretes y compiladores

Seguramente has escuchado que existen lenguajes de programación que son compilados y otros que son interpretados. Eso se debe a que los compiladores e intérpretes son las herramientas principales que se utilizan al crear un lenguaje de programación. Son la base de su funcionamiento y estas son sus principales diferencias:

  • Un intérprete lee código en el lenguaje de programación y lo evalúa para ejecutarlo al momento. Cada vez que necesites ejecutar el programa tendrás que pasar el código por el intérprete.

  • Un compilador, por el contrario, recibe el código en el lenguaje y lo traduce a código máquina para poder ejecutarlo cuando sea necesario, sin tener que pasar nuevamente por todo el proceso.

En consecuencia, esas diferencias le dan ventajas y desventajas tanto a intérpretes como a compiladores. Es gracias a ellas que grandes lenguajes han decidido optar por alguno o por una aproximación de ambos. Dependiendo de lo que quieras lograr con tu lenguaje deberás escoger. Piensa cuál podrías utilizar tomando en cuenta los tipos de problemas que quieres resolver.

Comienza tu entrenamiento para crear lenguajes de programación

Ahora que ya conoces los problemas que se resuelven con un lenguaje de programación, que reconoces la importancia del pasado de otros lenguajes y cómo es que funcionan por dentro, es momento de comenzar a crear el tuyo para resolver los nuevos problemas a los que te enfrentas.

Es por ello que en Platzi hemos preparado una serie de cursos para acompañarte en este camino. Empieza ahora con el Curso de Introducción al Desarrollo de Lenguajes de Programación. Profundizarás en la historia de los lenguajes más importantes y sus tipos, en el funcionamiento de intérpretes y compiladores, y cuáles son los principios y recomendaciones fundamentales para que tu lenguaje sea exitoso. 🤓🚀

Curso de Introducción al Desarrollo de Lenguajes de Programación
Curso de Introducción al Desarrollo de Lenguajes de Programación

Curso de Introducción al Desarrollo de Lenguajes de Programación

Descubre el funcionamiento interno de los intérpretes y compiladores de software. Aprende las características de los lenguajes de programación más importantes y sus tipos. Desarrolla lenguajes de programación para dar tus primeros pasos en el mundo de computer science con tu profesor David Aroesti.
Miguel
Miguel
datormx

28861Puntos

hace 4 meses

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
8
5961Puntos

En la universidad vi un poco de esto en la materia compiladores. Donde explicaban desde los Analizadores léxico, sintáctico y semántico, hasta las generaciones de código. Utilizamos para esto librerías como lex y yacc fue una gran experiencia. Dejo aquí una imagen para los que quieran Investigar un poco.

fases de un compilador.png
3
2758Puntos
4 meses

Muy buena descripción gráfica colega. Gracias por compartir con nosotros esa información, 😉

5
4343Puntos

Crear un lenguaje de programación ha de ser una tarea sumamente compleja y tardada pero creo que vale la pena.

4
28861Puntos
4 meses

Seguro que valdrá la pena. Y para guiarte en esta aventura tendremos estos increíbles cursos. 🤩✨💪

3
4117Puntos

Wow. Jamás pensé llegar a tener acceso a este tipo de conocimiento, es increible poder tener acceso a ello aquí, cada vez vale más la pena la suscripción.

3
8541Puntos

Excelente post, voy a hacer el curso. Dudo ponerme a crear un lenguaje de programación ya que para esto se requiere de un propósito, ingenieros y un equipo completo pero si que me interesa saber más sobre cómo funciona la programación en sí. Gracias!

3
28861Puntos
4 meses

¿Sabías que varios lenguajes de programación fueron diseñados por una sola persona? Después evolucionaron a lo que son hoy gracias a equipos y a la comunidad. 😄

En el curso podrías encontrar ese propósito, ese tipo de problema a resolver y aprender mejor cómo funcionan los lenguajes por dentro. 🤓

3
2045Puntos

Muy buen aporte, puedo comentarte que he tenido la oportunidad de ser catedrático de una universidad en Guatemala y compartir mi conocimiento en el curso de compiladores, y una aspecto faltante muy importante que he evidenciado en los estudiantes es la falta de imaginación. La escritura de un compilador a mi parecer nace de una necesidad, ejemplifiquemos Python, su necesidad básica es que sea fácil.
La necesidad de tener algo mejor debe de impulsar nuestra imaginación hasta obtener lo que deseamos.

2
5276Puntos
4 meses

Solo que en el caso de python no seria un compilador, si no, un interprete… y bueno en estos cursos veo que la necesidad subyacente es la de comprender como se elabora un lenguaje de programación, que aspectos hay que tomar en cuenta, entre otros. Quizás la aplicación real de estos conocimientos no pase mas allá de nuestro entorno local, pero muchos estaremos en la capacidad de apoyar con la mejora de los lenguajes de programación ya existentes…

2
2758Puntos

Excelente post. en verdad que me encanto.

2

Fascinante, gracias por este increíble aporte.

2

Una duda que siempre he tenido, ¿Cómo le hacen las páginas web como HackerRank, FreedCodingCamp, Codecademy y demás, (hasta la versión de Docker en línea) para poder cargar todo un interprete en un servicio web?

0

¿Es un curso totalmente aparte o forma parte de alguna escuela?

0
28861Puntos
4 meses

Hola, Alfredo. 😄

Es una saga de varios cursos. El primero es el Curso de Introducción al Desarrollo de Lenguajes de Programación donde comenzarás a idear qué tipo de lenguaje necesitas crear.

Después sigue el Curso de Creación de Lenguajes de Programación: Intérpretes donde se crea el Lenguaje de Programación Platzi (LPP). 🤓