Diretrizes para a programação OULIPIANA

Back to top

1) O que é OULIPO?

OULIPO, acrónimo de "Ouvroir de Littérature Potentielle" (Oficina de Literatura Potencial), é um movimento literário francês. Baseia-se na ideia de que a aplicação de restrições específicas pode atuar como catalisador da criatividade na literatura.

O movimento foi fundado em 1960 pelo escritor Raymond Queneau e pelo matemático François Le Lionnais. Surgiu como um subgrupo de um grupo de vanguarda mais amplo, o Collège de 'Pataphysique, que se dedicava à exploração da 'patafísica - a ciência das soluções imaginárias e das leis que regem as excepções.

Back to top

2) Personalidades proeminentes em OULIPO

François Le Lionnais: Matemático cuja visão foi fundamental para forjar a identidade única da OULIPO, onde os conceitos matemáticos se entrelaçavam com a criação literária. Le Lionnais defendeu o uso de restrições estruturadas na literatura, acreditando que essas limitações poderiam abrir novos domínios de criatividade. A sua influência estendeu-se para além da formação do grupo; inspirou uma geração de escritores a explorar a rica interação entre as estruturas matemáticas e a expressão literária. O legado de Le Lionnais reflecte-se na exploração contínua da OULIPO das fronteiras entre a ciência e a arte.

Raymond Queneau: Celebrado pela sua sagacidade e talento criativo, Queneau foi um romancista e poeta. Ele é mais conhecido por "Exercícios de Estilo", um trabalho único em que ele narra uma única história de 99 maneiras diferentes, mostrando uma notável variedade de abordagens estilísticas.

Georges Perec: Perec ganhou aclamação por seu romance "La Disparition" (conhecido em inglês como "A Void"), um trabalho distinto que omite completamente a letra 'e'. Este romance é um excelente exemplo da ênfase do OULIPO nas restrições linguísticas e no jogo de palavras criativo.

Jacques Roubaud: Matemático e poeta, o trabalho de Roubaud caracteriza-se por uma fusão única de estruturas matemáticas e formas poéticas. As suas contribuições para o OULIPO demonstram um profundo envolvimento com o potencial das restrições matemáticas para melhorar a expressão literária.

Outros membros notáveis incluem Italo Calvino, Marcel Duchamp e Harry Mathews.

Back to top

3) Entender as restrições

Tipos de restrições

  • Lipogramas: Escrita que exclui uma ou mais letras. A obra "La Disparition" de Perec é um exemplo famoso, omitindo a letra 'e'.
  • Palíndromos: Textos que se lêem da mesma forma de trás para a frente.
  • Método N+7: Processo em que cada substantivo de um texto é substituído pelo sétimo substantivo que o segue num dicionário. Isso muitas vezes leva a resultados surpreendentes e caprichosos.
  • Bola de neve: Uma forma poética em que cada linha é uma única palavra, e cada palavra sucessiva tem uma letra a mais. Isto cria um efeito de "bola de neve" à medida que o poema progride.
  • Univocalismo: Trata-se de escrever um texto que usa apenas uma vogal, enquanto todas as outras letras do alfabeto podem ser usadas normalmente. Esta restrição testa a capacidade do escritor de usar a linguagem de forma criativa, respeitando uma limitação severa.
  • Tautogramas: Nesta restrição, todas as palavras de um texto devem começar com a mesma letra. Isso pode ser aplicado a uma única frase, um parágrafo ou uma obra inteira.
  • Bouts-rimés: Originário de um jogo literário francês, envolve a criação de um poema a partir de um determinado conjunto de rimas finais em uma ordem prescrita. O desafio consiste em criar um poema coerente e com sentido, respeitando essas restrições de rima.
  • Constrição do Prisioneiro (ou Constrição de Macau): Trata-se de escrever textos em que certas letras são "aprisionadas" dentro de palavras e não podem aparecer sozinhas. Por exemplo, a letra "e" só pode ser usada dentro de uma palavra, nunca como primeira ou última letra.
  • Lábio fora da lei: Semelhante a um lipograma, esta restrição envolve evitar o uso de uma ou mais letras do alfabeto, mas com uma regra adicional de que as letras proibidas podem aparecer no texto, desde que não sejam vistas. Isto significa que podem ser escondidas dentro de outras palavras ou disfarçadas de alguma forma.
  • S + 7: Esta é uma variação do método N+7, em que não só os substantivos, mas qualquer palavra de uma determinada classe gramatical (como verbos ou adjectivos) é substituída pela sétima palavra a seguir num dicionário.
  • Tradução Homossintáctica: Trata-se de traduzir um texto para outra língua, mas mantendo a estrutura sintáctica do original. O resultado muitas vezes destaca as caraterísticas gramaticais e sintáticas únicas de cada língua.
  • Permutação: Trata-se de criar um texto que pode ser lido de várias maneiras através do rearranjo de palavras ou frases. Isto pode envolver anagramas, acrósticos ou outras formas de reorganizar os elementos constituintes de um texto.
Back to top

4) Programação no Modo OULIPIano

As técnicas OULIPIanas podem ser uma ferramenta poderosa para fins educativos, oferecendo formas únicas de envolver a linguagem e o pensamento computacional. As técnicas OULIPianas que se seguem descrevem vários exercícios de programação inspirados no OULIPO, cada um com o seu próprio aspeto educativo. Estes exercícios foram concebidos não só para ensinar conceitos fundamentais de programação, mas também para encorajar o pensamento criativo dentro de restrições, reflectindo a filosofia OULIPO.

  1. Implementação de arranhões: Crie um programa que permita a introdução de um texto. Use um script para analisar cada palavra e remover qualquer palavra que contenha a letra proibida (como 'e').
  2. Aspeto Educacional: Este pode ser um ótimo exercício para compreender a manipulação de strings e condicionais. A manipulação de cadeias de caracteres implica a modificação e extração de informação do texto, ensinando os alunos a transformar um texto longo em palavras individuais, a processá-las independentemente e a concatenar cadeias de caracteres para formar um novo texto. Os condicionais, enquanto construções de programação, permitem aos alunos tomar decisões com base em condições específicas, envolvendo a utilização de instruções "se" para verificar a existência de uma letra proibida ("e") nas palavras e a implementação de instruções "senão" para obter resultados alternativos. O processamento iterativo dota os alunos da capacidade de executar repetidamente acções para cada palavra do texto de entrada, estabelecendo loops e utilizando variáveis para seguir a palavra que está a ser processada. A resolução de problemas torna-se primordial à medida que os alunos identificam, criam estratégias, implementam e testam soluções para o desafio do mundo real de remover palavras com 'e' de um texto. Este exercício aguça o pensamento lógico, exigindo que os alunos estabeleçam a lógica para identificar letras restritas em palavras e planear e organizar o seu código de forma lógica. Além disso, incentiva a depuração orientada por feedback e introduz a interação do utilizador através de uma interface de utilizador, promovendo uma compreensão da experiência do utilizador (UX) no desenvolvimento de software.

  1. Implementação de scratch: Escreva um script onde você insere um texto e ele verifica se o texto lê o mesmo de trás para frente e de frente para trás.
  2. Aspeto Educacional: Isso envolverá aprender sobre loops e inversão de string. Os alunos compreendem os meandros dos processos iterativos, usando loops para percorrer os caracteres do texto, tanto para a frente como para trás, para fazer a comparação. Além disso, aprofundam o conceito de inversão de cadeia, que envolve a manipulação de dados de texto para inverter a sua ordem, uma competência essencial para a verificação de palíndromos. Em geral, este exercício não só melhora as competências de programação dos alunos, como também promove uma compreensão mais profunda dos loops e da manipulação de cadeias de caracteres, ao mesmo tempo que explora o mundo intrigante dos palíndromos num contexto prático.

  1. Implementação em Python: Em Python, é possível trabalhar facilmente com listas e dicionários para armazenar substantivos e suas contrapartes N+7, simplificando a implementação da lógica de substituição N+7. Esta abordagem é mais intuitiva e eficiente do que tentar gerir esses dados nas estruturas tipo lista do Scratch.
  2. Aspeto Educativo:Permite aos alunos explorar conceitos essenciais de programação, tais como estruturas de dados como listas e dicionários, que são fundamentais para organizar e recuperar dados de forma eficiente. Além disso, os alunos adquirem conhecimentos práticos sobre arrays, aprendendo a criar, manipular e preencher listas - uma competência essencial em programação. Também se aprofundam na manipulação de cadeias de caracteres e técnicas de substituição, aperfeiçoando as suas capacidades de processar e transformar texto. O pensamento algorítmico é incentivado à medida que concebem abordagens sistemáticas para identificar substantivos, efetuar pesquisas no dicionário para substituições e reconstruir texto.

  1. Implementação de raspagem: Crie uma interface para introduzir palavras e, em seguida, use um script para exibi-las numa sequência crescente, cada letra mais longa do que a anterior.
  2. Aspeto Educacional: O aspeto educacional deste exercício centra-se principalmente em instruir os alunos em loops e propriedades de comprimento de string no Scratch. Através do ciclo "para sempre", os alunos adquirem proficiência em acções de programação repetitivas enquanto solicitam continuamente a entrada do utilizador e apresentam uma sequência de palavras em expansão. A ênfase na manipulação de cadeias de caracteres promove a compreensão da recuperação do comprimento de cadeias de caracteres utilizando o bloco "comprimento de [cadeia de caracteres]" do Scratch e a extensão incremental de cadeias de caracteres, com cada palavra a crescer uma letra de cada vez. Além disso, os alunos desenvolvem a sua aptidão para criar programas interactivos com uma interface de utilizador para aceitação de entradas e apresentação dinâmica de saídas. Este exercício combina harmoniosamente as competências práticas de programação com os constrangimentos imaginativos de Snowball, aumentando a competência dos alunos em loops, caraterísticas das cadeias de caracteres e interação com o utilizador no ambiente Scratch.

  1. Implementação do Scratch: Desenhar um script para introduzir um texto e depois digitalizá-lo, removendo palavras que contenham vogais diferentes da escolhida.
  2. Aspeto Educativo: Isto requer uma compreensão da pesquisa de cadeias de caracteres e da lógica condicional. Os alunos aprendem a analisar e a procurar habilmente padrões específicos num determinado texto, com especial ênfase na identificação de palavras que contenham vogais diferentes da escolhida, melhorando assim as suas capacidades de análise de texto e de reconhecimento de padrões. Além disso, o exercício sublinha a importância das declarações condicionais, particularmente a declaração "if", na lógica de programação, permitindo aos alunos desenvolver experiência prática na elaboração de lógica que remove ou retém seletivamente palavras com base em critérios predefinidos. Além disso, os alunos participam ativamente na criação de um programa interativo com uma interface de fácil utilização, aplicando e reforçando assim a sua compreensão dos conceitos de interação com o utilizador num contexto prático.

  1. Implementação de scratch: Permitir a entrada de texto e, em seguida, filtrar as palavras que não começam com a letra escolhida.
  2. Aspeto Educacional: Este exercício contribui significativamente para a compreensão dos alunos de conceitos fundamentais de programação, concentrando-se principalmente na manipulação de strings e manipulação de listas. Os alunos adquirem experiência prática na manipulação de cadeias de caracteres, uma vez que avaliam o carácter inicial de cada palavra para determinar se está alinhado com a letra escolhida, reforçando assim a sua competência na análise e manipulação de texto. Além disso, o exercício sublinha o papel fundamental da lógica condicional, exemplificado através da implementação de declarações "se", promovendo a aptidão dos alunos para conceber uma lógica que incorpore ou exclua seletivamente palavras com base em critérios específicos. Os alunos também se envolvem com estruturas de dados de listas, uma vez que dividem eficientemente o texto de entrada em palavras individuais e processam meticulosamente cada palavra através de iteração, reforçando assim a sua proficiência no manuseamento de listas. Por último, ao criarem um programa interativo com uma interface de fácil utilização, os alunos aplicam os seus conhecimentos sobre conceitos de interação com o utilizador, alargando ainda mais as suas competências práticas de programação.

  1. Implementação do Scratch: É mais difícil no Scratch, mas pode introduzir um conjunto de palavras que rimam e depois criar versos que terminam com essas palavras.
  2. Aspeto Educativo: Os alunos são encorajados a libertar as suas capacidades imaginativas, respeitando o quadro estruturado da restrição Bout-rimes, compondo versos que não só aderem ao esquema de rimas prescrito, mas também transmitem coerência e significado, mostrando assim as suas capacidades criativas. O exercício exemplifica o conceito de criatividade baseada em restrições, em que as limitações impostas, como a exigência de palavras específicas para rimar, servem de catalisadores para a resolução inventiva de problemas e a expressão artística. Além disso, os alunos são expostos à lógica de programação à medida que concebem uma abordagem sistemática, mesmo dentro dos blocos visuais do Scratch, para construir linhas poéticas que se alinham com a restrição Bout-rimes, aperfeiçoando o seu pensamento lógico e as suas capacidades de resolução de problemas. Além disso, mergulham no design de interação com o utilizador, incorporando mecanismos de entrada para conjuntos de palavras que rimam, enriquecendo a sua compreensão dos conceitos práticos de interação com o utilizador.

  1. Implementação em Python: crie uma função que receba um texto de entrada e uma letra aprisionada como parâmetros, depois aplique a restrição verificando e modificando as palavras de acordo e, finalmente, retorne o texto válido. Teste a restrição com diferentes textos de entrada e letras aprisionadas para observar os resultados.
  2. Aspeto educativo: a Restrição do Prisioneiro (ou Restrição de Macau) na programação Python centra-se em aperfeiçoar as competências dos alunos na manipulação de cadeias de caracteres e na lógica condicional. Esta restrição desafia os alunos a conceber soluções criativas para aplicar regras que limitam o aparecimento de certas letras como primeira ou última letra de palavras num determinado texto. Trata-se de um exercício prático de resolução de problemas, em que os alunos têm de conceber e implementar código para ultrapassar as limitações da restrição, fomentando o raciocínio lógico e a proficiência em programação.

  1. Implementação em Python: conceber um programa que permita aos utilizadores introduzir texto e especificar as letras proibidas. O programa deve então substituir as letras proibidas dentro das palavras, promovendo habilidades práticas de manipulação de strings e design de interação com o usuário.
  2. Aspeto Educacional: O aspeto educacional da aplicação da restrição "Beautiful Outlaw" na programação Python centra-se principalmente em melhorar a compreensão dos alunos sobre a manipulação de strings, loops e indexação de strings. Embora a restrição completa possa ser demasiado complexa para o Scratch, a implementação de uma versão simplificada em Python oferece uma oportunidade para os alunos mergulharem em operações intrincadas de cadeias de caracteres. Os alunos ganharão experiência prática na manipulação criativa de cadeias de caracteres, concentrando-se particularmente em letras específicas dentro de palavras. Além disso, este exercício reforça a sua compreensão dos loops à medida que iteram através das palavras e da indexação de cadeias de caracteres à medida que acedem e modificam caracteres individuais dentro das palavras. Em geral, a restrição "Beautiful Outlaw" em Python promove a aprendizagem prática, o raciocínio lógico e a resolução de problemas no domínio da manipulação de cadeias de caracteres e da programação.

  1. Implementação em Python: Construir um programa que receba texto de entrada, identifique substantivos (ou outras partes do discurso especificadas) e os substitua pela sétima palavra a seguir a eles num dicionário, utilizando listas e técnicas de substituição de cadeias.
  2. Aspeto Educativo: Ao construir um programa que identifica e substitui partes específicas do discurso, tais como substantivos, por palavras de um dicionário, os alunos aumentam a sua compreensão do processamento de linguagem natural e da linguística computacional. Simultaneamente, reforçam a sua competência em programação, trabalhando com listas e utilizando técnicas de substituição de cadeias de caracteres, promovendo uma combinação prática de conhecimentos linguísticos e de programação num contexto criativo baseado em restrições

  1. Implementação em Python: conceber um programa que receba um texto de entrada e um dicionário de tradução e, em seguida, utilize técnicas avançadas de manipulação de cadeias de caracteres e de tokenização para substituir palavras ou frases, preservando a estrutura sintáctica e a gramática originais. T
  2. Aspeto pedagógico: Em primeiro lugar, os alunos adquirem conhecimentos valiosos sobre conceitos linguísticos relacionados com a sintaxe, a gramática e a estrutura da língua, uma vez que preservam os elementos sintácticos do texto original durante a tradução. Em segundo lugar, desenvolvem as suas competências de programação através da aplicação de técnicas complexas de manipulação de cadeias de caracteres e de tokenização, melhorando a sua capacidade de desenvolver aplicações baseadas na língua e aprofundando a sua compreensão da intersecção entre a língua e a tecnologia.

  1. Implementação de Python: criar um programa que receba um texto de entrada e ofereça várias formas de reorganizar os seus elementos constituintes, tais como anagramas, acrósticos ou inversões de palavras, utilizando técnicas de manipulação de listas e de manipulação de cadeias de caracteres para explorar transformações criativas de texto. Este exercício proporciona aos alunos experiência prática na manipulação de texto de diversas formas e reforça a sua compreensão das operações avançadas de listas e cadeias de caracteres num contexto de programação.
  2. Aspeto Educativo: O aspeto educativo da implementação de "Permutação" em Python centra-se em melhorar as capacidades dos alunos na manipulação criativa de texto e aprofundar a sua compreensão das operações avançadas de listas e cadeias de caracteres. Ao explorar várias técnicas de rearranjo, como anagramas, acrósticos ou inversões de palavras, os alunos não só fomentam o seu pensamento criativo como também reforçam a sua proficiência em programação na manipulação de texto de diversas formas.
Back to top

5) Exemplos passo a passo: Projeto de Programação OULIPO em Scratch &Python

5.1) Exemplo de lipograma

  • Passo 1: Abrir o Scratch e Criar um Novo Projeto
  • Passo 2: Criar a Interface de Utilizador

Na secção "Sprites", apague o sprite predefinido clicando com o botão direito do rato sobre ele e selecionando "Apagar."

Escolha um sprite existente para servir como interface para o seu programa

  • Passo 3: inicializar a lista

Vá para a seção "Variáveis".

Use o bloco para limpar a lista "modiyfiedverse".

Vá para a secção "Sensing" para encontrar o bloco para pedir ao utilizador para introduzir uma frase.

Depois vá para a secção "Variables" para armazenar a resposta na variável verso.

  • Passo 4: Obter a entrada do usuário para a letra a ser removida

Na seção "Variáveis", encontre o bloco para pedir a letra a ser removida.

Use outro bloco para armazenar essa entrada na variável letra a ser removida.

  • Passo 5: Definir a variável índice

Use um bloco da seção "Variáveis" para definir o índice como o comprimento do verso.

Inicie o loop de remoção

Na seção "Controle", inicie um loop que continua até que o índice chegue a 0.

  • Passo 6: Verifique cada caractere e crie uma lista modificada

