Sie sind auf Seite 1von 90

Linguagens de Programao

Aula 1

Celso Olivete Jnior


olivete@fct.unesp.br

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!

Exame: toda a mat;ria


Linguagens de programao $

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

natureFa n&o estruturada= e a precis&o reGuerida mGuina! para o processamento pela

$P
Linguagens de programao 11

%b&etivos de uma LP
Auxiliar o programador no processo de

desenvolvimento de soCtHare! 0sso inclui auxlio no:


Projeto 0mplementa%&o Teste 6eriCica%&o e 3anuten%&o do soCtHare
Linguagens de programao 1

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

#mperativo, dos Guatro

%rientado a %b&eto, 'uncional e Lgico= de $P correspondem pontos componentes citados!


A eCiciJncia na constru%&o e execu%&o de programas depende da combina%&o dos Guatro pontos 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

algoritmo expresso em outra linguagem, dita linguagem ob&eto.


Linguagens de programao 1#

1efinio

Linguagens de programao

1$

(aB,es para estudar os conceitos de LP


Aumento da capacidade de expressar ideias 3aior conEecimento para escolEa de linguagens apropriadas Entender melEor a importKncia da implementa%&o 3aior capacidade para aprender novas linguagens Aumento linguagens Avan%o global da comunica%&o da capacidade de projetar novas

Linguagens de programao

1%

(aB,es para estudar os conceitos de LP


+umento da capacidade de e3pressar ideias

#apacidade intelectual pode ser inCluenciada pelo poder expressivo da linguagem

Ima maior compreens&o de uma $P pode aumentar nossa Eabilidade em pensar em como atacar os problemas!

Linguagens de programao

1&

(aB,es para estudar os conceitos de LP


+umento da capacidade de e3pressar ideias
#onEecimento amplo dos recursos de linguagem reduF as limita%Les no desenvolvimento de soCtHares

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

ecursos ou Cacilidades podem ser simulados


Linguagens de programao 1'

(aB,es para estudar os conceitos de LP


Maior con6ecimento para escol6a de

linguagens apropriadas
EscolEer a melEor linguagem para um problema

especCico devido ao conEecimento de novos recursos ; diCcil para:


Programadores antigos @esenvolvedores sem educa%&o Cormal

Linguagens de programao

(aB,es para estudar os conceitos de LP


Entender mel6or a import0ncia da

implementao:

$eva um entendimento do P%(4DE das linguagens serem projetadas de determinada maneira!

3elEora as escolEas Gue podemos CaFer entre as constru%Les de $P e as conseGuJncias das op%Les!

Linguagens de programao

(aB,es para estudar os conceitos de LP


Maior capacidade para aprender novas

linguagens:

AprendiFado contnuo ; Cundamental, a computa%&o ; uma ciJncia nova

#ompreender os conceitos gerais das linguagens torna mais Ccil entender como eles s&o incorporados na linguagem Gue est sendo aprendida!
Linguagens de programao

(aB,es para estudar os conceitos de LP


+umento da capacidade de pro&etar novas linguagens:

Ajuda no desenvolvimento de sistemas complexos

Linguagens de programao

(aB,es para estudar os conceitos de LP


+umento da capacidade de pro&etar novas linguagens:

0ndicador

de

popularidade

das

$P

Tiobe

FFF.tiobe.com!

Linguagens de programao

"

(aB,es para estudar os conceitos de LP

Linguagens de programao

(aB,es para estudar os conceitos de LP

Linguagens de programao

(aB,es para estudar os conceitos de LP


+vano global da comunicao:

Dem

sempre

as

linguagens

mais

populares

s&o

melEores, por GuJM


#mposioNN

Por Gue existem vrias linguagens de programa%&oM


esolu%&o especCica de problemas

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

e)pressiva* eficiente* +,-s

desenvolvedores

aplicaes

Linguagens de programao

!1

1omCnios de programao aplica%LesPcientCicas


0ncio: d;cada de >+!

9oco: eCiciJncia (assembly).

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 !

1omCnios de programao aplica%LesPcientCicas


As aplica%Les cientCicas incentivaram a cria%&o de algumas linguagens de alto nvel, como por exemplo o '%(T(+A

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

!!

1omCnios de programao aplica%LesPcomerciais


0niciou-se na d;cada de Q+! 'oco: produ%&o de relatrios elaborados! 0mpulsionou o desenvolvimento de

eGuipamentos especiais! A primeira linguagem bem sucedida Coi o )%B%L <em ,'R+=!

Linguagens de programao

!"

1omCnios de programao aplica%LesPcomerciais


As linguagens comerciais se caracteriFam pela Cacilidade de elaborar relatrios e armaFenar nSmeros decimais e dados de caracteres! #om o advento dos microcomputadores surgiram as planilEas e os sistemas de banco de dados amplamente utiliFados Eoje em dia! E3emplos: PlanilEas eletrTnicas e Sistemas -erenciadores de Banco de @ados!

Linguagens de programao

!#

1omCnios de programao inteligJnciaPartiCicial


0ncio: Cim da d;cada de Q+ 9oco: manipula%&o Clexvel de inCorma%Les, mesmo com pouca eCiciJncia, em muitos casos!
Exemplo: classiCica%&o de padrLes <reconEecimento da placa de veculos=

Estruturas de dados: listas encadeadas de dados <em oposi%&o a arrays=!

Linguagens de programao

!$

1omCnios de programao inteligJnciaPartiCicial


#aracteriFam-se simblicas em pelo veF uso de de computa%Les <s&o num;ricas

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

!%

1omCnios de programao programa%&o dePsistemas


@enominados /oftFare bsico <S8, utilitrios=, devem possuir eCiciJncia na execu%&o por propiciar suporte a execu%&o de outros aplicativos!

@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

!&

1omCnios de programao programa%&o dePsistemas

Linguagens de programao

!'

1omCnios de programao programa%&o dePsistemas


8 sistema operacional ID0U Coi desenvolvido Guase

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

"(

1omCnios de programao propsitosPespeciais


Se distinguem por serem de criadas para para

oCerecer

recursos

computa%&o

EardHares de uso especCico! <tornos #D#, calculadoras .P, etc!=

Exemplos de linguagem de uso especCico: P<relatrios comerciais=, -PSS <simula%&o de sistemas=!


Linguagens de programao "1

1omCnios de programao linguagensPdePscripts


0ncio: d;cada de 4+! Script ? lista de comandos em arGuivo Execu%&o do arGuivo para, p!ex!, exercer Cun%Les utilitrias do sistema, tais como bloGuear uma seGuJncia de endere%os 0P em uma determinada rede!

Linguagens de programao

"

1omCnios de programao linguagensPdePscripts


Aestas linguagens ; assumida a existJncia de um conjunto de componentes j desenvolvidos em outras linguagens, de Corma Gue o objetivo destas linguagens passa a ser combinar componentes e n&o desenvolver programas a partir de estruturas de dados elementares!

Linguagens de programao

"!

1omCnios de programao linguagensPdePscripts


$inguagens de script modernas <Perl, Tcl/T) e PXtEon= suportam:
3anipula%&o textual simples para interpreta%&o das entradas do usurioB 0nterCaceamento com soCtHare j existenteB Acesso a sistemas operacionais, por meio de variveis de ambiente e cEamadas ao sistema!

Aplica%&o: linguagens de script s&o muito usadas para implementar #-0s <Common Gateway Interfaces=, para criar pginas dinKmicas de "eb!
Linguagens de programao ""

)rit2rios de avaliao de linguagens


=! Legibilidade

H! )apacidade de Escrita

;! )onfiabilidade

I! )usto
Linguagens de programao "#

)rit2rios de avaliao de linguagens ,= $egibilidade


Im dos crit;rios mais importantes para julgar uma LP ; a Cacilidade com Gue os programas s&o lidos e entendidos Antes de 5+: pensado em termos de escrita de cdigo!
Principais caractersticas: efici-ncia e legibilidade de mGuina! $P Coram projetadas mais do ponto de vista do computador do Gue do usurio

Da d;cada de 5+ Coi desenvolvido o conceito de ciclo de vida de soCtHare manuten%&o

Linguagens de programao

"$

)rit2rios de avaliao de linguagens ,= $egibilidade


A Cacilidade de manuten%&o ; determinada em grande parte, pela legibilidade dos programas, ela se tornou uma medida importante da Gualidade dos programas e das linguagens

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 "%

)rit2rios de avaliao de linguagens ,= $egibilidade


,!,= Simplicidade -eral ,!*= 8rtogonalidade ,!Y= 0nstru%Les de #ontrole ,!>= Tipos de @ados e estruturas ,!Q= #onsidera%Les sobre sintaxe

Linguagens de programao

"&

)rit2rios de avaliao de linguagens ,= $egibilidade


,!,= Simplicidade geral A simplicidade geral de uma $P aCeta Cortemente sua legibilidade Uma linguagem com um grande nmero de

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

"'

)rit2rios de avaliao de linguagens ,= $egibilidade


