Filipe Saraiva's blog

Tecnologia, sociedade e política.

Proposta submetida ao GSoC: Suporte ao Scilab no Cantor

with 2 comments

O prazo de submissão de projetos ao Google Summer of Code (GSoC) 2011 acabou. Agora, irei falar brevemente sobre minha proposta – que, na verdade, já  apareceu como sugestão em outra edição do GSoC.

Scilab é um dos principais ambientes científicos de programação matemática em software livre disponível no mercado, uma alternativa de qualidade comparável ao ambiente proprietário Matlab. Seu desenvolvimento inicial deu-se em 1990, promovido por pesquisadores ligados às instituições francesas INRIA (Institut National de Recherche en Informatique et en Automatique) e ENPC (École Nationale des Ponts et Chaussées).

Em 2003 foi criado o Scilab Consortium, para promover o Scilab como um software científico de referência para a academia e a indústria.  Scilab é utilizado por diversos centros de pesquisa, indústrias e universidades ao redor do mundo, em pesquisas tão diversas quanto processamento de sinais, simulação de dinâmica de fluídos, otimização combinatória, simulação de aprendizado de máquina, entre outras.

Cantor – screenshot por Alexander Rieder

Cantor é um software científico do KDE SC que serve como interface gráfica para softwares de processamento matemático, a partir de uma estrutura de plugins que fornece backends para estes. Atualmente, Cantor suporta o uso de Kalgebra, Sage, Maxima, R e GNU Octave.

O grande interesse para o uso de Cantor está na possibilidade de trabalhar a programação científico- matemática em um ambiente moderno, com funcionalidades disponíveis como impressão de código, trabalhar em múltiplas abas, ter disponível um editor de textos com destaque de sintaxe, auto- complete e mais funções presentes a partir das tecnologias do Qt e KDE.

Então, a presente proposta objetiva criar um backend para o Scilab no Cantor, promovendo assim o suporte a este ambiente matemático neste software de cunho científico do KDE. Assim, daremos ao Cantor ainda mais visibilidade na comunidade acadêmica e industrial de programação matemática, como uma alternativa consistente e flexível de interface gráfica para os principais ambientes de programação matemática disponíveis, em especial para o Scilab que é um dos mais utilizados e reconhecidamente de qualidade indiscutível entre os demais disponíveis no mercado.

Para prover embasamento para a proposta, eu desenvolvi código em C++ puro que chama Scilab para execução de tarefas. Eu uso a API Scilab chamada call_scilab para fazer esse trabalho. Isto serve apenas para demonstrar que é possível desenvolver o backend através da API Scilab.

Por exemplo, vamos definir uma matriz “x” em Scilab com 100 elementos (clique na figura para aumentar a imagem):


e agora, em C++ utilizando call_scilaband. No lado esquerdo você tem o código; no lado direito, a execução do programa:

Beleza, funcionou! Agora, nós executaremos uma operação matemática com nodas definições e atribuições de variáveis (y = 2 * x; z = 2 * x + 3 * y). Primeiro, no Scilab:

Agora, no código C++:

Finalmente, nós desenharemos o gráfico de “z”. No Scilab:

E, usando o código C++:

Bem, o desafio agora é pegar isto e implementar em C++ com Qt, desenvolvendo de acordo com a padronização de código no Cantor. Outro desafio também será a geração de gráficos no Scilab, mas eu já coloquei uma alternativa de desenvolvimento no projeto que enviei ao GSoC.

Eu estou com muita expectativa sobre a possibilidade de trabalhar com duas comunidades de software livre (KDE e Scilab) no GSoC. E, certamente, este projeto será meu filhote no KDE! 😀

Estou torcendo aqui! Valeu pessoal!

Written by Filipe Saraiva

abril 10th, 2011 at 3:05 pm

2 Responses to “Proposta submetida ao GSoC: Suporte ao Scilab no Cantor”

  1. davi disse:

    fiz um programa em c++ utilizando call_scilab não funcionou. meu os é win7. vc teria alguma sugestão?

Leave a Reply