Para crear un lenguaje de programación principalmente necesitas:
Entender que estos lenguajes sirven para resolver problemas donde necesitamos instrucciones precisas y exactas.
Conocer el legado de otros y tomar su ejemplo.
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.
¿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:
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.
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.
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. 🤓🚀
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:
📝En nuestra Escuela de Habilidades Blandas encontrarás todas las herramientas necesarias para desarrollar tu perfil personal y profesional.
🤓¡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.
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.
Muy buena descripción gráfica colega. Gracias por compartir con nosotros esa información, 😉
Crear un lenguaje de programación ha de ser una tarea sumamente compleja y tardada pero creo que vale la pena.
Seguro que valdrá la pena. Y para guiarte en esta aventura tendremos estos increíbles cursos. 🤩✨💪
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.
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…
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.
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!
¿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. 🤓
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?
Es una carrera o solo es un curso?
Al final se desarrolla un lenguaje?
Hola, Carlos. 😄
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). 🤓
Buen texto
Excelente post. en verdad que me encanto.
Fascinante, gracias por este increíble aporte.
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
Fases de compilación alternativa
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.
#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>
¿Es un curso totalmente aparte o forma parte de alguna escuela?
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). 🤓