,!,= Simplicidade geral Esse padr&o de aprendiFagem pode

ocasionar problemas Guando o leitor do programa aprende um conjunto diCerente de recursos daGuele Gue o autor aplicou em seu programa!

Linguagens de programao

#(

)rit2rios de avaliao de linguagens ,= $egibilidade


,!,= Simplicidade geral
Ima segunda caracterstica Gue complica a legibilidade ; a multiplicidade de recursos <mais Gue uma maneira de realiFar uma opera%&o particular=

i7i:= i:7= i:: ::i


Linguagens de programao #1

.esmo significado /uando usadas em e)press0es separadas11

)rit2rios de avaliao de linguagens ,= $egibilidade


,!,= Simplicidade geral Im terceiro problema ; a sobrecarga de operadores, na Gual um Snico smbolo tem mais Gue um signiCicado!
Apesar de ser um recurso Stil, pode ser prejudicial a legibilidade se Cor permitido aos usurios criar suas prprias sobrecargas!
E3: sobrecarregar o : para adicionar inteiros$ reais$ concatenar strings$ somar vetores...
Linguagens de programao #

)rit2rios de avaliao de linguagens ,= $egibilidade


,!,= Simplicidade geral
A simplicidade de linguagens, no entanto pode ser levada ao extremo, por exemplo a Corma e o signiCicado da maioria das instru%Les em ssembly

