Linguagens Imperativas
Linguagens de Programa¸c˜
ao
Paradigma Imperativo
Matheus Hafner Tiago Xavier
CET 087 - Conceitos de Linguagens de Programa¸c˜ao (CLP)
Linguagens Imperativas
Linguagens Imperativas
Instala¸c˜
ao
Fortran
sudo apt-get install gfortran Lua
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Introdu¸c˜ao
Introdu¸c˜
ao
Lua ´e uma linguagem de programa¸c˜ao interpretada, imperativa, de script, procedural, poderosa, r´apida e leve, projetada para estender aplica¸c˜oes.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Introdu¸c˜ao
Introdu¸c˜
ao
Lua combina sintaxe simples para programa¸c˜ao procedural com poderosas constru¸c˜oes para descri¸c˜ao de dados baseadas em tabelas associativas e semˆantica extens´ıvel. Lua ´e tipada dinamicamente, ´e interpretada a partir de bytecodes para uma m´aquina virtual baseada em registradores, e tem
gerenciamento autom´atico de mem´oria com coleta de lixo incremental.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Introdu¸c˜ao
Introdu¸c˜
ao
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 `a sua eficiˆencia, clareza e facilidade de aprendizado, passou a ser usada em diversos ramos da
programa¸c˜ao, como no desenvolvimento de jogos, controle de robˆos, processamento de texto, etc. Tamb´em ´e
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e uma linguagem estabelecida e robusta
Mais usada em jogos.
S´olido manual de referˆencia V´arios livros.
V´arias vers˜oes. Aplica¸c˜oes reais.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e uma linguagem estabelecida e robusta
Mais usada em jogos. S´olido manual de referˆencia
V´arios livros. V´arias vers˜oes. Aplica¸c˜oes reais.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e uma linguagem estabelecida e robusta
Mais usada em jogos. S´olido manual de referˆencia V´arios livros.
V´arias vers˜oes. Aplica¸c˜oes reais.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e uma linguagem estabelecida e robusta
Mais usada em jogos. S´olido manual de referˆencia V´arios livros.
V´arias vers˜oes.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e uma linguagem estabelecida e robusta
Mais usada em jogos. S´olido manual de referˆencia V´arios livros.
V´arias vers˜oes. Aplica¸c˜oes reais.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e r´
apida
Reputa¸c˜ao de ´otimo desempenho.
Outras aspiram: ”t˜ao r´apidas quanto Lua”. Aplica¸c˜oes grandes s˜ao escritas em Lua.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e r´
apida
Reputa¸c˜ao de ´otimo desempenho.
Outras aspiram: ”t˜ao r´apidas quanto Lua”.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e r´
apida
Reputa¸c˜ao de ´otimo desempenho.
Outras aspiram: ”t˜ao r´apidas quanto Lua”. Aplica¸c˜oes grandes s˜ao escritas em Lua.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e port´
atil
Pequeno pacote.
Sem modifica¸c˜oes em todas as plataformas(ANSI/ISO C). Unix, Windows, dispositivos m´oveis, Lego MindStorms.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e port´
atil
Pequeno pacote.
Sem modifica¸c˜oes em todas as plataformas(ANSI/ISO C).
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e port´
atil
Pequeno pacote.
Sem modifica¸c˜oes em todas as plataformas(ANSI/ISO C). Unix, Windows, dispositivos m´oveis, Lego MindStorms.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e embut´ıvel
Engine r´apida 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.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e embut´ıvel
Engine r´apida 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.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e embut´ıvel
Engine r´apida 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.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e embut´ıvel
Engine r´apida 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.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e embut´ıvel
Engine r´apida 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.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e pequena
O pacote de Lua 5.1.4: 212K comprimido e 860K descompactado.
Fonte: +/- 17000 linhas de C.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e pequena
O pacote de Lua 5.1.4: 212K comprimido e 860K descompactado.
Fonte: +/- 17000 linhas de C.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e pequena
O pacote de Lua 5.1.4: 212K comprimido e 860K descompactado.
Fonte: +/- 17000 linhas de C.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e livre
Software livre de c´odigo aberto (MIT).
Lua pode ser usada para quaisquer prop´ositos, incluindo prop´ositos comerciais, sem qualquer custo ou burocracia. Basta fazer um download e us´a-la.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Caracter´ısticas
Lua ´e livre
Software livre de c´odigo aberto (MIT).
Lua pode ser usada para quaisquer prop´ositos, incluindo prop´ositos comerciais, sem qualquer custo ou burocracia. Basta fazer um download e us´a-la.
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Exemplos
”Alˆ
o mundo!”
$ lua
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Exemplos
Maneiras de Execu¸c˜
ao
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
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Exemplos
Operadores
Aritm´eticos + * / % ˆ. -Relacionais
== (diferente) (menor que) (maior que) (menor igual) (maior igual)
L´ogicos and or not Obs: (nil false true)
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Exemplos
Vari´
aveis
$ lua a = 1 + 2 + 1 b = 2 c = ’d’ d = a+b print (a,b,c,d) a,b = b,a print (a,b)Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Exemplos
Utilizando Vetores
$ lua - array = {”a”,”b”,”c”} - print (array[3]) Tamanho do Vetor - print (#array)Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Exemplos
Trabalhando com Strings
$ lua a = ”Andre” b = ”Junior” print(”Nome: ”) print(a) print(-——–”) print(”Ultimo nome: ”) print(b)
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
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))Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
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))
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
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
Linguagens Imperativas Linguagem de Programa¸c˜ao Lua
Exemplos
Modificando Fun¸c˜
oes
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
Linguagens Imperativas
Linguagem de Programa¸c˜ao FORTRAN Introdu¸c˜ao
Introdu¸c˜
ao
Desenvolvida a partir da d´ecada de 1950
O nome ´e um acrˆonimo da express˜ao ”IBM Mathematical FORmula TRANslation System”
Linguagens Imperativas
Linguagem de Programa¸c˜ao FORTRAN Introdu¸c˜ao
Introdu¸c˜
ao
Desenvolvida a partir da d´ecada de 1950
O nome ´e um acrˆonimo da express˜ao ”IBM Mathematical FORmula TRANslation System”
Linguagens Imperativas
Linguagem de Programa¸c˜ao FORTRAN Introdu¸c˜ao
Introdu¸c˜
ao
Fam´ılia de linguagens de programa¸c˜ao
Uso em aplica¸c˜oes cient´ıficas computacionalmente intensivas
meteorologia, oceanografia, f´ısica, astronomia, geof´ısica, engenharia, economia etc.
Linguagens Imperativas
Linguagem de Programa¸c˜ao FORTRAN Introdu¸c˜ao
Introdu¸c˜
ao
Fam´ılia de linguagens de programa¸c˜ao
Uso em aplica¸c˜oes cient´ıficas computacionalmente intensivas
meteorologia, oceanografia, f´ısica, astronomia, geof´ısica, engenharia, economia etc.
Linguagens Imperativas
Linguagem de Programa¸c˜ao FORTRAN Introdu¸c˜ao
Introdu¸c˜
ao
Fam´ılia de linguagens de programa¸c˜ao
Uso em aplica¸c˜oes cient´ıficas computacionalmente intensivas
meteorologia, oceanografia, f´ısica, astronomia, geof´ısica, engenharia, economia etc.
Linguagens Imperativas
Linguagem de Programa¸c˜ao FORTRAN Caracter´ısticas
Caracter´ısticas
Permite a cria¸c˜ao de programas que primam pela velocidade de execu¸c˜ao
Linguagem de programa¸c˜ao procedural
Vers˜oes recentes possuem caracter´ısticas que permitem suportar programa¸c˜ao orientada a objetos
Linguagens Imperativas
Linguagem de Programa¸c˜ao FORTRAN Caracter´ısticas
Caracter´ısticas
Permite a cria¸c˜ao de programas que primam pela velocidade de execu¸c˜ao
Linguagem de programa¸c˜ao procedural
Vers˜oes recentes possuem caracter´ısticas que permitem suportar programa¸c˜ao orientada a objetos
Linguagens Imperativas
Linguagem de Programa¸c˜ao FORTRAN Caracter´ısticas
Caracter´ısticas
Permite a cria¸c˜ao de programas que primam pela velocidade de execu¸c˜ao
Linguagem de programa¸c˜ao procedural
Vers˜oes recentes possuem caracter´ısticas que permitem suportar programa¸c˜ao orientada a objetos
Linguagens Imperativas
Linguagem de Programa¸c˜ao FORTRAN Exemplos
”Alˆ
o mundo!”
program alomundo implicit none
print*, ”Alˆo mundo!” end program alomundo
Linguagens Imperativas
Linguagem de Programa¸c˜ao 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¸c˜ao ! n˜ao ´e interpretada como um coment´ario”
print*, ”Em 2006 vocˆe tem ”, anos vida,”anos de vida” end program tempo de vida
Linguagens Imperativas
Linguagem de Programa¸c˜ao FORTRAN Exemplos
Soma
program soma integer k,n,m n=1 m=3if(m .ne. 0)then K=m+n else k=n endif print*,k stop end
Linguagens Imperativas
Linguagem de Programa¸c˜ao 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 endLinguagens Imperativas
Linguagem de Programa¸c˜ao FORTRAN Exemplos
Fatorial
program fat implicit none integer fatorial, n, i fatorial = 1print*, ”entre com o n´umero ” read(*,*) n
do i = 1, n
fatorial = fatorial * i end do
print *,’Fatorial do n´umero dado ’, y end