68

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

44201Puntos

hace 3 años

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.

Seguro vas a leer:

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. 🤓🚀

Aprende sobre lenguajes de programación y únete a una startup

Si sueñas con formar parte de una empresa que te permita descubrir algo nuevo cada día y superar retos inimaginables, tu lugar de trabajo ideal es una startup. ¿La buena noticia? ¡En Platzi te convertimos en un talento #StartupReady!

Vincularte a una empresa de este tipo es más sencillo de lo que piensas, solo debes prepararte con base en 3 pilares: conocimiento técnico, habilidades blandas e inglés. Una vez hayas desarrollado estas capacidades, estarás listo o lista para transformar el mundo de la mano de una startup.

👉🏽Para acompañarte a cumplir tus sueños, en Platzi puedes:

  • Adquirir conocimientos técnicos en lenguajes de programación: descubre cuáles son las características de los lenguajes de programación más relevantes y aprende cómo desarrollar los tuyos para dar los primeros pasos en el mundo de computer science.
  • Mejorartus habilidades blandas: desde aprender a gestionar tu tiempo hasta generar estrategias para desbloquear tu creatividad: cuando adquieras y pongas en práctica tus habilidades blandas, estarás preparado o preparada para formar parte del ecosistema startup.

📝En nuestra Escuela de Habilidades Blandas encontrarás todas las herramientas necesarias para desarrollar tu perfil personal y profesional.

  • Importancia de aprender inglés: ¡los límites están en tu mente! Gracias al teletrabajo, hoy puedes emplearte en startups de todo el mundo. Eso sí, para lograrlo, debes saber inglés.

🤓¡No te preocupes si piensas que el inglés no es lo tuyo! Con Platzi English Academy podrás empezar desde cero o fortalecer las habilidades que ya has adquirido a lo largo de tu carrera profesional.

Miguel
Miguel
datormx

44201Puntos

hace 3 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
11
17424Puntos

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
5839Puntos
3 años

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

5
5835Puntos

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

4
44201Puntos
3 años

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

3
3104Puntos

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
13093Puntos
3 años

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…

3
13800Puntos

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
70055Puntos

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
44201Puntos
3 años

¿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. 🤓

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?

2
5839Puntos

Excelente post. en verdad que me encanto.

2

Fascinante, gracias por este increíble aporte.

1
69312Puntos

Interpretes: Programa que analiza y ejecuta el código fuente, toma un código, lo traduce y lo ejecutahasta llegar a la última instrucción del programa. siempre y cuando no se produzca un error en el proceso.
Proceso del interprete:

  • Programa fuente.

  • Intérprete

  • Código abierto.


Compiladores: Programa informático que traduce el programa escrito a código fuente. Generando un programa en código objeto o ejecutable.
Código objeto: Se le agregan las librerias a traves de un programa llamado linker y se obtiene un código ejecutable.

En Lenguaje C el compilador lee el programa y lo convierte a código objeto. El cpdigo objeto es lo ejecutado por la computadora. El compilador incorpora una biblioteca estándar que proporciona las funciones estandar necesarios para llevar a cabo las tareas más usuales.


Fases de compilación

  1. Creación del código fuente.
  2. Compilación del programa.
  3. Enlace del programa con las funcions necesarias de biblioteca.

Fases de compilación alternativa

  1. Programa fuente.
  2. Compilador
  3. Código objeto.
  4. Librería.
  5. Código ejecutbale.
1
69312Puntos

Forzosamente se tiene que desarrollar un lenguaje de programación en ingles, porque yo he imaginado un lneguaje en español para enseñar a nostros los hispanohablantes a programar.

Aunque eso no quiere decir que no entienda la importancia de aprender ingles.

1
4Puntos

#Primer progrma en Paython
print (“CAPACITACION DE TICS”)
print (“PROGRAMACION”)
print (" MI PRIMER PROGRAMA EN PYTHON")
nombre = input ( “YOSMARA JAQUELINE”)
apellidos = input (“GONZALEZ RAMON”)
plantel = input (" plantel:21 ")
print ( YOSMARA JAQUELINE GONAZALEZ RAMON)
PRINT (plantel 21)

<code>
0

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

0
44201Puntos
3 años

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). 🤓