Introducción al desarrollo de intérpretes y lenguajes de programación

1

Aprende a desarrollar lenguajes de programación con intérpretes

2

Desarrolla LPP o Lenguaje de Programación Platzi

Construcción del lexer o tokenizador

3

¿Qué es análisis léxico? Funcionamiento del lexer y tokens

4

Estructura y definición de tokens en Python

5

Lectura de caracteres y tokens

6

Tokens ilegales, operadores de un solo carácter y delimitadores

7

Reconocimiento y diferenciación entre letras y números

8

Declaración y ejecución de funciones

9

Extensión del lexer: condicionales, operaciones y booleanos

10

Operadores de dos caracteres

11

Primera versión del REPL con tokens

Construcción del parser o analizador sintáctico

12

¿Qué es un parser y AST?

13

Estructura y definición de nodos del AST en Python

14

Parseo del programa o nodo principal

15

Parseo de assignment statements

16

Parseo de let statements

17

Parseo de errores

18

Parseo del return statement

19

Técnicas de parsing y pratt parsing

20

Pruebas del AST

21

Implementación del pratt parser

22

Parseo de Identifiers: testing

23

Parseo de Identifiers: implementación

24

Parseo de enteros

25

Prefix operators: negación y negativos

26

Infix operators y orden de las operaciones: testing

27

Infix operators y orden de las operaciones: implementación

28

Parseo de booleanos

29

Desafío: testing de infix operators y booleanos

30

Parseo de expresiones agrupadas

31

Parseo de condicionales: testing y AST

32

Parseo de condicionales: implementación

33

Parseo de declaración de funciones: testing

34

Parseo de declaración de funciones: AST e implementación

35

Parseo de llamadas a funciones: testing y AST

36

Parseo de llamadas a funciones: implementación

37

Completando los TODOs o pendientes del lexer

38

Segunda versión del REPL con AST

Evaluación o análisis semántico

39

Significado de símbolos

40

Estrategias de evaluación para intérpretes de software

41

Representación de objetos

42

Evaluación de expresiones: enteros

43

Evaluación de expresiones: booleanos y nulos

44

Evaluación de expresiones: prefix

45

Evaluación de expresiones: infix

46

Evaluación de condicionales

47

Evaluación del return statement

48

Manejo de errores

49

Ambiente

50

Bindings

51

Evaluación de funciones

52

Llamadas a funciones

Mejora del intérprete

53

Implementación de strings

54

Operaciones con strings

55

Built-in functions: objeto y tests

56

Built-in functions: evaluación

Siguientes pasos

57

Retos para expandir tu intérprete

58

Continúa con el Curso de Creación de Compiladores de Software

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Continúa con el Curso de Creación de Compiladores de Software

58/58
Recursos

Aportes 11

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Genial!!! Me encantó mucho este curso, le dediqué horas a cada clase solo para aprender bien los conceptos y profundizarlos, siento que este curso es una de las joyitas de Platzi, y por supuesto que hay que nutrir el lenguaje! Me encanta la idea de hacer un lenguaje del cual digan: “Ohh este lenguaje es latinoamericano!”
.
Muy probablemente haga muchos pull requests al repositorio original proponiendo nuevas funcionalidades al lenguaje, este curso ha valido mucho la pena 💚

Lua es un lenguaje de programación creado en la universidad de Rio de Janeiro en Brazil!

Este curso fue simplemente magistral. Muchas gracias y muchas felicidades a Platzi por este gran logro, de verdad, me encanta.
Espero que este solo haya sido el comienzo de algo increíble. 😂

El mejor curso de Platzi hasta el momento sin duda. Espero con ansias el curso de compiladores.

Simplemente genial el curso! de los mejores que e tomado en platzi hace que valga totalmente la pena la suscripción. gracias a todo lo que aprendí pude extender el lenguaje agregándole ciclos, mas operadores, arrays, diccionarios, métodos a los objetos etc. aquí les dejo el link del repositorio por si le quieren echar un vistazo o contribuir Aura

Estoy muy de acuerdo con mis compañeros, este ha sido uno de los mejores cursos de Platzi que he tomado, y estoy muy orgulloso de lo que logre gracias a esto, tal vez ya lo vieron antes, pero aquí les dejo nuevamente a mi creación SigmaF. Si tienen ganas de darle un vistazo, o de poder colaborar para hacerlo aún más grande estaría encantado, así que aquí les dejo mi repositorio 😉

https://github.com/FabianVegaA/sigmaF/tree/dev

Puedo decir con total seguridad que este no es solo uno de los mejores cursos de Platzi, sino el mejor
Gracias a él pude pasar la materia más difícil de mi carrera en la universidad: Compiladores
Nos pidieron hacer algo parecido a esto pero usando Java, así que en este curso no solo aprendí a hacer un intérprete, sino que también aprendí Python y llevé mi manejo de Java al siguiente nivel

Gracias David, te mereces lo mejor

Me gusto mucho este curso, considero es que es muy completo y convirtió la caja negra de como están hechos los lenguajes de programación en una caja blanca o por lo menos en una caja gris mucho mas clara que el negro.
Lo que me parece chimbo es que ya ha pasado mas de una año desde que se publico este curso y por lo menos en el github no se vea mucha actividad y que oye yo me metí a este curso por que me acordaba del momento en el que se estreno, no tenia una suscripción activa así que no lo pude ver hasta ahora, y creo que al curso le falta mas visibilidad para atraer mas gente que de verdad esta bastante bueno y es una lastima que no haya llegado a mas gente

David, simplemente epico

Muy buen curso, no, que bueno, !Estuvo genial! Es tan interesante ver como los lenguajes funcionan por dentro y como puedes hacer uno tu mismo. Me encantó mucho y espero que el de compiladores esté igual de bueno o mejor 😉

Estaba indagando por internet sobre la creación de compiladores e interpretes ya que este curso me dejó con ganas de saber más de ellos. Y encontré esto. Que básicamente es para hacer un lenguaje de scripting con java y dice que en una parte del libro lo hace con c también o algo así jaja. Está en ingles, pero como sé que todos aquí habrán aprobado la escuela de ingles aquí en platzi sé que no será un problema. Además con los conocimientos adquiridos en este curso será bastante fácil entender todo lo que vayan a decir aquí 😉