<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://pleiad.cl/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://pleiad.cl/feed.php">
        <title>PLEIAD teaching:cc4101:tareas:2025-1:tarea2</title>
        <description></description>
        <link>http://pleiad.cl/</link>
        <image rdf:resource="http://pleiad.cl/lib/tpl/pleiad2/images/favicon.ico" />
       <dc:date>2026-04-28T06:32:30+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte0"/>
                <rdf:li rdf:resource="http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte1"/>
                <rdf:li rdf:resource="http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte2"/>
                <rdf:li rdf:resource="http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte3"/>
                <rdf:li rdf:resource="http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte4"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://pleiad.cl/lib/tpl/pleiad2/images/favicon.ico">
        <title>PLEIAD</title>
        <link>http://pleiad.cl/</link>
        <url>http://pleiad.cl/lib/tpl/pleiad2/images/favicon.ico</url>
    </image>
    <item rdf:about="http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte0">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-11T19:30:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>teaching:cc4101:tareas:2025-1:tarea2:parte0</title>
        <link>http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte0</link>
        <description>&lt;&lt; Volver

Los lenguajes SL y CL

Muchos lenguajes de programación se implementan mediante transformación (o compilación) a lenguajes intermedios de más bajo nivel. 
Así mismo, en esta tarea, hay dos lenguajes: SL (Surface Language) y CL (Core Language).</description>
    </item>
    <item rdf:about="http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte1">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-14T16:44:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>teaching:cc4101:tareas:2025-1:tarea2:parte1</title>
        <link>http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte1</link>
        <description>&lt;&lt; Volver

Parte 1. Testing de efectos (2 ptos.)

En esta sección van a implementar un mecanismo para hacer tests sobre efectos secundarios, en particular, sobre la impresión de caracteres (printing). La necesidad de testear efectos secundarios es muy recurrente en proyectos reales, existiendo distintas técnicas para abordarlo (p.ej. usando</description>
    </item>
    <item rdf:about="http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte2">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-10T16:09:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>teaching:cc4101:tareas:2025-1:tarea2:parte2</title>
        <link>http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte2</link>
        <description>&lt;&lt; Volver

Parte 2. Memoización (2 ptos.)

En esta sección van a extender el lenguaje CL con un mecanismo de memoización. La memoización es una técnica de optimización que permite evaluar más rápidamente llamadas a funciones. Una función memoizada tiene asociada una estructura (p.ej. tabla de hash) donde se van guardando los argumentos con que se ha aplicado la función y el resultado de evaluar la función con esos argumentos. Luego, si se realiza una nueva aplicación con el mismo argumento, bast…</description>
    </item>
    <item rdf:about="http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte3">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-14T17:03:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>teaching:cc4101:tareas:2025-1:tarea2:parte3</title>
        <link>http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte3</link>
        <description>&lt;&lt; Volver

Parte 3. Estrategias de evaluación (2 ptos.)

En esta sección van a extender el lenguaje SL para que se pueda especificar la estrategia de evaluación de cada argumento si es necesario, ya sea con semántica call-by-need o call-by-name. 

La extensión de SL consiste en agregar</description>
    </item>
    <item rdf:about="http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte4">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-28T19:45:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>teaching:cc4101:tareas:2025-1:tarea2:parte4</title>
        <link>http://pleiad.cl/teaching/cc4101/tareas/2025-1/tarea2/parte4</link>
        <description>&lt;&lt; Volver
opcional

Parte 4. Estrategias de evaluación parte 2

Motivación

En la parte anterior definimos la función compatible? tal que solo ignora los modificadores en top level, es decir, si al recibir el mtype ignora su modificador, pero los tipos subyacentes los compara por igualdad.</description>
    </item>
</rdf:RDF>
