Curso de Creación de Lenguajes de Programación: Intérpretes

Clases del Curso de Creación de Lenguajes de Programación: Intérpretes

Instruido por:
David Aroesti
David Aroesti
Avanzado
12 horas de contenido
Ver la ruta de aprendizaje
LPP o Lenguaje de Programación Platzi
Proyecto del curso
LPP o Lenguaje de Programación Platzi

Desarrolla el intérprete de un lenguaje de programación completo con enfoque académico para que estudiantes de bachillerato aprendan cómo crear algoritmos y escribir código en español.

Curso de Creación de Lenguajes de Programación: Intérpretes

Curso de Creación de Lenguajes de Programación: Intérpretes

Progreso del curso:0/58contenidos(0%)

Contenido del Curso
Tutoriales de estudiantes
Preguntas de estudiantes

Progreso del curso:0/58contenidos(0%)

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

Material Thumbnail

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

07:36 min

Material Thumbnail

Desarrolla LPP o Lenguaje de Programación Platzi

04:59 min

Construcción del lexer o tokenizador

Material Thumbnail

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

05:36 min

Material Thumbnail

Estructura y definición de tokens en Python

11:53 min

Material Thumbnail

Lectura de caracteres y tokens

15:43 min

Material Thumbnail

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

10:01 min

Material Thumbnail

Reconocimiento y diferenciación entre letras y números

18:57 min

Material Thumbnail

Declaración y ejecución de funciones

07:46 min

Material Thumbnail

Extensión del lexer: condicionales, operaciones y booleanos

12:38 min

Material Thumbnail

Operadores de dos caracteres

12:08 min

Material Thumbnail

Primera versión del REPL con tokens

12:35 min

Construcción del parser o analizador sintáctico

Material Thumbnail

¿Qué es un parser y AST?

05:22 min

Material Thumbnail

Estructura y definición de nodos del AST en Python

09:14 min

Material Thumbnail

Parseo del programa o nodo principal

12:49 min

Material Thumbnail

Parseo de assignment statements

20:21 min

Material Thumbnail

Parseo de let statements

08:26 min

Material Thumbnail

Parseo de errores

11:06 min

Material Thumbnail

Parseo del return statement

12:42 min

Técnicas de parsing y pratt parsing

01:46 min

Material Thumbnail

Implementación del pratt parser

11:47 min

Material Thumbnail

Parseo de Identifiers: testing

13:29 min

Material Thumbnail

Parseo de Identifiers: implementación

16:34 min

Material Thumbnail

Parseo de enteros

14:03 min

Material Thumbnail

Prefix operators: negación y negativos

16:43 min

Material Thumbnail

Infix operators y orden de las operaciones: testing

10:40 min

Material Thumbnail

Infix operators y orden de las operaciones: implementación

20:20 min

Material Thumbnail

Parseo de booleanos

13:00 min

Material Thumbnail

Desafío: testing de infix operators y booleanos

08:39 min

Material Thumbnail

Parseo de expresiones agrupadas

10:16 min

Material Thumbnail

Parseo de condicionales: testing y AST

13:50 min

Material Thumbnail

Parseo de condicionales: implementación

12:05 min

Material Thumbnail

Parseo de declaración de funciones: testing

15:51 min

Material Thumbnail

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

15:43 min

Material Thumbnail

Parseo de llamadas a funciones: testing y AST

13:05 min

Material Thumbnail

Parseo de llamadas a funciones: implementación

12:21 min

Completando los TODOs o pendientes del lexer

Material Thumbnail

Segunda versión del REPL con AST

08:59 min

Evaluación o análisis semántico

Material Thumbnail

Significado de símbolos

03:42 min

Material Thumbnail

Estrategias de evaluación para intérpretes de software

09:18 min

Material Thumbnail

Representación de objetos

14:17 min

Material Thumbnail

Evaluación de expresiones: enteros

19:39 min

Material Thumbnail

Evaluación de expresiones: booleanos y nulos

11:52 min

Material Thumbnail

Evaluación de expresiones: prefix

14:41 min

Material Thumbnail

Evaluación de expresiones: infix

18:07 min

Material Thumbnail

Evaluación de condicionales

13:50 min

Material Thumbnail

Evaluación del return statement

14:42 min

Material Thumbnail

Manejo de errores

21:05 min

Material Thumbnail

Evaluación de funciones

12:26 min

Material Thumbnail

Llamadas a funciones

23:55 min

Mejora del intérprete

Material Thumbnail

Implementación de strings

22:20 min

Material Thumbnail

Operaciones con strings

16:00 min

Material Thumbnail

Built-in functions: objeto y tests

11:54 min

Material Thumbnail

Built-in functions: evaluación

15:27 min

Siguientes pasos

Material Thumbnail

Retos para expandir tu intérprete

05:12 min

Material Thumbnail

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

05:26 min

nuevosmás votadossin responder
Andrés Xavier Vargas Vera
Andrés Xavier Vargas Vera
Estudiante

Influye en algo si yo importo de esta manera:

from lpp.token import Token, TokenType

en lugar de

from lpp.token import (Token, TokenType)

!!!

1
Andrés Xavier Vargas Vera
Andrés Xavier Vargas Vera
Estudiante
Screenshot 2021-06-13 144642.png

A alguien más le pasa esto?

1
Andrés Xavier Vargas Vera
Andrés Xavier Vargas Vera
Estudiante

Los tokens a parte de nombre y valor… pueden tener mas campos? como por ejemplo número de línea y índice en la fila???

1
Fernando Lopez
Fernando Lopez
Estudiante

Tengo un problema y es que al ejecutar el test no me marca todos los errores

1
Oscar Andrango
Oscar Andrango
Estudiante

esta malo el video

1
Jherom Chacon
Jherom Chacon
Estudiante

Alguien sabe Porqué será que necesito la carpeta de las clases (lpp) en los import para correr los tests pero para correr el main py desde python me da error si mantengo la carpeta dónde viven las clases en los import?

0
Omar Jalil Fierro López
Omar Jalil Fierro López
Platzi Team

¿Como funciona un token en lenguajes como PHP?
donde el signo de $ va pegado completamente a la variable, cuenta como un único token?, o el $ es un token y lo que sigue es otro?

0
Fabián Vega Alcota
Fabián Vega Alcota
Estudiante

Probé esto para forzar un error, pero no sucede, no importa el int que coloque los tests pasan, ¿a alguien más le pasa?

1
Andres Camilo Campuzano Osorio
Andres Camilo Campuzano Osorio
Estudiante

Hola, tengo un problema con la versión de Python. Mi sistema (Linux Manjaro) tiene Python 3.9, y por alguna razón no puedo cambiar a 3.8. Sucede que al intentar extender NamedTuple, me marca error. Lo investigué en Github Issues, pero aún no hay solución. Busqué como intercambiar las versiones de Python, pero no da resultado. ¿Hay alguna sugerencia con la que me puedan ayudar? Gracias!

2
Miguel Angel Velazquez Romero
Miguel Angel Velazquez Romero
Estudiante

ya terminé mi lexer, pero antes de pasar al paser quiero implementar el reconocimiento de un ciclo for, pero me está resultando muy confuso tan solo hacer la función del lexer_test y no encuentro info en San Google.

Podrían apoyarme?

0