PDF de programación - Capítulo 6. Asociaciones y Declaraciones

Imágen de pdf Capítulo 6. Asociaciones y Declaraciones

Capítulo 6. Asociaciones y Declaracionesgráfica de visualizaciones

Publicado el 11 de Abril del 2018
379 visualizaciones desde el 11 de Abril del 2018
236,6 KB
26 paginas
Creado hace 12a (07/11/2011)
Capítulo6. AsociacionesyDeclaraciones.

LenguajesdeProgramación
CarlosUreñaAlmagro
Curso2011-12

Contents
1 Asociaciones,entornosyámbitos
2 Declaracionesydefiniciones
3 Definicionesdevalores,tiposyvariables
4 DeclaracionesSimples
.
.
.
.
.
.
.
4.1 Declaracionesdetipos.
4.2 Declaracionesdevariables .
.
.
.
.
5 Declaracionescompuestas
.
.
.
.
.
.
.
5.1 Composiciónsecuencial
5.2 Composicióncolateral
.
.
.
.
.
.
.
6 Declaracionesrecursivas

.
.
.
.

.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

2
6
7
14
14
17
21
21
21
22

1

1 ASOCIACIONES,ENTORNOSYÁMBITOS

1 Asociaciones,entornosyámbitos
Elconceptodeasociación
Unaasociaciónesunarelaciónestablecidaentreunidentificadoryunaentidadenunprograma.
(laentidadpuedeser: unvalor,unavariable,unasentencia,unsubprograma,untipooclase,unaexcepción,
unmóduloodeclaración,unadeclaracióngenérica,unahebraotarea,etc...)
Significadoeinterpretación
• Siexisteunaasociaciónentreunidentificador idyunaentidad e,decimosque:
– ideselnombrede e
– eeselsignificadode id
• Alprocesodeencontrarlaentidadqueconstituyeelsignificadodeunidentificadordadoseledenomina
interpretacióndelidentificador.
Asociaciones: Aliasingysobrecarga
• Enalgunoscasos,unaentidadpuedetenermásdeunnombre(estosedenominaaliasing,ysedice
queelnombrenuevoesunaliasdeloriginal).
• Enalgunoscasosunidentificadortenermásdeunsignificado,aestosedenominasobrecarga.
• Cuando hay sobrecarga, la selección del significado de una aparición del identificador se realiza
teniendoencuentaelcontextodedichaaparición. Porahorasupondremosqueestonoocurre.
Elconceptodeentorno
• Unentornoesunconjuntodeasociacionesquerelacionanunaovariasentidadesconunoovarios
identificadores.
• Enentornosdistintos,unidentificadorpuedetenersignificadosdistintososimilares
Entornosdelaspartesdeunprograma
• Enunprogramadado, cadasentencia(cadavezqueseejecuta)ycadaexpresión(cadavezquese
evalúa)tienenasociadounentorno
• El entorno de una sentencia o expresión indica que identificadores se pueden usar en ella y que
significadotienen.

2

1 ASOCIACIONES,ENTORNOSYÁMBITOS

Entornosdelaspartesdeunprograma
Elentornodeunasentenciaoexpresiónesposiblementedistintoen:
• distintasejecucionesdelprograma
• distintasejecucionesdeunasentencia
• distintasevaluacionesdelaexpresión
Esquemasdeasociación
Haydosformasposiblesdeentenderlasasociaciones:
• Esquemadeasociacióndinámica
• Esquemadeasociaciónestática
Cadaunaserefiereaunaformadeinterpretarlosidentificadoreslibresenelcuerpodeunsubprograma.
Asociaciónestática
Losidentificadoreslibresdeunsubprogramaseinterpretanenelentornodeladeclaracióndedichosub-
programa
Normalmente,laasociaciónestáticaimplicaquelainterpretacióndelosidentificadoressehaceentiempo
decompilación.
Asociacióndinámica
Losidentificadoreslibresdeunsubprogramaseinterpretanenelentornodelallamadaadichosubprograma
Normalmente,laasociacióndinámicaimplicaquelainterpretacióndelosidentificadoressehaceentiempo
deejecución.
Característicasdelaasociaciónestática:
• LaasociaciónestáticaeslaqueseusaenlenguajescomoPascal,Ada,C/C++,JavayC#.
• Elentornodecadasentenciaoexpresióndeunprogramaesigualentodaslasejecucionesoevalua-
ciones,ypuedeserconocidosinejecutarlo.
• Sueledarseenlenguajesqueasignanuntipoúnicoavariablesyexpresiones.

