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

Desarrolla LPP o Lenguaje de Programaci贸n Platzi

2/58
Recursos

Aportes 8

Preguntas 1

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

JavaScript + Python = Lenguaje de Programaci贸n Platzi
.
El profesor eligi贸 una excelente combinaci贸n! Solo para refrescar:
.

  • Lexer: Se encarga de analizar toda la parte l茅xica de nuestro c贸digo humano.
  • **Parser: ** Es el analizador sint谩ctico de nuestro c贸digo, es decir, se encarga de verificar que la sint谩xis est茅 bien escrita.
  • Abstract Syntax Tree: AST, Es una representaci贸n en forma de objeto que se suele hacer para analizar las partes del c贸digo, puedes ver un ejemplo aqu铆: https://astexplorer.net/
  • **Evaluado: ** Se encargar谩 de tomar el AST y evaluar sus elementos
  • REPL: Read-Eval-Print-Loop, es b谩icamente la consola interactiva del lenguaje de programaci贸n, esa misma que usamos con Python en el curso b谩sico de Python 馃憖
Para mi que no conozco mucho de programaci贸n, el hecho de que est茅 en espa帽ol, ya es una ayuda o almenos comprendemos mejor la programaci贸n

Platzi me sorprende cada vez m谩s.
Jam谩s imagin茅 un lenguaje de programaci贸n en espa帽ol, 茅ste curso vale oro!
Siempre superando mis expectativas.
Ahora s铆, atentos a los inminentes magnates de Latin Am茅rica!

Keywords: Palabras clave del lenguaje. Son palabras que el lenguaje utiliza para describir lo que se quiere hacer.
En javascript se utilizan var, let para las variables. Mientras que se usa function para definir una funci贸n.

var text = 'Este texto puede cambiar'

function sum(a, b) {
  return a + b;
}


Lo m谩s interesante viene cuando puedes hacer un JIT (Just In Time). Permite que el lenguaje funcione casi a rendimiento nativo debido a que se basa en ejecutar instrucciones de procesador cuando se tiene un bloque de c贸digo procesado. Es la raz贸n por la que Javascript corre tan r谩pido en el navegador web.

Referencia: https://en.wikipedia.org/wiki/Just-in-time_compilation

JIT tambi茅n es usado en maquinas virtuales o emuladores para mejorar el rendimiento y la experencia del usuario. Caso de estudio LuaJIT https://luajit.org/luajit.html.

Solo he hecho un poco de python, java y js, espero integrar aspectos que a煤n no he logrado cachar. Aqu铆 estoy dispuesta a aprender.

Excelente

No me gusto la parte de que sea en espanol, pero bueno, la logica es la misma sin importar el idioma