Post on 02-Mar-2018
7/26/2019 Aula Conceitos Linguagens de Programao
1/28
Nomes, Vinculaes, Verifca
Tipos, Escopos e SubprogramPro. Sofa Costa Paia!".!#.$!%#
7/26/2019 Aula Conceitos Linguagens de Programao
2/28
Tpicos da Aula
%.Nomes$.Vinculaes&.Verifcao de Tipos'.Escopo
(.Subprogramas
7/26/2019 Aula Conceitos Linguagens de Programao
3/28
Introduo
Vari)eis*bstrao para uma ou mais c+lulas de memria -armaenam o estado de uma entidade
/Uma vez que o programador tenha entendido o variveis, ele entendeu a essncia da programao0 ECon2unto de propriedadesTipo de dadosNome
7/26/2019 Aula Conceitos Linguagens de Programao
4/28
1.Nomes
Toda 4inguagem de Programao 54P6 possui nom
signifcados pr+7defnidos*tributo undamental das ari)eisTamb+m con8ecido como identifcadorCadeia de caracteres usado para identifcar alguma
programa9:;T;*N< at+ # caracteresC at+ &% caracteres=aa e *da no tem limites de taman8oCaracteres de cone>o so aceit)eis< sublin8ado 5/
7/26/2019 Aula Conceitos Linguagens de Programao
5/28
1.Nomes
1istino entre mai@sculas e min@sculas
C/C++:Adentifcadores 7 letras min@sculas com sublin8adoNomes 7 um ou dois sublin8ados e letra mai@scula
Ada:Vari)eis 7 letras mai@sculas e min@sculas separadas pJava/Javacript:Classes e interaces 7 BpperCamelCase+todos 7 loDerCamelCaseVari)eis 7 loDerCamelCase, no deem comear com subConstantes 7 letras mai@sculas com palaras separadas po
!"t#one $u%": Classes 7 BpperCamelCaseConstantes 7 letras mai@sculas separadas por sublin8ados:utros nomes 7 min@sculas separada por sublin8ados
7/26/2019 Aula Conceitos Linguagens de Programao
6/28
1.Nomes
!alavras especiais:torna o programa mais legFelusadas para nomear aes a serem e>ecutadas ou p
entidades sint)ticas dos programas.Palaras reservadas< no pode ser usada como noPalavras-chave< especial em certos conte>tos. Em
9:;T;*N
7/26/2019 Aula Conceitos Linguagens de Programao
7/28
1.1 &ari'veis
*bstrao de uma c+lula de memriaCaracteriada como um sH>tuplo de atributosNomeEndereoValor
Tipo de dadosTempo de idaEscopo
7/26/2019 Aula Conceitos Linguagens de Programao
8/28
(. &inculao )*indin+,
Vincula um identifcador a uma entidade computaci: momento da inculao + c8amado de tempo de v-eclarao: mecanismo -ue cria uma inculao 5a
entre um identifcador e uma entidadeAm%iente de $eerenciamento: con2unto de inculaTodas as ari)eis isFeis na sentenaPode 8aer no m)>imo uma inculao por identif
um ambienteInicialiao: inculao de uma ari)el a um alo
momento em -ue esta + inculada ao armaenamen
7/26/2019 Aula Conceitos Linguagens de Programao
9/28
(.1 &inculao de Tipos
*ntes de ser reerenciada, uma ari)el precisa serum tipo de dado.Como e -uando dee ocorrer a inculaoI-eclarao e0plcita: instruo -ue lista nomes de
especifca -ue elas so de um tipo particular-eclarao implcita: um meio de associar ari)e
conenes padro em e de por instrues de decl
7/26/2019 Aula Conceitos Linguagens de Programao
10/28
7/26/2019 Aula Conceitos Linguagens de Programao
11/28
(.( &inculao de Armaenamento e Tempo
Tempo de vida: tempo durante o -ual uma ari)ela uma localiao de memria especFfca1iididas em -uatro categoriasecuo do programa&ari'veis din2micas da pil#a: inculadas -uando o cdigo + e>&ari'veis din2micas do monte e0plcitas: c+lulas abstratas alo
liberadas por instrues e>plFcitas em tempo de e>ecuo. E>.< &ari'veis din2micas do monte implcitas: inculadas no monte
so atribuFdos alores a elas.
7/26/2019 Aula Conceitos Linguagens de Programao
12/28
(.( &inculao de Armaenamento e Tempo
Tempo de vida: tempo durante o -ual uma ari)ela uma localiao de memria especFfca1iididas em -uatro categoriasecuo do programa&ari'veis din2micas da pil#a: inculadas -uando o cdigo + e>&ari'veis din2micas do monte e0plcitas: c+lulas abstratas alo
liberadas por instrues e>plFcitas em tempo de e>ecuo. E>.< &ari'veis din2micas do monte implcitas: inculadas no monte
so atribuFdos alores a elas.
7/26/2019 Aula Conceitos Linguagens de Programao
13/28
(.( &inculao de Armaenamento e Tempo
Tempo de vida: tempo durante o -ual uma ari)ela uma localiao de memria especFfca1iididas em -uatro categoriasecuo do programa&ari'veis din2micas da pil#a: inculadas -uando o cdigo + e>&ari'veis din2micas do monte e0plcitas: c+lulas abstratas alo
liberadas por instrues e>plFcitas em tempo de e>ecuo. E>.< &ari'veis din2micas do monte implcitas: inculadas no monte
so atribuFdos alores a elas.
7/26/2019 Aula Conceitos Linguagens de Programao
14/28
3. &erifcao de Tipos
*ssegura -ue os operandos de um operador se2am compatFeisTipo compatvel:)lido para o operador ou com p
para ser conertido pelo compilador 5coero6
4rro de tipo:aplicao de operador a operando imp
Vinculaes est)ticas->erifcao de tipos est)ticaVinculaes dinKmicas->erifcao de tipos dinKm
7/26/2019 Aula Conceitos Linguagens de Programao
15/28
3. &erifcao de Tipos
Tipifcao 5orte: cada nome de programa tem umassociado a ari)el.Permite a deteco de todos os usos e-uiocados d
-ue resultem em erros de tipo
*da + -uase ortemente tipifcada, =aa + similar nen8uma maneira implFcita pela -ual os erros de tpossam ser detectados.CLC++no + ortemente tipifcada< 8) unes cu2
parKmetros no so erifcados -uanto ao tipo
7/26/2019 Aula Conceitos Linguagens de Programao
16/28
3. &erifcao de Tipos
Compati%ilidade de Tipos: dois m+todos dierentesCompatibilidade de nome< duas ari)eis com o m
de tipo.Compatibilidade de estrutura< duas ari)eis tHm
compatFeis se tierem estruturas idHnticas. M mapor+m mais diFcil de implementar
7/26/2019 Aula Conceitos Linguagens de Programao
17/28
6. 4scopo
;egio do programa onde umainculao est) defnida*loco:delimita o escopo das
inculaes
&ari'vel local:declarada em umbloco
&ari'vel no7local:isFel dentro daunidade mas no declaradas nele.
7/26/2019 Aula Conceitos Linguagens de Programao
18/28
6. 4scopo
4scopo est'tico< defnido antes da e>ecuo, o comdetermina o tipo de cada ari)el.4scopo din2mico: baseia7se na se-uHncia de c8ama
subprogramas e no nas relaes espaciais um com
4scopo lo%al: a defnio de algumas ari)eis poaparecer ora das unes 7 C, C++e POP.
7/26/2019 Aula Conceitos Linguagens de Programao
19/28
6.1 4scopo e Tempo de &ida
Conceitos parecem estar relacionadosEscopo< relacionado com o espao de tempo 5espaTempo de ida< perFodo de tempo 5temporal6Asso no ocorre com ari)eis est)ticas 5static6 po
estende por todo o programaConstantes nomeadas:ari)el inculada a um al
uma e.
7/26/2019 Aula Conceitos Linguagens de Programao
20/28
8. u%proramas
Computador criado por abbage em %Q'!< re@so dcartes de instrues, economiando espao de memtempo de codifcaoSubprogramas tem as caracterFsticas< @nico ponto d
7/26/2019 Aula Conceitos Linguagens de Programao
21/28
8. u%proramas
*bstrao de processo< instrues para realiar uma tar1escree a interace e as aes da abstrao deste.C#amada a su%proramas:re-uisio e>plFcita para -ue
e>ecutadoAtivo: aps ser c8amado, comeou sua e>ecuo e aind
terminouCabeal8o< Rtipo?unidade Rnome 5R4ista?de?parPerfl de parKmetros< n@mero, ordem e tipos dos parKmeProtocolo< perfl de parKmetros, tipo de retorno e tipo de
subprograma
7/26/2019 Aula Conceitos Linguagens de Programao
22/28
8. u%proramas
!ar2metros: duas ormas deacessar os dados porsubprogramasemploprogram subalgoritmosar a,b,U < integer6ar au>< integerbeginau> >
7/26/2019 Aula Conceitos Linguagens de Programao
24/28
8. u%proramas
*da e 9ortran ornecem tanto unes -uanto procediment4inguagens baseadas em C< apenas unes.Podem no retornar alor< oid+todos de passagem de parKmetros, int U6 Y return >U I > < UZ
double ma0imo5double >, double U6 Y
return >U I > < UZ
int ma0imo5int >, int U, int D, int 6 Yreturn ma>imo5ma>imo5>,U6,ma>imo5U,66
Z
7/26/2019 Aula Conceitos Linguagens de Programao
28/28
Nomes, Vinculaes, Verifca
Tipos, Escopos e SubprogramPro. Sofa Costa Paiasofalarissa[gmail.com