# Miércoles 2023/03/01

# Summary

Last week with Israel. Extending Mocking, Compiler runtime support, Comma operator, IDs, print, assignment, reserved words, lexical ambiguities, The Art of Language Design, Scope Analysisis, Transforming the AST

# Entrega de Prácticas

DANGER

  1. No olviden subir el zip de entrega de la práctica al campus virtual
  2. Cambios en el Plan Docente inicial: El profesor Casiano Rodríguez pasa a encargarse de las prácticas a partir de la próxima semana

# Extendiendo la calculadora

Queremos extender nuestra calculadora para que soporte operaciones de coma, identificadores, asignación y print de manera que podamos hacer algo como esto:

➜  calc2js-solution git:(develop) ✗ cat test/data/input/test-id.calc 
a = 4+i, 
b = 2-2i, 
print(a*b)

➜  calc2js-solution git:(develop) ✗ bin/calc2js.mjs  test/data/input/test-id.calc    
#!/usr/bin/env node
const Complex = require("/Users/casianorodriguezleon/campus-virtual/2223/pl2223/practicas/drafts/calc2js-solution/src/complex.js");  
const print = x => { console.log(x); return x; };
let $a, $b;
($a = Complex("4").add(Complex("i")), $b = Complex("2").sub(Complex("2i"))), print($a.mul($b));
➜  calc2js-solution git:(develop) ✗ bin/calc2js.mjs  test/data/input/test-id.calc | node -
{ re: 10, im: -6 }
1
2
3
4
5
6
7
8
9
10
11
12
13

En esta clase hablamos de:

  • Introduciendo el operador de coma
  • Identificadores
  • Expresiones de asignación
  • print: tratamiento de las palabras reservadas
  • Tratamiento de los números complejos: ambiguedad del + y como resolverla a nivel léxico
  • El arte de diseñar un lenguaje

# AST types

Prácticas en curso:

# Temas relacionados

# Video

Last Updated: 3 months ago