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!
fiz um programa em c++ utilizando call_scilab não funcionou. meu os é win7. vc teria alguma sugestão?
Oi Davi. Na página do Scilab há um tutorial sobre como compilar e executar código usando call_scilab, dá uma olhada lá:
http://help.scilab.org/docs/5.4.1/pt_BR/compile_and_run_call_scilab.html