Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 17 de novembro de 2011
Aula Prática
Instalação Fortran sudo apt-get install gfortran Lua sudo apt-get install lua5.1
Introdução Introdução Lua é uma linguagem de programação interpretada, imperativa, de script, procedural, poderosa, rápida e leve, projetada para estender aplicações.
Introdução Introdução Lua combina sintaxe simples para programação procedural com poderosas construções para descrição de dados baseadas em tabelas associativas e semântica extensível. Lua é tipada dinamicamente, é interpretada a partir de bytecodes para uma máquina virtual baseada em registradores, e tem gerenciamento automático de memória com coleta de lixo incremental.
Introdução Introdução Lua foi criada por um time de desenvolvedores do Tecgraf da PUC-Rio, a princípio, para ser usada em um projeto da Petrobras. Devido à sua eficiência, clareza e facilidade de aprendizado, passou a ser usada em diversos ramos da programação, como no desenvolvimento de jogos, controle de robôs, processamento de texto, etc. Também é freqüentemente usada como uma linguagem de propósito geral.
Lua é uma linguagem estabelecida e robusta Mais usada em jogos.
Lua é uma linguagem estabelecida e robusta Mais usada em jogos. Sólido manual de referência
Lua é uma linguagem estabelecida e robusta Mais usada em jogos. Sólido manual de referência Vários livros.
Lua é uma linguagem estabelecida e robusta Mais usada em jogos. Sólido manual de referência Vários livros. Várias versões.
Lua é uma linguagem estabelecida e robusta Mais usada em jogos. Sólido manual de referência Vários livros. Várias versões. Aplicações reais.
Lua é rápida Reputação de ótimo desempenho.
Lua é rápida Reputação de ótimo desempenho. Outras aspiram: tão rápidas quanto Lua.
Lua é rápida Reputação de ótimo desempenho. Outras aspiram: tão rápidas quanto Lua. Aplicações grandes são escritas em Lua.
Lua é portátil Pequeno pacote.
Lua é portátil Pequeno pacote. Sem modificações em todas as plataformas(ansi/iso C).
Lua é portátil Pequeno pacote. Sem modificações em todas as plataformas(ansi/iso C). Unix, Windows, dispositivos móveis, Lego MindStorms.
Lua é embutível Engine rápida e pequena.
Lua é embutível Engine rápida e pequena. API simples e bem documentada.
Lua é embutível Engine rápida e pequena. API simples e bem documentada. Estender com bibliotecas escritas em outras linguagens.
Lua é embutível Engine rápida e pequena. API simples e bem documentada. Estender com bibliotecas escritas em outras linguagens. Estender programas escritos em outras linguagens com Lua.
Lua é embutível Engine rápida e pequena. API simples e bem documentada. Estender com bibliotecas escritas em outras linguagens. Estender programas escritos em outras linguagens com Lua. Possível Estender: C, C++, Java, C#, Smalltalk, Fortran, Ada, Erlang, Perl, Ruby, etc.
Lua é pequena O pacote de Lua 5.1.4: 212K comprimido e 860K descompactado.
Lua é pequena O pacote de Lua 5.1.4: 212K comprimido e 860K descompactado. Fonte: +/- 17000 linhas de C.
Lua é pequena O pacote de Lua 5.1.4: 212K comprimido e 860K descompactado. Fonte: +/- 17000 linhas de C. No Linux, interpretador 153K e biblioteca 203K.
Lua é livre Software livre de código aberto (MIT).
Lua é livre Software livre de código aberto (MIT). Lua pode ser usada para quaisquer propósitos, incluindo propósitos comerciais, sem qualquer custo ou burocracia. Basta fazer um download e usá-la.
Exemplos Alô mundo! $ lua - print Hello World!
Exemplos Maneiras de Execução Mostrar (Raiz Quadrada) de 2: print (2 ˆ. (1/2)) = 1.4142135623731 * Linha de Comando -e : $ lua -e print(2 ˆ. 0.5) * Programa em modo interativo: $ lua - print(2 ˆ. 0.5) * Arquivo via linha de comando $ lua nome-do-arquivo * Arquivo via modo interativo $ lua - dofile( nome-do-arquivo )
Exemplos Operadores Aritméticos + * / % ˆ. - Relacionais == (diferente) (menor que) (maior que) (menor igual) (maior igual) Lógicos and or not Obs: (nil false true)
Exemplos Variáveis $ lua a = 1 + 2 + 1 b = 2 c = d d = a+b print (a,b,c,d) a,b = b,a print (a,b)
Exemplos Utilizando Vetores $ lua - array = { a, b, c } - print (array[3]) Tamanho do Vetor - print (#array)
Exemplos Trabalhando com Strings $ lua a = Andre b = Junior print( Nome: ) print(a) print(- ) print( Ultimo nome: ) print(b)
Exemplos Fatorial de n $ lua function fact(n) if n == 0 then return 1 else return n * fact(n - 1) end end print(fact(120))
Exemplos Soma de Elementos de um Vetor function add (a) local sum = 0 for i = 1, #a do sum = sum + a[i] end return sum end vector = {1,2,3,4} print(add(vector))
Exemplos Tabelas (Estruturas de Dados) ponto = {x=10, y=20} print(ponto[ x ]) print(ponto.x) function Point(x,y) return {x=x, y=y} Retorna uma tabela end array = {Point(10,20), Point(30,40), Point(50,60)} Vetor de pontos print(array[2].y)
Exemplos Modificando Funções do local oldprint = print print = function(s) if s == yes then oldprint( no ) else if s == no then oldprint( yes ) else oldprint(s) end end end end
Linguagem de Programação FORTRAN Introdução Introdução Desenvolvida a partir da década de 1950
Linguagem de Programação FORTRAN Introdução Introdução Desenvolvida a partir da década de 1950 O nome é um acrônimo da expressão IBM Mathematical FORmula TRANslation System
Linguagem de Programação FORTRAN Introdução Introdução Família de linguagens de programação
Linguagem de Programação FORTRAN Introdução Introdução Família de linguagens de programação Uso em aplicações científicas computacionalmente intensivas meteorologia, oceanografia, física, astronomia, geofísica, engenharia, economia etc.
Linguagem de Programação FORTRAN Introdução Introdução Família de linguagens de programação Uso em aplicações científicas computacionalmente intensivas meteorologia, oceanografia, física, astronomia, geofísica, engenharia, economia etc. Ciência da Computação e Análise Numérica
Linguagem de Programação FORTRAN Permite a criação de programas que primam pela velocidade de execução
Linguagem de Programação FORTRAN Permite a criação de programas que primam pela velocidade de execução Linguagem de programação procedural
Linguagem de Programação FORTRAN Permite a criação de programas que primam pela velocidade de execução Linguagem de programação procedural Versões recentes possuem características que permitem suportar programação orientada a objetos
Linguagem de Programação FORTRAN Exemplos Alô mundo! program alomundo implicit none print*, Alô mundo! end program alomundo
Linguagem de Programação FORTRAN Exemplos Tempo de vida program tempo de vida implicit none integer:: ano nascimento, anos vida read*, ano nascimento anos vida = 2011 - ano nascimento print*, Esta exclamação! não é interpretada como um comentário print*, Em 2006 você tem, anos vida, anos de vida end program tempo de vida
Linguagem de Programação FORTRAN Exemplos Soma program soma integer k,n,m n=1 m=3 if(m.ne. 0)then K=m+n else k=n endif print*,k stop end
Linguagem de Programação FORTRAN Exemplos Teste go to program testegoto implicit none integer n n = 1 10 if (n.le. 100) then n = 2*n write (*,*) n goto 10 endif end
Linguagem de Programação FORTRAN Exemplos Fatorial program fat implicit none integer fatorial, n, i fatorial = 1 print*, entre com o número read(*,*) n do i = 1, n fatorial = fatorial * i end do print *, Fatorial do número dado, y end