s&o modelos de simplicidade, entretanto torna os programas em


9alta

ssembly menos legveis!


de controle mais complexas, torna

instru%Les

necessrio o uso de mais cdigos para expressar problemas do Gue os necessrio em linguagens de alto nvel!
Linguagens de programao #!

)rit2rios de avaliao de linguagens ,= $egibilidade

Linguagens de programao

#"

)rit2rios de avaliao de linguagens ,= $egibilidade


,!*= 8rtogonalidade
Possibilidade de combinar entre si, sem restri%Les, os componentes bsicos da LP!

Exemplo: permitir combina%Les de estruturas de dados, como arrays de registros

#ontra exemplo: n&o permitir Gue um array seja usado como parKmetro de um procedimento
Linguagens de programao ##

)rit2rios de avaliao de linguagens ,= $egibilidade


,!*= 8rtogonalidade - Exemplos
9alta de ortogonalidade em #:
A linguagem # possui dois tipos de dados estruturados: arraXs e registros <struct=, sendo Gue :
registros podem ser retornados de Cun%Les, arrays n&o! um membro de estrutura pode ser GualGuer tipo de dado, exceto !oid ou uma estrutura do mesmo tipo! um elemento de array pode ser GualGuer tipo de dado, exceto !oid ou uma Cun%&o! ParKmetros s&o passados por valor, a menos Gue sejam arrays A Gue obrigatoriamente s&o passados por reCerJncia! Linguagens de programao #$

)rit2rios de avaliao de linguagens ,= $egibilidade


,!*= 8rtogonalidade - Exemplos
9alta de ortogonalidade # A + B
6alores de A e B s&o obtidos e adicionados juntos Se A Cor um ponteiro aCeta o valor de B
/e + aponta para um valor de ponto flutuante @ue ocupa I bJtes$ o valor de B deve ser ampliado adicionado a +
Logo o tipo de + afeta o tratamento do valor de B % conte3to de B afeta seu significado

multiplicado por I! antes @ue se&a

Linguagens de programao

#%

)rit2rios de avaliao de linguagens ,= $egibilidade


,!Y= 0nstru%Les de controle
A revolu%&o da programa%&o estruturada da d;cada de 5+ Coi, em parte, uma rea%&o Z m legibilidade causada pelas limitadas instru%Les de controle das linguagens das d;cadas de Q+ e R+!

Linguagens de programao

#&

)rit2rios de avaliao de linguagens ,= $egibilidade


,!Y= 0nstru%Les de controle
Iso indiscriminado de goto!
Em certas linguagens, entretanto, instru%Les goto Gue se ramiCicam para cima, Zs veFes, s&o necessriasB

Ex:

elas constroem la%os while em 98 T AD 55!

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

#'

)rit2rios de avaliao de linguagens ,= $egibilidade


,!Y= 0nstru%Les de controle
A partir do Cinal de R+, as linguagens projetadas passaram a ter instru%Les de controle suCicientes e portanto a necessidade da instru%&o goto Coi Guase eliminada!
8 projeto da estrutura de controle de uma linguagem ; agora um Cator menos importante na legibilidade do Gue no passado!

