Escolar Documentos
Profissional Documentos
Cultura Documentos
Capítulo
4
Introdução à linguagem de programação Julia: A
ambiciosa linguagem de programação que quer
substituir Python, R e Matlab.
Abstract
Resumo
Algoritmos Fortran Julia Python R Matlab Octave Mathematica JavaScript Go LuaJIT Java
(gcc (0.4.0) (3.4.3) (3.2.2) (R2015b) (4.0.0) (10.2.0) (V8 (go4.5) (gsl- (4.8.0_45
5.4.1) 3.28.74.19) shell )
2.3.1)
fibonacci 0.70 2.11 77.76 533.52 26.89 9324.35 118.53 3.36 4.86 4.71 4.21
parse_int 5.05 4.45 17.02 45.73 802.52 9584.44 15.02 6.06 4.20 5.77 3.35
quicksort 4.31 4.15 32.89 264.54 4.92 1866.01 43.23 2.70 4.29 2.03 2.60
mandel 0.81 0.79 15.32 53.16 7.58 454.81 5.13 0.66 4.11 0.67 4.35
pi_sum 4.00 4.00 24.99 9.56 4.00 299.31 4.69 4.01 4.00 4.00 4.00
rand_mat_stat 4.45 4.66 17.93 14.56 14.52 30.93 5.95 2.30 2.96 3.27 3.92
rand_mat_mul 3.48 4.02 4.14 4.57 4.12 4.12 4.30 15.07 4.42 4.16 2.36
• Windows
• Linux
#Instalação Julia
#Instalação Julia
#Instalação Julia
Binários
• Estruturas de Repetição
Estruturas de repetição, que permitem executar mais de uma vez um mesmo
trecho de código. Julia possui as seguintes estruturas de repetição: loop while, for e do.
4.8. Funções
Na linguagem Julia, uma função é um objeto que mapeia uma tupla de valores
de argumentos de entrada e produz um ou vários valores de retorno. De acordo com o
manual oficial (versão 0.5), as funções de Julia não são funções matemáticas puras, no
sentido de que as funções podem alterar e ser afetadas pelo estado global do programa.
No entanto podemos utilizar (principalmente a forma reduzida da função genérica) as
funções em Julia de forma bem próximas do conceito matemático de acordo com as
duas formas: função genérica e função anônima. Cada uma possui vantagens e
desvantagens quanto ao desempenho e sintaxe. Em geral a mais utilizada é a função
genérica. Qualquer função pode ser aplicada elemento-elemento a qualquer array (ou
outra coleção) com a sintaxe função.(Array).
O multiple dispatch ou Despacho múltiplo é uma das características mais
importantes de Julia e um grande diferencial em relação a outras linguagens para
computação científica. As funções em Julia podem ter vários métodos definidos e o
comportamento da execução depende dos argumentos que são passados. Quando uma
função é chamada, Julia fará uma pesquisa na sua vtable (tabela de métodos virtual) em
tempo de execução para descobrir qual método correto deve ser chamado com base nos
tipos de todos os seus argumentos; Este é o mecanismo de Julia de despacho múltiplo,
que nem Python, nem C++ ou Fortran implementam [Balbaert, 2015].
• Função Genérica
As funções genéricas possuem este nome porque estão prontas para trabalhar
com diferentes tipos de dados. A construção de funções é feita na forma de blocos ou
reduzida (estrutura semelhante a uma definição matemática).
Para realizar o cálculo com arrays, basta usar o “.” entre o nome da função e array:
Para realizar o cálculo com arrays, basta usar o “.” entre a função e array:
4.9. Escopo
O escopo de uma variável é a região dentro do código no qual uma variável está
visível. O objetivo do escopo de variáveis em linguagens de programação é bem claro:
evitar conflitos de nomeação de variáveis. Na linguagem Julia existem dois tipos
principais de escopos denominados escopo global e escopo local (Soft ou Hard), sendo
que este último pode ser aninhado.
• Global
Em Julia as variáveis globais que são acessíveis de qualquer lugar do programa e
uma variável global declarada como const pode alterar seu valor (um aviso é
informado na tela) conforme a conveniência. Código:
• Soft Local
Um escopo local geralmente herda todas as variáveis de seu escopo principal,
tanto para leitura e escrita. Em um escopo soft local, todas as variáveis são herdadas de
seu escopo principal, a menos que uma variável seja especificamente marcada com a
palavra chave local.
• Hard Local
Escopo hard local é determinado principalmente por funções (em todas as suas
formas) e macro. Em um escopo hard local, todas as variáveis são herdadas de seu
escopo principal.
4.10. Matemática simbólica
A abordagem simbólica é de domínio dos sistemas de álgebra computacional
(CAS), trabalhado através de programas muito abrangentes como o Mathematica®, o
Maple® e o Maxima. Julia usa o pacote SymPy do Python via pacote Pycall.jl para
realizar cálculos de matemática simbólica. Dessa forma, é possível integrar e diferenciar
funções simbolicamente, resolver grande parte das EDOs lineares de segunda ordem,
realizar simplificação de expressões, além de muitas outras manipulações simbólicas.
4.11. Gráficos
É possível utilizar diversos pacotes gráficos com Julia. Alguns pacotes
disponíveis no repositório oficial: PyPlot.jl, PlotlyJS.jl, GR.jl e GadFly.jl.
PyPlot.jl permite plotar diferentes tipos de gráficos 2D e 3D. Utiliza o pacote
PyCall.jl para chamar o matplotlib do Python diretamente do código em Julia. Uma das
vantagens do pacote PyPlot.jl é a quantidade de opções de gráficos e configuração de
visualização.
GR.jl é um pacote que fornece uma interface de Julia para GR no qual oferece
aos desenvolvedores uma compacta e consistente biblioteca gráfica 2D e 3D para seus
programas baseado em OpenGL.
Referências
Balbaert, Ivo et al (2015). “Getting Started With Julia Programming”. Birmingham,
Packt Publishing.,p.30-35
Baldoino, Plínio. (2012)“Dominando JavaScript com jQuery”, São Paulo, Casa do
Código., p.31-32
Larsson, Olle et al (2017). “A brief overview of Julia the programming language”.
https://www8.cs.umu.se/kurser/5DV086/VT17/. Maio.
Sengupta, Avik (2016).“Julia High Performanc”. Birmingham, Packt Publishing., p.1-5.
Sherrington, Malcolm (2015). “Mastering Julia”. Birmingham, Packt Publishing., p.120-
122
Sperandio, D.; Mendes, J. T; Silva, L. H (2003). “Cálculo numérico – Características
matemáticas e computacionais dos métodos numéricos”. São Paulo, Pearson., p.15