La construcción de sentidos en el arte computacional: composición de lenguajes creativos

Taller experimental teórico-práctico – por Karen Palacio

Modalidad on line – 4 encuentros sincrónicos via zoom

Fechas: Anconfirmar en Septiembre

Horario: Horario: 18 a 20 hs (Argentina)

¿Cómo podemos escribir programas que interpretan otros programas? ¿Cómo podemos construir sentidos en la producción de una obra que interactúe íntimamente con el medio computacional? ¿Cuándo un programa “se convierte en” arte? 

A partir de entender al ser humano como expertx en lenguajes naturales y desnaturalizar esos conocimientos, nos acercamos al funcionamiento de los lenguajes de computación  con el objetivo de aprender distintas formas de crear lenguajes de programación de propósito específico que corran en la web, para la creación multimedial y la programación creativa.

El acto de programar es un acto de enunciar. Un lenguaje de programación enmarca el acto de programación -limitando, dirigiendo, dando consignas de cómo se hará la enunciación, determinando qué será fácil de decir y qué será complicado de decir en ese lenguaje.

Partiendo de una visión social de la programación, nos acercaremos a la construcción teórico-práctica con una visión expandida del concepto de lenguaje de programación, entendiendo a un lenguaje como un ecosistema de interacción + herramientas circundantes + editores + costumbres y rituales de interacción. En este taller abrimos el camino para tensionar el potencial latente de significado en los conceptos técnicos, flexibilizando conceptos de las ciencias de la computación, la lingüística, la semiótica y la teoría crítica del arte.

Dinámica propuesta

Al final de cada clase se llevarán proyectos que les pueden servir como punto de inicio para explorar a sus tiempos, y para avanzar el trabajo final – además de ejemplos de diversos grados de complejidad técnica.

El trabajo final de este taller es hacer nuestros propios lenguajes:

  • o bien planteando un conjunto de reglas formales o
  •  en un sentido más amplio, en un sistema creativo, siguiendo los conceptos que vemos en las clases. Es decir, esbozando reglas (informales) que impliquen un abecedario, un conjunto de reglas de formación de palabras y oraciones (gramática) y una semántica.

Nos va a interesar que este lenguaje se pueda usar en un contexto creativo: que sirva para la generación de poemas, o como interfaz para modificar imágenes, o como instrumento musical, o que se involucre de forma comprometida con el concepto de interfaz, etc.

Tecnologías que se explorarán: Javascript. npm. node. Nearleyjs. ToneJs. Hydra. NLPjs. Piet.

Destinatarixs

Artistas visuales, sonoros, poetas, docentes, programadorxs, lingüistas y todas las personas interesadas en desarrollar a través de la práctica intuiciones y una visión profunda acerca de la programación creativa y de la construcción de sentidos a partir de alli.

Conceptos Clave

Semiótica, Arte Multimedia y Digital, Compiladores, Lingüística, Filosofía de la computación, Programación Creativa.

Requerimientos

Se asumen conocimientos previos básicos o experiencias previas de las tecnologías HTML, CSS y JS. No se asumen conocimientos previos de compiladores ni de ciencias de la computación, más allá de saber conceptos básicos de programación (por ej: variables, bucles, librerías, condicionales).

Contenidos

Clase 1
  • Desnaturalizando nuestra expertise en lenguajes (naturales): Las estructuras internas de todo texto. Programar como un acto de comunicación múltiple y transformación bidireccional. Programación como cooperación comunicativa humanx-computadora. Que interpretamos textos implica que podemos intuir cómo una computadora entiende un programa (intro a compiladores). Una implementación naive de un compilador en JS vanilla para implementar un lenguaje creativo simple de dibujo. 
Clase 2
  • Lenguajes formales. Sintaxis – Semántica de un programa – Gramática de un lenguaje. Fases de interpretación de un texto. Backus Naur Form (BNF) paso a paso.  Usando NearleyJS para crear lenguajes + automatizar partes de escritura de compiladores. Análisis del lenguaje Mercury para la programación en vivo de música electrónica. Diseño de lenguajes: DSLs vs Lenguajes de uso general, lenguajes esotéricos, Human-computer interaction (HCI).
Clase 3
  • Vocabulario de compiladores: tokenizer/lexer, parser, AST, semantic analysis, code generator. Lenguajes con análisis semántico usando NearleyJS y mooJS. Un sistema creativo inspirado en poemas, con arquitectura convencional a nivel programático. Diseño de lenguajes: ergonomía, fricción, “dificultad de uso”, tiempos de programación, lenguajes por analogía. Analisis del lenguaje Hydra para la creación de visuales audiorreactivas en tiempo real.
Clase 4
  • La autonomía del arte computacional y la construcción de sentidos. ¿Cómo se mueve el sentido en una obra hecha con computadora? ¿Cuándo un programa “se convierte en” arte? Los textos abiertos y la obra de arte digital. Consecuencias conceptuales de las decisiones de diseño de un lenguaje de programación. Compartimos nuestros trabajos!
Valores del taller 
Residentes en Argentina:
AR$ 16800  
Exterior:
 USD 85 (PayPal)

Karen Palacio es una live coder, programadora y artista digital de Córdoba Capital, Argentina. Es diplomada en Ciencias de Datos del FaMAFyC, estudia la Lic en Ciencias de la Computación en el FaMAFyC y trabaja como A.I. Software Architect en una empresa de Software de Córdoba Capital. Como live coder de visuales ha hecho performances de improvisación de código en Cosquín, encuentros de noise, conferencias de tecnología, museos, y fiestas electrónicas -entre otros lugares- llegando a programar hasta 5 horas seguidas en vivo.