HEile

do!!!HEile

repeat!!!until

Cor!!next
$(

Linguagens de programao

)rit2rios de avaliao de linguagens ,= $egibilidade


,!>= Tipos de dados e estruturas
A presen%a de Cacilidades adeGuadas para deCinir tipos de dados e estruturas de dados em uma linguagem ; outro auxlio signiCicativo para a legibilidade!

Ex: supLe-se Gue um tipo num;rico seja usado para um sinaliFador porGue n&o E nenEum tipo booleano na linguagem:

2erminou31* no 4 to claro como


Linguagens de programao

2erminou3true
$1

)rit2rios de avaliao de linguagens ,= $egibilidade


,!Q= #onsidera%Les sobre sintaxe
A sintaxe ou a Corma dos elementos de uma linguagem tem um eCeito signiCicativo sobre a legibilidade dos programas! Exemplos de op%Les de projeto sinttico Gue aCetam a legibilidade :
'ormas identificadoras.
estringir os identiCicadores a tamanEos muitos peGuenos prejudica a legibilidade! TamanEos de identiCicadores muito peGuenos impedem as veFes de nomear variveis com nomes conotativos! letra ou uma letra e um nKmero!
Linguagens de programao $

E3:

'%(T(+A 99$ m3imo G caracteres" B+/#) +A/#$ uma

)rit2rios de avaliao de linguagens ,= $egibilidade


,!Q= #onsidera%Les sobre sintaxe
Palavras especiais!
A aparJncia de um programa e sua conseGuente legibilidade s&o Cortemente inCluenciadas pelas Cormas das palavras especiais de uma linguagem end e for!. e3: begin$

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 $!

)rit2rios de avaliao de linguagens ,= $egibilidade


,!Q= #onsidera%Les sobre sintaxe
Ambas as linguagens soCrem porGue os grupos de instru%Les s&o sempre encerrados da mesma maneira, o Gue torna diCcil determinar Gual grupo est sendo CinaliFado Guando um end ou } aparece

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

$"

)rit2rios de avaliao de linguagens *= #apacidadePdePescritaP<#E=


[ a medida da Cacilidade em Gue uma linguagem pode ser usada para criar programas para um domnio de problema escolEido! A maioria das caractersticas da linguagem Gue aCetam a legibilidade tamb;m aCetam a #E! @eve ser considerada no contexto do domnio de

problema-alvo da linguagem!

Linguagens de programao

$#

)rit2rios de avaliao de linguagens *= #apacidadePdePescritaP<#E=

Construo de uma interface gr5fica


C++ Builder versus Dev C++
Linguagens de programao $$

)rit2rios de avaliao de linguagens *= #apacidadePdePescrita *!,= Simplicidade e 8rtogonalidade *!*= Suporte para Abstra%&o *!Y= Expressividade

Linguagens de programao

$%

)rit2rios de avaliao de linguagens *= #apacidadePdePescrita *!,= Simplicidade e ortogonalidade


Se uma $P tem um grande nSmero de constru%Les, alguns programadores n&o estar&o CamiliariFados com todas!

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

$&

)rit2rios de avaliao de linguagens *= #apacidadePdePescrita

*!*= Suporte para abstra%&o


+bstrao: capacidade de deCinir e, depois usar estruturas ou opera%Les complicadas de uma maneira Gue permita ignorar muito dos detalEes! Exemplo: ordena%&o= Tipos de Abstra%&o:
de Processo: algoritmos de classiCica%&o, elementos de interCace grCica de @ados: tipo moeda, tipo string, tipo data
Linguagens de programao $'

uso

de

subprogramas

<algoritmo

de

)rit2rios de avaliao de linguagens *= #apacidadePdePescrita *!Y= Expressividade


9ormas convenientes de especiCicar computa%Les
Ima express&o representa muitas computa%Les Exemplos:
i\\,PaoPinv;sPdePi?i\, for aoPinv;sPdoPF6ile (eadln doPPascalPaoPinv;sPdePreadLine doP1ava

(Java)
BufferedReader teclado; String linea; teclado = new BufferedReader( new InputStreamReader(System.in) ); linea = teclado.readLine();

(Pascal)
linha: string[20] readln(linha)

Linguagens de programao

%(

)rit2rios de avaliao de linguagens Y= #onCiabilidade

Im programa ; conCivel se ele se comportar de acordo com suas

especiCica%Les sob todas as condi%Les!

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=

Y!>= $egibilidade e Cacilidade de Escrita

Linguagens de programao

)rit2rios de avaliao de linguagens Y= #onCiabilidade