3

1 ASOCIACIONES,ENTORNOSYÁMBITOS

libre
; }
; }

; } # ’x’
; escribex()
; escribex()
; # x de tipo entero en ’escribex’
; # x de tipo cadena en ’escribex’

Característicasdelaasociacióndinámica:
• LaasociacióndinámicaseusaenlenguajescomoPerl,PHP,TCLoPython
• Elentornodeunasentenciaoexpresióndeunprogramapuedevariarentreejecucionesoevaluaciones
(solosepuedeconoceralejecutarelprograma)
• Sueledarseenlenguajesquenoasignanuntipoúnicoavariablesoexpresiones.
EjemplodeasociacióndinámicaenPerl
Esteprogramaescribe"1234"y"hola",nótesecomodentrodelsubprograma escribex,elsignificadodel
identificador xseencuentraenelentornodelallamadaa escribex
sub escribex { print $x,"\n"
sub uno { local $x = 1234
sub dos { local $x = "hola"
uno()
dos()
EjemplodeasociaciónestáticaenC++
Esteprogramaescribe"hola",dosveces. Enestecasoelsignificadode xdentrode escribexseencuenta
enelentornodeladeclaraciónde escribex
char ∗ x = "hola"
void escribex { cout << x
; }
libre en ’escribex’
x = 1234 ; escribex()
void uno() { int
void dos() { char x = ’h’
; escribex()
; }
; dos()
int main() { uno()
Ámbitodeunaasociación
Supongamosunaasociaciónentreunidentificador idyunaentidad equeeselsignificadodelidentificador.
Elámbitodeunaasociaciónenunprogramasonlaspartesdeltextodelprogramatalesqueenellas,una
apariciónde idpuedeinterpretarsecomounareferenciaa e

; }
; }

;

//

’x’

4

1 ASOCIACIONES,ENTORNOSYÁMBITOS
Ámbitoestáticooámbitoléxico
Si el ámbito de una asociación se conoce a priori, y no varía entre ejecuciones, entonces se dice que la
asociacióntieneámbitoestáticooámbitoléxico.
Esteeselcasodetodaslasasociacionesenlenguajesconasociaciónestática.
Ámbitodinámico
Sielámbitodeunaasociaciónnosepuedeconocerapriori,yaquepuedevariarentreejecuciones,entonces
sedicequelaasociacióntieneámbitodinámico
Estosolopuedeocurrirenlenguajesconasociacióndinámica.
Ámbitosanidados
Enprogramaciónestructuradaesposiblequeesténanidadoslosámbitosdedosasociacionesdeunmismo
identificador:
x = 2 ;
int
void uno()
{ int
x = 1 ;
;
cout << x
}void dos()
{ cout << x
;
}
EjemplodeámbitodinámicoenPerl
• Elcuerpode escribexpertenecealámbitodelasdosasociacionesdelavariable x.
• Elentornode print $xesdistintoencadaunadelastresejecucionesdeestainstrucción
sub escribex { print $x,"\n"
sub uno { local $x = 1234
sub dos { local $x = "hola"
; }
sub tres { escribex()
uno()
tres()
;

x = 2 ;
int
{
x = 1 ;
int
cout << x
;
}cout << x
;

; dos()

; } # ’x’
; escribex()
; escribex()

libre
; }
; }

;

{

}

5

libre
; }
; }

EjemplodeámbitoestáticoenC++
• Laprimeraasociaciónde xtienecomoámbitotodoelprogramaexceptoloscuerposde unoy dos
• Lasegundayterceraasociacionesdextienencomoámbitoloscuerposdeunoydos,respectivamente.
char ∗ x = "hola"
;
void escribex() { cout << x
’x’
; } //
x = 1234 ; escribex()
void uno { int
void dos { char x = ’h’
; escribex()
int main() { uno()
; dos()
; }
2 Declaracionesydefiniciones
Elconceptodedeclaración
Unadeclaraciónesuntrozodeltextodeunprogramacuyafinalidades:
• Crearunaovariasasociaciones,indicandoelidentificadorylaentidadinvolucradaencadaunade
dichasasociaciones.
• Además,enalgunoscasos,crearalgunasotodaslasentidadesinvolucradasendichasasociaciones.
Elaboracióndedeclaraciones
• Lasasociaciones(yposiblementelasentidades)secrean,durantelaejecucióndelprograma,cuando
seelaboraladeclaraciónquelascrea.
• La elaboración de una declaración es un conjunto de acciones (que pueden afectar al estado de
ejecucióndelprograma)quetienenlugarcadavezqueelflujodecontrolentraensuámbito.
Elaboracióndedeclaraciones:
• Las elaboraciones de declaraciones pueden fallar si falla la ejecución (explícita o implicita) de las
sentenciasoaccionesasociadasalaelaboración.
• Laselaboracionestienenlugarenunestadodeejecucióndeterminado,quedependedellenguaje,el
tipodedeclaraciónyellugardondeaparecelamismaenelprograma.

2 DECLARACIONESYDEFINICIONES

6

3 DEFINICIONESDEVALORES,TIPOSYVARIABLES

Elconceptodedefinición
Unadefiniciónesuntipodedeclaraciónquenocreanuevasentidades
Unadefiniciónsoloproduceasociacionesnuevasparaentidadesqueyaexistenenelmomentodelaelabo-
racióndeladefinición.
Ámbitodelasdeclaraciones
Elámbitodeunadeclaracióneselámbitodelasasociacionesquecrea
(porahorasupondremosquetodaslasasociacionesproducidasenunadeclaracióntienenelmismoámbito)
3 Definicionesdevalores,tiposyvariables
Definiciones
Enestasecciónveremoslasdefinicionesmásbásicasdelosdistintoslenguajesdeprogramación:
• Definicionesdevalores: darunnombrenuevoaunvalor(constantes)
• Definicionesdetipos: darunnombrenuevoauntipoyaexistente
• Definicionesdevariables: darunnombrenuevoaunavariableyadeclarada
Definicionesdevalores
Unadefinicióndeunvaloresunadeclaracióncuyoefectoescrearunaasociaciónentreunidentificadory
unvalor(deuntipodeterminado). Selessuelellamartambiéndefinicionesdeconstantes.
(enelámbitodeestadefinicióndeunvalor,laaparicióndelidentificadoresequivalentealaaparicióndel
valorasociadoalmismo)
Elementosdelasdefinicionesdevalores
Enunadefinicióndeunvalorsedebenincluir:
• Elidentificador(id)queconstituyeelnuevonombredelvalor
• Undescriptordeltipodelvalorinvolucrado(nosiempreseincluye,sinoaparecesetomaeltipode
laexpresión,siapareceeltipoes T).
• Unaexpresióndeltipo T,talque,alevaluarse,produceelvalorasociadoalnuevonombre.

7

3 DEFINICIONESDEVALORES,TIPOSYVARIABLES

Elaboracióndedefinicionesdevalores
Cuandoseelaboraunadefinición,sedanestospasos:
1. Seevalúalaexpresiónenelestadodeejecuciónexistenteenelmomentodelaelaboración. Siesta
evaluaciónfalla,laelaboraciónfalla,encasocontrarioseobtieneunvalor v(detipo T).
2. Sinofalla,seasociaelidentificador idalvalorresultadodelaevaluación.
3. Dentrodelámbitodeladefinición,cualquieraparicióndelidentificadorconstituyeunaexpresiónde
tipo T,cuyaevaluaciónproduce v
Elaboracióndedefinicionesdevalores.
Haydossituacionesposibles:
1. Elvaloresfijoentodaslasejecucionesypuedeserconocidosinejecutarelprograma,yaque:

• nodependedelestadodeejecución(obien)
• dependedelestadodeejecución,perosepuededeterminaraprioricualseráelresultadodela
evaluación
• dependedelestadodeejecución,(y)
• dichoestadonoescalculablesinejecutarelprograma.

2. Elvalorvaríaentreelaboraciones,ynopuedeserconocidoapriori,yaque:

Implementacióndelaelaboración
Laimplementaciónsepuedeenfuncióndeenquecasodelosdosanterioresestemos:
1. Enelprimercaso,esposible,alprocesarelprograma,obtenerelvaloryusarloenloslugaresdonde
aparezcaelidentificador(sustituyéndolo).
2. En el segundo caso, al elaborar la definición es necesario crear una nueva variable, anónima, no
modificable,queocupamemoria,yqueseinicializaalvalorresultadodeevaluarlaexpresión
DefinicionesdevaloresenPascal
EnPascal, laexpresióndebeserunliteraldelos
  • Links de descarga
http://lwp-l.com/pdf10339

Comentarios de: Capítulo 6. Asociaciones y Declaraciones (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad