Tiago Cogumbreiro

O Irrepupável

Back to top

Showing posts with label pi-calculus. Show all posts
Showing posts with label pi-calculus. Show all posts

Monday, May 26, 2008

Compiling the π-calculus into a Multithreaded Typed Assembly Language

I have just uploaded: Compiling the π-calculus into a Multithreaded Typed Assembly Language. Tiago Cogumbreiro, Francisco Martins, and Vasco T. Vasconcelos. In Proceedings of Places08 - Programming Language Approaches to Concurrency and Communication-cEntric Software. 2008.

This is the paper I will be presenting in Oslo!

Friday, May 09, 2008

Accepted in PLACES '08

I am really happy to announce that my first publication was accepted in the workshop PLACES '08! Thanks to GLOSS (a research team from LaSIGE) I will be presenting the paper in Oslo, Norway. The subject is about the formalization of the compiler from the π-calculus into MIL.

Monday, July 16, 2007

What I Have Been Up To

I have finally graduated in Licenciatura em Ciências e Tecnologia da Computação. In this last year, I have been working in a compiler for a typed assembly language that has the concept of threads (implemented in Java). I have also been working in a compiler (implemented in Java) for the π-calculus, that generates the typed assembly language of the other compiler/interpreter. π-calculus is a nice language to express mobile processes, that change their connections to other processes as they communicate.

I am still a very strong supporter of TDD, I have been using it extensively in my projects. I am also promoting it to people I have the opportunity to work with. Lately, I have become very interested in Continuous Integration and project automation, mainly through Maven. Oh, I am also interested in learning Behaviour Driven Development, a more expressive version of TDD.

In the past few days I have been learning and loving the experience to work with Maven. I am converting some of my projects to it. Its power is astounding!

One thing I want to advise everyone to do is the use of todo-lists. They are great morale boosters and awesome to keep track of what you have done, not to mention how they help you not forget things. And don't delete your completed tasks, they are your trophies!

The month of Jully will be spent writing a report of my work, that I will publish really soon. On August, I want to work on the π-calculus compiler, improving its code generation and its runtime. September awaits alot of work in my soon-to-be-announced-project.

Unfortunately, I still do not have time to work on my social projects anymore, which saddens me a bit. If someone wants to be mentored to maintain Serpentine, let me know!

Next year I will be living in Lisbon, I do not know how to take care of homepage. I still do now have the money to put it in paid hosting :( Maybe it will be migrated into a Google Project. Shameless plug: if someone has a T2 to rent/sell, send me a mail!

Thursday, February 15, 2007

A compiler for the pi-Calculus: the frontend

This is the report for the class Final Work of the Graduation 1: A compiler for the pi-Calculus: the frontend.

Keywords:

  • pi-Calculus
  • mobility
  • process algebra
  • compiler
  • Java
  • design patterns
  • visitor pattern
  • Test Driven Development

Sunday, January 21, 2007

Homepage online

Ando ocupado: a minha página pessoal estava offline, deixei de ler os blogues dos meus amigos, praticamente não tenho visto televisão e quase que não tenho saído.

Hoje encontrei um link para o Serpentine num comentário a um programa de música, o Exaile. Então, lembrei-me que era giro ter o sítio do Serpentine disponível. A minha página pessoal está ligada à rede outra vez.

Tenho um modem novo, daqueles routers da Clix. Ou seja, não vou actualizar o speedtouch-suite a curto prazo.

O relatório do Trabalho Final de Curso 1—o motivo do meu silêncio—está quase a acabar. Aproximadamente 30 páginas de como fazer um compilador para o Cálculo-pi. São 30 páginas que não vão interessar a vivalma :P Coloco na secção de artigos assim que terminar.

Sunday, September 10, 2006

Já em Lisboa

Este é o meu segundo fim-de-semana em Lisboa e o primeiro com disponibilidade para fazer o que me apetecer. Na primeira semana tive a arrumar o apartamento e a fazer as tarefas chatas do quotidiano de qualquer pessoa que vive sozinha (lêr: sem ninguém que as faça por si).

Sexta-feira fui ao bairro alto, foi muito engraçado. Havia montes de gente, mais gente do que todas as outras vezes que tinha lá ido — eram dias de semana. Acabei por encontrar pessoal que já conhecia das ilhas (outros que nem tanto, mas do mesmo local) e a noite perdurou, ao som do sotaque micaelense, até às 6:30 da manhã! Sim, porque tive a brilhante ideia de ir de metro (o primeiro do dia seguinte) para não pagar o táxi. Note to self: don’t do it again ;)

O trabalho que estou a fazer é um compilador de uma linguagem de cálculo-pi, feito em Java, seguindo o livro do Appel. Estou a fazê-lo na FCUL e o local é fantástico, tem bastantes condições e o pessoal que lá trabalha é muito simpático e acolhedor.

A consequência disso é que tenho lido mais papers que alguma vez pensei fazer (durante uma licenciatura). Já decorei nomes como Milner ou Sangiorgi. Aprendi até como fazer a codificação dos números usando canais de comunicação.

Também estive a descobrir quem foi o primeiro a citar a implementação do padrão Visitor usando a introspecção num documento “relevante”. O que me levou a um sítio muito interessante o Hillside Group, onde fazem conferências muito apelativas.

Também foi interessante relembrar o Java a sério, interessante perceber que não me foi difícil voltar a este, vindo de anos de Python, e que a experiência com uma linguagem mais dinâmica enriqueceu-me de uma maneira que desconhecia.

Por exemplo, a estória do visitor com recurso à introspecção veio de uma implementação que fiz, de um modo espontâneo, que necessitava uma referência. Esta implementação não é muito utilizada no “mundo do Java” mas natural no “mundo do Python”.

Podermos evadirmo-nos da barreira dos tipos, de quando em vez, aumenta a nossa flexibilidade e produtividade de uma maneira bastante eficaz que deveria ser mais enfatizada na comunidade.

Mas sobre esse assunto mais escreverei assim que colocar o artigo que estou a escrever online, sobre o estudo de diferentes implementações do dito padrão.