Dentro do loop, use blocos das seções "Operadores" e "Variáveis" para verificar se o caractere no índice do verso é diferente da letra a ser removida.

Se não for a letra a ser removida, use um bloco da seção "Variáveis" para inseri-la no início da lista "modiyfiedverse".

Diminua o índice em 1 usando um bloco da seção "Operadores".

  • Passo 7: Redefinir o índice e preparar a nova string

Após o loop, use blocos da seção "Variáveis" para definir o índice como 0 e verso2 como uma string vazia.

  • Passo 8: Concatenar lista modificada para formar nova string

Use um bloco da seção "Controle" para executar um loop para cada elemento em "modiyfiedverse".

Dentro desse loop, aumente o índice em 1 usando um bloco da seção "Operadores" e junte os elementos ao verso2 com blocos das seções "Variáveis" e "Operadores".

  • Passo 9: Exibir o resultado

Finalmente, encontre o bloco na seção "Looks" para que o programa "diga""verso2", que exibirá a frase original com a letra específica removida de cada posição em que ocorreu.

Aqui está o programa Scratch para o exemplo do lipograma OULIPO, que permite introduzir texto e depois remove quaisquer palavras que contenham uma letra proibida, por exemplo "e".

Fig. 1. Ilustração de um programa Scratch concebido para um lipograma OULIPO