;.=! *erificao de tipos
Testar se existem erros de tipos em determinado algoritmo, ou por meio do compilador ou durante a execu%&o do programa!

A veriCica%&o de tipos durante a compila%&o ; a mais indicada


]uanto antes Cor detectado, menos caro ; CaFer todos os reparos necessriosNN Ex: Lava

A veriCica%&o de tipos em # ; bastante Craca:


int vetMN>O" vetM=>>O7=>.;"

Linguagens de programao

%!

)rit2rios de avaliao de linguagens Y= #onCiabilidade

Y!*= 3anipula%&o de exce%Les #apacidade interceptar de erros um programa tempo de de

em

execu%&o, pTr em prtica medidas corretivas e, depois, prosseguir! Exemplos:


Linguagens de programao %"

)rit2rios de avaliao de linguagens Y= #onCiabilidade

Y!*= 3anipula%&o de exce%Les 1ava


try { ... } catch( Exception e ) { ... } try { ... } catch (Exception &exception) { ...
Linguagens de programao

#\\

%#

)rit2rios de avaliao de linguagens Y= #onCiabilidade

Y!Y=
para

liasing <apelido=
CaFer reCerJncia Z mesma c;lula de

[ ter um ou mais m;todos, ou nomes, distintos

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
%$

)rit2rios de avaliao de linguagens Y= #onCiabilidade


Y!>= $egibilidade e Cacilidade de escrita Tanto a legibilidade como a Cacilidade de escrita inCluenciam a conCiabilidade!

Im programa escrito em uma linguagem Gue n&o suporta maneiras naturais usar de expressar os algoritmos corretas!
Linguagens de programao %%

exigidos

necessariamente

m;todos n&o naturais, menos provveis de serem

)rit2rios de avaliao de linguagens Y= #onCiabilidade

Y!>= $egibilidade e Cacilidade de escrita


]uanto mais Ccil ; escrever um programa, mais probabilidade ele tem de estar correto!

Programas

de

difCcil

leitura

complicam

tamb2m sua escrita e sua modificao.

Linguagens de programao

%&

)rit2rios de avaliao de linguagens >= #usto

V8 custo Cinal de uma linguagem de programa%&o ; uma Cun%&o de muitas de suas caractersticasW

Linguagens de programao

%'

)rit2rios de avaliao de linguagens >= #usto

>!,= Treinamento Em Cun%&o da simplicidade da linguagem e e da da

ortogonalidade

experiJncia dos programadores!

Linguagens de programao

&(

)rit2rios de avaliao de linguagens >= #usto

>!*= #usto da escrita 8s esCor%os originais para projetar e implementar linguagens de alto nvel Coram motivados pelos desejos de

diminuir os custos para criar soCtHare!

Linguagens de programao

&1

)rit2rios de avaliao de linguagens >= #usto

>!Y= Sistema de implementa%&o $P cujo sistema de implementa%&o seja caro, ou caro, rode ter somente muito em

EardHare

menos

cEance de tornar-se popular! Sucesso de 1ava!


Linguagens de programao &

)rit2rios de avaliao de linguagens >= #usto

>!>= 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

&!

)rit2rios de avaliao de linguagens >= #usto

>!Q= #ompila%&o Problema surgimento ameniFado de com o

compiladores

otimiFados e de processadores mais rpidos!

Linguagens de programao

&"

)rit2rios de avaliao de linguagens >= #usto


>!R= 3 conCiabilidade 9alEas podem ocasionar insucesso do

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 &#

'atores @ue influenciam na escol6a de uma LP

0mplementa%&o
@isponibilidade Guanto Z plataCorma Efici-ncia: velocidade de execu%&o do programa objeto

Linguagens de programao

&$

'atores @ue influenciam na escol6a de uma LP

#ompetJncia na $P
ExperiJncia do programador #ompetJncia do grupo envolvido

Portabilidade
Decessidade mGuinas
Linguagens de programao &%

de

executar

em

vrias

'atores @ue influenciam na escol6a de uma LP


Sintaxe
#ertos tipos de aplica%&o acomodam-se melEor em certas sintaxes

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 &&

'atores @ue influenciam na escol6a de uma LP


Ambiente de programa%&o
9erramentas para desenvolvimento de soCtHare diminuem o esCor%o de programa%&o Bibliotecas

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

'(

Das könnte Ihnen auch gefallen