Beruflich Dokumente
Kultur Dokumente
Aula 1
Metodologia
Aulas expositivas terico-prticas Exerccios prticos Projetos individuais e/ou em grupos Seminrios relacionados sobre tpicos abordados e
Linguagens de programao
Bibliografia bsica
SEBESTA, ! "! #onceitos de $inguagens de
Programa%&o, '( ed!, Boo)man, *+,,! -.E//0, #! e 1A/E2E 0, 3! #onceitos de linguagens de programa%&o, #ampus, ,'45! 6A E178, 9! 3! $inguagem de Programa%&o: conceitos e t;cnicas, <#ampus=, *++>!
Linguagens de programao !
io de 1aneiro: Elsevier
Bibliografia bsica
Linguagens de programao
"
Tpicos da disciplina
Histrico da Evoluo das Linguagens de Programao: traduo interpretao e compilao!" Paradigma #mperativo$ %rientado a %b&eto$ 'uncional e Lgico" principais representantes de cada um dos paradigmas" (eviso do Processo de )ompilao )ompilao versus #nterpretao!" Programao #mperativa: *antagens e desvantagens da programao imperativa" Linguagens de Programao Lgicas: +presentao de uma linguagem lgica" clculo de predicados" resoluo de problemas e aplica,es usando programao lgica" anlise de independ-ncia e reusabilidade de programas lgicos. +spectos /intticos e /em0nticos: 1escrio /inttica$ M2todos 'ormais$ 1escrio /em0ntica" Tipos de 1ados: 1efinio de dados" (epresentao #nterna" Escopo de 1efini,es" Bindings E3press,es e instru,es de atribuio" operadores sobrecarregados" convers,es de tipo" E3press,es (elacionais e Booleanas" Estruturas de )ontrole" #nstruo de /eleo" #nstru,es #terativas" /ubprogramas" 4uest,es de Pro&eto" +mbientes de (efer-ncia" M2todos de Passagem de Par0metros" )ompilao /eparada" +locao 1in0mica: 5erenciamento de Memria /uporte a Programao %rientada a %b&etos: +spectos sintticos e sem0nticos de ob&etos e classes$ classes derivadas e 6eranas$ polimorfismo$ controles de acesso" fun,es membros e sobrecarga. Linguagens de Programao 'uncionais: +presentao de uma linguagem funcional" fun,es como valores de primeira ordem" recurso simples e recurso de cauda usando programao funcional" (esoluo de problemas e aplica,es usando programao funcional" anlise da independ-ncia e reusabilidade de programas funcionais.
Linguagens de programao
+valiao
Mb 7 Pb89 : Tb8;! < =>
8nde:
Mb ? 3;dias Bimestrais do primeiro e segundo bimestre! Pb ? Prova Bimestral! Tb ? 3;dia das notas das atividades desenvolvidas intra e extra classe no semestre!
Pr2?re@uisitos
@isciplina:
Programa%&o
Linguagens de programao
Aa aula de 6o&e...
Aspectos preliminares das linguagens de programa%&o
#aptulo , A $ivro: #onceitos de linguagens de programa%&o Sebesta
Linguagens de programao
&
(oteiro
#ntroduo" %b&etivos" 1efinio e (aB,es para estudar conceitos de LP #onceitos de $PB @omnios de Programa%&oB #rit;rios de Avalia%&oB .istrico da Evolu%&o das $inguagens de Programa%&o: tradu%&o <interpreta%&o e compila%&o=B #ategorias de $P e #lassiCica%&o de $P 8s Paradigmas: Paradigma 0mperativo, 8rientado a 8bjeto, 9uncional e $gicoB principais representantes de cada um dos paradigmas
Linguagens de programao '
#ntroduo
Da programa%&o de computadores, uma
linguagem de programa%&o <$P= serve como meio de comunicao entre o indivCduo @ue dese&a resolver um determinado problema e o computador escolEido para ajud-lo na solu%&o! $P
Linguagens de programao 1(
#ntroduo
A $P deve CaFer Eumano a liga%&o <muitas entre veFes o de
pensamento
$P
Linguagens de programao 11
%b&etivos de uma LP
Auxiliar o programador no processo de
1efinio
Ima $P ; uma linguagem destinada para ser usada por uma pessoa para expressar um processo atrav;s do Gual um computador possa resolver um problema!
8s
Guatro
modelos aos
<paradigmas: de vista
Linguagens de programao
1!
1efinio
Para Gue se tornem operacionais, os programas escritos em linguagens de alto nvel devem ser traduFidos para linguagem de mGuina!
Linguagens de programao
1"
1efinio
Linguagem alto nCvel para linguagem de m@uina
Essa convers&o ; realiFada atrav;s de sistemas especialiFados A compiladores ou interpretadores A Gue aceitam <como entrada= uma representa%&o textual da solu%&o de um problema, expresso em uma linguagem fonte, e produFem uma representa%&o do mesmo
1efinio
Linguagens de programao
1$
Linguagens de programao
1%
Ima maior compreens&o de uma $P pode aumentar nossa Eabilidade em pensar em como atacar os problemas!
Linguagens de programao
1&
A melEor compreens&o das Cun%Les e implementa%&o das estruturas de uma $P nos leva a usar a $P de modo a extrair o mximo de sua Cuncionalidade e eCiciJncia
linguagens apropriadas
EscolEer a melEor linguagem para um problema
Linguagens de programao
implementao:
3elEora as escolEas Gue podemos CaFer entre as constru%Les de $P e as conseGuJncias das op%Les!
Linguagens de programao
linguagens:
#ompreender os conceitos gerais das linguagens torna mais Ccil entender como eles s&o incorporados na linguagem Gue est sendo aprendida!
Linguagens de programao
Linguagens de programao
0ndicador
de
popularidade
das
$P
Tiobe
FFF.tiobe.com!
Linguagens de programao
"
Linguagens de programao
Linguagens de programao
Dem
sempre
as
linguagens
mais
populares
s&o
Linguagens de programao
(oteiro
0ntrodu%&oB 8bjetivosB @eCini%&o e os conceitos de $P aFLes para estudar
1omCnios de Programao" )rit2rios de +valiao" .istrico da Evolu%&o das $inguagens de Programa%&o: tradu%&o <interpreta%&o e compila%&o=B #ategorias de $P e #lassiCica%&o de $P 8s Paradigmas: Paradigma 0mperativo, 8rientado a 8bjeto, 9uncional e $gicoB principais representantes de cada um dos paradigmas
Linguagens de programao
&
1omCnios de programao
#omputadores tJm sido aplicados a uma inCinidade de reas
Linguagens de programao
'
1omCnios de programao
Linguagens de programao
!(
1omCnios de programao
Oreas
+plica,es cientCficas +plica,es comerciais #ntelig-ncia artificial Programao de /istemas +plica,es #nternet e scripts LP para propsitos especiais
portabilidade ...
GUIS,
usurios
e)pressiva*
simples
desenvolvedores
aplicaes
Linguagens de programao
!1
Desta
categoria um
se
enGuadram volume
todos de
os
problemas
Gue com
necessitam
grande
processamento,
opera%Les geralmente Ceitas em ponto Clutuante, e com poucas exigJncias de entrada e sada!
As estruturas de dados mais comuns s&o as matriFes e arraysB as estruturas de controle mais comuns s&o os la%os de contagem e de sele%Les
Linguagens de programao !
8 +L5%L G> e a maioria de suas descendentes tamb;m se destinam a serem usadas nessa rea, ainda Gue projetadas para outras reas relacionadas
Exemplo: M+TL+B
Para aplica%Les cientCicas cuja eCiciJncia ; altamente prioritria, nenEuma linguagem subseGuente ; signiCicativamente melEor do Gue '%(T(+A
Linguagens de programao
!!
eGuipamentos especiais! A primeira linguagem bem sucedida Coi o )%B%L <em ,'R+=!
Linguagens de programao
!"
Linguagens de programao
!#
Linguagens de programao
!$
manipulados nomes e n&o nSmeros=B A primeira linguagem desenvolvida para 0A Coi a Cuncional $0SP <,'Q'=! Do incio de 5+ surge a programa%&o lgica: P 8$8-!
Linguagens de programao
!%
@evem oCerecer execu%&o rpida e ter recursos de baixo nvel Gue permitam ao soCtHare CaFer interCace com os dispositivos externos!
Linguagem de Programao: orientada a soCtHare bsico, para execu%&o rpida, com recursos de baixo nvel!
Linguagens de programao
!&
Linguagens de programao
!'
inteiramente em # <tornando-o Ccil de portar para diCerentes mGuinas=! $ing! # pode ser considerada Vbaixo nvelW, com execu%&o eCiciente e leve!
Linguagens de programao
"(
oCerecer
recursos
computa%&o
Linguagens de programao
"
Linguagens de programao
"!
Aplica%&o: linguagens de script s&o muito usadas para implementar #-0s <Common Gateway Interfaces=, para criar pginas dinKmicas de "eb!
Linguagens de programao ""
H! )apacidade de Escrita
;! )onfiabilidade
I! )usto
Linguagens de programao "#
Linguagens de programao
"$
A legibilidade deve ser considerada no contexto do domnio do problema <Ex! um programa escrito em uma linguagem n&o apropriada se mostra antinatural e VenroladoW, diCcil de ser lido=
Linguagens de programao "%
Linguagens de programao
"&
componentes bsicos mais difcil de ser manipulada do que uma com poucos desses componentes.
8s programadores Gue precisam usar uma linguagem grande tendem a aprender um subconjunto dela e ignorar seus outros recursos!
Linguagens de programao
"'
ocasionar problemas Guando o leitor do programa aprende um conjunto diCerente de recursos daGuele Gue o autor aplicou em seu programa!
Linguagens de programao
#(
instru%Les
necessrio o uso de mais cdigos para expressar problemas do Gue os necessrio em linguagens de alto nvel!
Linguagens de programao #!
Linguagens de programao
#"
#ontra exemplo: n&o permitir Gue um array seja usado como parKmetro de um procedimento
Linguagens de programao ##
Linguagens de programao
#%
Linguagens de programao
#&
Ex:
estringir instru%Les goto das seguintes maneiras pode tornar os programas mais legveis:
Elas devem preceder seus alvos, exceto Guando usadas para Cormar la%osB Seus alvos nunca devem estar t&o distantesB Seu nSmero deve ser limitado!
Linguagens de programao
#'
HEile
do!!!HEile
repeat!!!until
Cor!!next
$(
Linguagens de programao
Ex: supLe-se Gue um tipo num;rico seja usado para um sinaliFador porGue n&o E nenEum tipo booleano na linguagem:
2erminou3true
$1
E3:
8 Pascal exige pares de begin<end para Cormar grupos em todas as constru%Les de controle <exceto repeat=, a linguagem # usa cEaves!
Linguagens de programao $!
8 98 TAD '+ e o A@A tornam isso mais claro, usando uma sintaxe de CecEamento distinta para cada tipo de grupo de instru%&o! <if...end if / loop...end loop=
Linguagens de programao
$"
problema-alvo da linguagem!
Linguagens de programao
$#
)rit2rios de avaliao de linguagens *= #apacidadePdePescrita *!,= Simplicidade e 8rtogonalidade *!*= Suporte para Abstra%&o *!Y= Expressividade
Linguagens de programao
$%
Pode acarretar o uso incorreto de alguns recursos e uma utiliFa%&o escassa de outros Gue podem ser mais elegantes ou eCicientes do Gue os usados
Linguagens de programao
$&
uso
de
subprogramas
<algoritmo
de
(Java)
BufferedReader teclado; String linea; teclado = new BufferedReader( new InputStreamReader(System.in) ); linea = teclado.readLine();
(Pascal)
linha: string[20] readln(linha)
Linguagens de programao
%(
Linguagens de programao
%1
)rit2rios de avaliao de linguagens Y= #onCiabilidade Y!,= 6eriCica%&o de Tipos Y!*= 3anipula%&o de Exce%Les Y!Y=
liasing <apelidos=
Linguagens de programao
Linguagens de programao
%!
em
#\\
%#
Y!Y=
para
liasing <apelido=
CaFer reCerJncia Z mesma c;lula de
memria! Exemplos em #
char i=`x`; char *p; p=&i; *p=`z`; union reg { long i; float f; }r; ... r.f=1000;
Ponteiros
Linguagens de programao
Union
%$
Im programa escrito em uma linguagem Gue n&o suporta maneiras naturais usar de expressar os algoritmos corretas!
Linguagens de programao %%
exigidos
necessariamente
Programas
de
difCcil
leitura
complicam
Linguagens de programao
%&
V8 custo Cinal de uma linguagem de programa%&o ; uma Cun%&o de muitas de suas caractersticasW
Linguagens de programao
%'
ortogonalidade
Linguagens de programao
&(
>!*= #usto da escrita 8s esCor%os originais para projetar e implementar linguagens de alto nvel Coram motivados pelos desejos de
Linguagens de programao
&1
>!Y= Sistema de implementa%&o $P cujo sistema de implementa%&o seja caro, ou caro, rode ter somente muito em
EardHare
menos
>!>= Projeto da linguagem Se uma $P exigir muitas veriCica%Les de tipos durante a execu%&o, proibir a execu%&o rpida do cdigo!
Linguagens de programao
&!
compiladores
Linguagens de programao
&"
soCtHare e a%Les judiciais! >!5= 3anuten%&o @epende principalmente da legibilidade! 8 custo de manuten%&o pode atingir de duas a Guatro veFes o custo de desenvolvimento!
Linguagens de programao &#
0mplementa%&o
@isponibilidade Guanto Z plataCorma Efici-ncia: velocidade de execu%&o do programa objeto
Linguagens de programao
&$
#ompetJncia na $P
ExperiJncia do programador #ompetJncia do grupo envolvido
Portabilidade
Decessidade mGuinas
Linguagens de programao &%
de
executar
em
vrias
SemKntica
Aplica%&o U 9acilidades Por exemplo, para processamento concorrente pode-se usar A@A, para utiliFa%&o de recursividade pode-se usar Pascal!
Linguagens de programao &&
3odelo de computa%&o
Aplica%&o " modelo de computa%&o Por exemplo, para realiFa%&o de busca Eeurstica ; adeGuado o Paradigma $gico, para simula%Les, o Paradigma 8rientado a 8bjeto
Linguagens de programao &'
E3ercCcio
PesGuise sobre as $P citadas abaixo! 3ostre seu Eistrico, caractersticas, importKncia, estrutura, versLes e classiCica%&o <nvel, gera%&o e paradigma=! 0nsira exemplos de cdigo-Conte no relatrio!
Algol, Pascal, 9ortran Basic, #obol, Prolog P$/0, 3umps, #lipper 1ava, AssemblX
PesGuise sobre linguagens desenvolvidas no Brasil 9aFer um relatrio <Hord ou GualGuer outro= e gerar P@9 -rupo de at; > pessoas @ata limite: ,Y/+Y
Linguagens de programao
'(