5.2) Exemplos de bolas de neve

  • Passo 1

Use o bloco "when [bandeira verde] clicked" da categoria "Events" para iniciar o script

  • Passo 2: Inicialização

Crie uma lista chamada "teste" usando a opção "criar uma lista" na categoria "Variáveis".

Crie as variáveis "index", "temp", "string", "pass" e "swaps" usando a opção make a variable na categoria "Variables" e defina-as da seguinte forma:

  • Configure "index" para 0.
  • Configure "temp" para uma string vazia.
  • Definir "string" para a frase ou palavra de entrada desejada (resposta).
  • Definir "pass" e "swaps" para 0.

  • Passo 3: Loop de configuração inicial

O loop começa com o bloco "repeat (length of string)". Este loop será executado tantas vezes quanto o comprimento da string que é introduzida pelo utilizador.

  • Passo 4: Loop Seguinte

Seguindo a configuração inicial, há um loop que começa com "repeat until (pass > 0 and swaps = 0)". Isto está a implementar um algoritmo de ordenação. Cada iteração deste laço representa uma única passagem pela lista a ser ordenada.

Dentro deste laço, você define "item" como 0 e "swaps" como 0, que são usados para rastrear o progresso da ordenação e se alguma troca foi feita em uma passagem.

Existe um loop aninhado "repeat (length of text - 1)". Este loop passa por cada elemento do texto da lista e compara itens adjacentes para verificar se eles precisam ser trocados. Ele é tipicamente usado em algoritmos de bubble sort, onde o processo se repete até que a lista esteja ordenada, que é quando nenhuma troca é necessária (daí "swaps = 0").

  • Passo 5: Loop de Saída Final

