next up previous
Next: Um exemplo de script Up: Detalhamento do Projeto Previous: Detalhamento do Projeto

A Linguagem Phyton

Python  [8] é uma linguagem interpretada, bastante portável, orientada a objetos (incluindo herança múltipla). Apresenta semântica dinâmica, um moderno mecanismo de tratamento de erros e exceções. Algo só visto em linguagens modernas como Java e as versões mais recentes de C++. Python possui Uma forma eficiente de acesso e reutilização de código com o uso de módulos, coleta de lixo automática, recursos avançados de manipulação de textos, listas e outras estruturas de dados como dicionários mais poderoso que o hash de Perl, pois os valores assumidos podem conter qualquer outro tipo de objeto como até mesmo outros dicionários. Python possui ainda uma sintaxe simples, quase como um pseudo-código, característica marcante da sintaxe, próxima a linguagem matemática, do MATLAB.

Seu desenvolvimento teve início em 1990, pelo holandês Guido van Rossum, na CWI em Amsterdã e continuou na CNRI (fundação que sustenta a linguagem hoje) em Reston. O conjunto de entidades e pessoas ligadas ao Python, sobretudo via Internet, formam a Python Software Activity (PSA).

Em Python, diferentemente de C++ ou Java, as funções são tratadas como objetos, característica de linguagens de programação funcional como Lisp, muito utilizada em aplicações de inteligência artificial. Outro ponto importante, oferecendo grande flexibilidade, é que, em Python, cada argumento de uma função pode assumir um valor default.

Os módulos, em Python, são coleções de funções. Sua versão 1.5.2, de 1999, já incluia (a versão atual é a 2.0) mais de 140 módulos, sem contar a extensão gráfica Tk que será importante na construção das ferramentas de interesse deste trabalho. E desconsiderando também outros módulos que podem ser encontrados a partir do site oficial (www.python.org), quase todos livres e gratuitos. Como ilustração, podemos citar alguns módulos, como o cgi (para programação de páginas dinâmicas), ftplib (para montagem de scripts para interação com servidores FTP), gzip (para leitura e escrita de arquivos comprimidos), math (para utilização de funções matemáticas), re (para busca de texto com expressões regulares, característica da linguagem Perl), string (para operações com strings), time (para obtenção de hora atual e conversão de formatos de data), xmllib (para interpretação de arquivos em formato XML). Temos especial interesse nos módulos de computação científica como o Numerical (NumPy)  [9].

O NumPy é um conjunto de extensões para Python que oferecem várias funcionalidades para manipulação de conjuntos de objetos chamados arrays. Estes, por sua vez, podem ter qualquer número de dimensões. A vantagem destas extensões é que podemos processar grandes conjuntos de forma tão rápida quanto os resultados das linguagens não interpretadas de mais baixo nível. A manipulação de grandes conjuntos numéricos, que é o caso do processamento de imagens, se fossem usadas as estruturas de dados padrão do Python, poderia ser muito lenta e ocupar muito espaço. Entretanto, mesmo assim, comparando a execução de comandos de iteração (como o comando ``for''), críticos em linguagens interpretadas, o Python se revela eficiente, sendo mais rápido, por exemplo, que o MATLAB. Tanto Python como MATLAB podem facilmente agregar funções (boa extensividade), o que é importante para nossos objetivos de construção de caixa de ferramentas. O fato de o Python ter código aberto e ser gratuitamente distribuído, inclusive com o Numerical Python, foi um elemento decisivo na escolha desta linguagem, já que a intenção, entre outras, é beneficiar qualquer pessoa interessada em ferramentas de processamento de imagens.



 
next up previous
Next: Um exemplo de script Up: Detalhamento do Projeto Previous: Detalhamento do Projeto
Alexandre Goncalves Silva
2001-01-11