Na parte inferior, há um loop "repeat (length of text)". Este laço parece percorrer a lista ordenada para criar um resultado final que será falado pelo programa Scratch usando o bloco "say result".

Fig. 2. Ilustração de um programa Scratch concebido para um OULIPO Snowball

5.3) Exemplo de permutação

  • Passo 1: Compreender o objetivo

Crie um programa que transforme texto de várias maneiras.

Considere como poderia reorganizar as letras ou palavras de um texto para criar novas formas de texto.

  • Passo 2: Entrada de Texto

Função: get_input_text()

Processo de Pensamento: Precisamos de um método para receber texto do utilizador. A função input() é uma maneira simples de fazer isso.

Passo 3: Exibindo o menu de opções

Função: display_menu()

Processo de Pensamento: Fornecer ao usuário opções para o tipo de transformação de texto. Aqui, usamos instruções simples de impressão e uma entrada.

  • Passo 4: Transformações de texto

Funções: gerar_anagramas(), gerar_acrósticos(),reverter_palavras()

Processo de Pensamento: Cada função realiza um tipo diferente de transformação. Nós usamos split() para separar o texto em palavras, e então aplicamos os métodos de transformação correspondentes.

  • Passo 5: Execução do Programa

Função: main()

Processo de Pensamento: Esta função controla o fluxo do programa. Ela recebe o texto, exibe o menu, obtém a escolha do usuário e chama a função de transformação correspondente.

import random
def get_input_text():
    return input("Digite seu texto: ")
def display_menu():
    print("Escolha uma opção de manipulação de texto:")
    print("1: Anagramas")
    print("2: Acrósticos")
    print("3: Inversões de palavras")
    return input("A sua escolha: ")
def gerar_anagramas(texto):
    palavras = text.split()
    anagramas = [''.join(random.sample(word, len(word))) for word in words]
    return ' '.join(anagrams)
def generate_acrostics(text):
    palavras = text.split()
    acróstico = ''.join([palavra[0] for palavra in palavras])
    return acróstico
def reverse_words(text):
    palavras = text.split()
    palavras_revertidas = [palavra[::-1] for palavra in palavras]
    return ' '.join(palavras_revertidas)
def main():
    texto = get_input_text()
    escolha = display_menu()
    se escolha == '1':
        print("Anagramas:", generate_anagrams(text))
    elif choice == '2':
        print("Acrósticos:", gerar_acrósticos(texto))
    elif choice == '3':
        print("Reversão de palavras:", reverter_palavras(texto))
    else:
        print("Escolha inválida")
se _ _nome_ _ == "_ _main_ _":

Back to top

6) Bibliografia recomendada

Bellos, D. (2010). Matemática, poesia, ficção: A aventura do Oulipo. BSHM Bulletin, 25(2), 104-118.

Berkman, N. (2018). Oulipo Digital: Programando a literatura em potencial. DHQ: Digital Humanities Quarterly, 11(3), 1-16.

Despeaux, S. E. (2015). Oulipo: aplicação de restrições matemáticas à literatura e às artes numa sala de aula de matemática para as artes liberais. PRIMUS, 25(3), 238-247.

Matuszyk, Ł. (2016). Matemática da biblioteca do Oulipo. In Proceedings of the International Conference on Studies in Humanities and Social Sciences (SHSS-2016) (pp. 86-92). Paris, França: Universidade da Silésia em Katowice.

Reig, C. (2021). Les "Temps mêlés" de l'Oulipo. Estudos contemporâneos franceses e francófonos, 25(5), 566-574.

Reig, C., Andrews, C., Reggiani, C., & Salceda, H. (2021). Les Effets de l'OuLiPo. SITES The Journal of Contemporary French Studies, 25(5,(Dec 2021)).

Wolff, M. (2007). Potencial de leitura: O oulipo e o significado dos algoritmos. Digital Humanities Quarterly, 1(1). Digital Humanities Quarterly. Retrieved from https://www.proquest.com/docview/2555208716?pq-origsite=gscholar&fromopenview=true&sourcetype=Scholarly Journals

Back to top