1
INSTITUTO TECNOLÓGICO SUPERIOR DE CIUDAD ACUÑA Materia: PROGRAMACIÓN LÓGICA FUNCIONAL
Catedrático: M.I Jose Yahveh Contreras de los reyes
Trabajo: Unidad 2 Alumno: Ivan Alredo Go!e" Mende" Carrera: In#enier$a en siste!as %o!&'ta%ionales Semestre: (II Turno: Mat'tino
2 )* MAR+O 2,- Carretera a Presa La Amistad Km 9, Cd. Acuña, Coah., C.P. 26220 Apartado Postal No. 666, Tel Tel (8! " #8 00, $a% $a% (8! " #8 0#
2
INSTITUTO TECNOLÓGICO SUPERIOR DE CIUDAD ACUÑA
Contenido Unidad II: Programación Funcional.................................................................................3 .!. Ti"o de datos........................................................................................................../ .. Funciones................................................................................................................0 .3. Inter#alos.................................................................................................................1 .$. %"eradores.............................................................................................................. .&. A"licaciones de las listas....................................................................................... .'. (rboles....................................................................................................................3 Conclusión:..................................................................................................................-, )ibliogra*+a ,eb:..........................................................................................................--
Carretera a Presa La Amistad Km 9, Cd. Acuña, Coah., C.P. 26220 Apartado Postal No. 666, Tel (8! " #8 00, $a% (8! " #8 0#
3
INSTITUTO TECNOLÓGICO SUPERIOR DE CIUDAD ACUÑA Unidad II: Programación Funcional La &ro#ra!a%i4n 'n%ional5 o !e6or di%ho5 los len#'a6es de &ro#ra!a%i4n 'n%ionales5 son a7'ellos len#'a6es donde las varia8les no tienen estado no hay %a!8ios en 9stas a lo lar#o del tie!&o y son in!'ta8les no &'eden %a!8iarse los valores a lo lar#o de la e6e%'%i4n. Ade!:s los &ro#ra!as se estr'%t'ran %o!&oniendo e;&resiones 7'e se eval
as?ell5 OCa!l y =tandard ML5 entre otros. *stos len#'a6es est:n diversidad de ti&ii%a%i4n5 donde se en%'entran len#'a6es din:!i%os5 est:ti%os y est:ti%os 'ertes.
.!. Ti"o de datos *s 'n atri8'to de 'na &arte de los datos 7'e indi%a al ordenador @yo al &ro#ra!adorB al#o so8re la %lase de datos so8re los 7'e se va a &ro%esar. *sto in%l'ye i!&oner restri%%iones en los datos5 %o!o 7'9 valores &'eden to!ar y 7'9 o&era%iones se &'eden reali"ar. i&os de datos %o!'nes sonD enteros5 n
4
INSTITUTO TECNOLÓGICO SUPERIOR DE CIUDAD ACUÑA nor!al!ente %o!8inando !
.. Funciones Los &ro#ra!as es%ritos en 'n len#'a6e 'n%ional est:n %onstit'idos
Funciones de "rimera clase - de orden su"erior F'n%iones de orden s'&erior son 'n%iones 7'e &'eden to!ar otras 'n%iones %o!o ar#'!entos o devolverlos %o!o res'ltados. *n %:l%'lo5 'n e6e!&lo de 'na 'n%i4n de orden s'&erior es el o&erador dieren%ial d d;5 7'e dev'elve la derivada de 'na 'n%i4n . Las 'n%iones de orden s'&erior est:n estre%ha!ente rela%ionadas %on las 'n%iones de &ri!era %lase en las %'ales las 'n%iones de orden s'&erior y Carretera a Presa La Amistad Km 9, Cd. Acuña, Coah., C.P. 26220 Apartado Postal No. 666, Tel (8! " #8 00, $a% (8! " #8 0#
5
INSTITUTO TECNOLÓGICO SUPERIOR DE CIUDAD ACUÑA las 'n%iones de &ri!era %lase &'eden re%i8ir %o!o ar#'!entos y res'ltados otras 'n%iones. La distin%i4n entre los dos es s'tilD Ede orden s'&eriorE5 des%ri8e 'n %on%e&to !ate!:ti%o de 'n%iones 7'e o&eran so8re otras 'n%iones5 !ientras 7'e la E&ri!era %laseE es 'n t9r!ino inor!:ti%o 7'e des%ri8e las entidades del len#'a6e de &ro#ra!a%i4n 7'e no tienen nin#'na restri%%i4n de s' 'tili"a%i4n @&or lo tanto 'n%iones de &ri!era %lase &'eden a&are%er en %'al7'ier &arte del &ro#ra!a 7'e otras entidades de &ri!er nivel %o!o los n
Funciones "uras Las 'n%iones &'ra!ente 'n%ionales @o e;&resionesB no tienen ee%tos se%'ndarios @!e!oria o *=B. *sto si#nii%a 7'e las 'n%iones &'ras tienen varias &ro&iedades
•
•
•
=i no se 'tili"a el res'ltado de 'na e;&resi4n &'ra5 se &'ede eli!inar sin ae%tar a otras e;&resiones. =i 'na 'n%i4n &'ra se lla!a %on &ar:!etros 7'e no %a'san ee%tos se%'ndarios5 el res'ltado es %onstante %on res&e%to a la lista de &ar:!etros @a ve%es lla!ada trans&aren%ia reeren%ialB5 es de%ir5 si la 'n%i4n &'ra se lla!a de n'evo %on los !is!os &ar:!etros5 el !is!o res'ltado ser: dev'elto @esto &'ede ha8ilitar las o&ti!i"a%iones de al!a%ena!iento en %a%h9B. =i no hay 'na de&enden%ia de datos entre dos e;&resiones &'ras5 enton%es s' orden &'ede ser invertido5 o &'eden llevarse a %a8o en &aralelo y 7'e no &'eda intererir %on los otros. =i el len#'a6e no &er!ite ee%tos se%'ndarios5 enton%es %'al7'ier estrate#ia de eval'a%i4n se &'ede 'tili"ar5 lo 7'e da la li8ertad al %o!&ilador &ara Carretera a Presa La Amistad Km 9, Cd. Acuña, Coah., C.P. 26220 Apartado Postal No. 666, Tel (8! " #8 00, $a% (8! " #8 0#
6
INSTITUTO TECNOLÓGICO SUPERIOR DE CIUDAD ACUÑA reordenar o %o!8inar la eval'a%i4n de e;&resiones en 'n &ro#ra!a @&or e6e!&lo5 'sando la &odaB. La !ayor$a de los %o!&iladores de len#'a6es i!&erativos dete%tan 'n%iones &'ras a'to!:ti%a!ente y reali"an la eli!ina%i4n de s'8e;&resiones %o!'nes. =in e!8ar#o no sie!&re es &osi8le dete%tarlo en 8i8liote%as &re%o!&iladas5 &or7'e &or nor!a #eneral no dan esta inor!a%i4n. *sto &rovo%a 7'e no se &'edan reali"ar o&ti!i"a%iones 7'e &odr$an a&li%ar a di%has 'n%iones e;ternas. Al#'nos %o!&iladores5 %o!o #%%5 s$ 7'e aaden &ala8ras %laves adi%ionales &ara 7'e el &ro#ra!ador !ar7'e e;&l$%ita!ente %o!o &'ras a7'ellas 'n%iones e;ternas 7'e &ro%edan5 de !odo 7'e se le a&li7'en las o&ti!i"a%iones &ertinentes. Fortran ta!8i9n &er!ite 7'e de%larar 'n%iones E&'rasE.
.3. Inter#alos *l intervalo de 'na varia8le est: deinido %o!o la dieren%ia entre el valor !:s alto y el valor !:s 8a6o 7'e esa varia8le &'ede #'ardar. *n el %aso de 'na varia8le entera5 el intervalo %'8rir: todos los n
Diferencia entre declaración y modificación de variables
*n &ro#ra!a%i4n 'n%ional &'ra 'na ve" de%larada 'na varia8le no se &'ede !odii%ar s' valor *n al#'nos len#'a6es de &ro#ra!a%i4n @%o!o =%alaB este %on%e&to se re'er"a deiniendo la varia8le %o!o in!'ta8le @%on la dire%tiva valB. Carretera a Presa La Amistad Km 9, Cd. Acuña, Coah., C.P. 26220 Apartado Postal No. 666, Tel (8! " #8 00, $a% (8! " #8 0#
7
INSTITUTO TECNOLÓGICO SUPERIOR DE CIUDAD ACUÑA *n &ro#ra!a%i4n i!&erativa es ha8it'al !odii%ar el valor de 'na varia8le en distintos &asos de e6e%'%i4n
.$. %"eradores *n &ro#ra!a%i4n de%larativa s4lo e;isten valores5 no hay reeren%ias. La distin%i4n entre valores y reeren%ias es 'nda!ental5 sin e!8ar#o5 en la &ro#ra!a%i4n i!&erativa.
i*erencia entre #alor - re*erencia C'ando se reali"a 'na asi#na%i4n de un #alor a 'na varia8le de8e!os %onsiderar 7'e esta!os dando 'n no!8re a 'n o86eto !ate!:ti%o 7'e no &'ede ser !odii%ado o 7'e esta!os %o&iando el valor en la varia8le. Por e6e!&lo5 en Java5 los ti&os de datos &ri!itivos son valores. Las asi#na%iones valores de estos ti&os a varia8les reali"an %o&ias de valoresD *n la varia8le a se %o&ia el valor 0 y en las varia8les 8 y % se %o&ia el valor 2. No hay or!a de !odii%ar @ mutar B esos valores. Podr$a!os %a!8iar las varia8les #'ardando en ella otros valores5 &ero los valores &ro&ia!ente di%hos son in!'ta8les. *n la
.&. A"licaciones de las listas Una lista enla/ada es 'na de las estr'%t'ras de datos 'nda!entales5 y &'ede ser 'sada &ara i!&le!entar otras estr'%t'ras de datos. Consiste en 'na se%'en%ia Carretera a Presa La Amistad Km 9, Cd. Acuña, Coah., C.P. 26220 Apartado Postal No. 666, Tel (8! " #8 00, $a% (8! " #8 0#
8
INSTITUTO TECNOLÓGICO SUPERIOR DE CIUDAD ACUÑA de nodos5 en los 7'e se #'ardan %a!&os de datos ar8itrarios y 'na o dos reeren%ias5 enla%es o &'nteros al nodo anterior o &osterior. *l &rin%i&al 8enei%io de las listas enla"adas res&e%to a los ve%tores %onven%ionales es 7'e el orden de los ele!entos enla"ados &'ede ser dierente al orden de al!a%ena!iento en la !e!oria o el dis%o5 &er!itiendo 7'e el orden de re%orrido de la lista sea dierente al de al!a%ena!iento. Las listas enla"adas &er!iten inser%iones y eli!ina%i4n de nodos en %'al7'ier &'nto de la lista en tie!&o %onstante @s'&oniendo 7'e di%ho &'nto est: &revia!ente identii%ado o lo%ali"adoB5 &ero no &er!iten 'n a%%eso aleatorio. *;isten dierentes ti&os de listas enla"adasD listas enla"adas si!&les5 listas do8le!ente enla"adas5 listas enla"adas %ir%'lares y listas enla"adas do8le!ente %ir%'lares.
Al#'nas 'n%iones Cara%teres @ti&o CharB Cadenas @ti&o =trin#B i&os n'!9ri%osD Int5 Float Co!&onentes KLos &ar:!etros5 7'e son los valores 7'e re%i8e la 'n%i4n %o!o entrada K*l %4di#o de la 'n%i4n5 7'e son las o&era%iones 7'e ha%e la 'n%i4n *l res'ltado @o valor de retornoB5 7'e es el valor inal 7'e entre#a la 'n%i4n.
.'. (rboles *n inor!:ti%a 'n árbol es 'na estr'%t'ra de datos a!&lia!ente 'sada 7'e i!ita la or!a de 'n :r8ol @'n %on6'nto de nodos %one%tadosB. Un nodo es la 'nidad so8re la 7'e se %onstr'ye el :r8ol y &'ede tener %ero o !:s nodos hi6os %one%tados a 9l. =e di%e 7'e 'n nodo es "adre de 'n nodo si e;iste 'n enla%e desde hasta @en ese %aso5 ta!8i9n de%i!os 7'e es hi6o de B. =4lo &'ede ha8er 'n
Carretera a Presa La Amistad Km 9, Cd. Acuña, Coah., C.P. 26220 Apartado Postal No. 666, Tel (8! " #8 00, $a% (8! " #8 0#
9
INSTITUTO TECNOLÓGICO SUPERIOR DE CIUDAD ACUÑA For!al!ente5 &ode!os deinir 'n :r8ol de la si#'iente or!aD •
•
Caso 8aseD 'n :r8ol %on s4lo 'n nodo @es a la ve" ra$" del :r8ol y ho6aB. Un n'evo :r8ol a &artir de 'n nodo y :r8oles de ra$%es %on ele!entos %ada 'no5 &'ede %onstr'irse esta8le%iendo 'na rela%i4n &adrehi6o entre y %ada 'na de las ra$%es de los :r8oles. *l :r8ol res'ltante de nodos tiene %o!o ra$" el nodo 5 los nodos son los hi6os de y el %on6'nto de nodos ho6a est: or!ado &or la 'ni4n de los %on6'ntos ho6as ini%iales. A %ada 'no de los :r8oles se les denota ahora subárboles de la ra$".
Usos %o!'nes de los :r8oles sonD •
•
Re&resenta%i4n de datos 6er:r7'i%os. Co!o ay'da &ara reali"ar 8
Carretera a Presa La Amistad Km 9, Cd. Acuña, Coah., C.P. 26220 Apartado Postal No. 666, Tel (8! " #8 00, $a% (8! " #8 0#
10
INSTITUTO TECNOLÓGICO SUPERIOR DE CIUDAD ACUÑA
Conclusión: (e!os 7'e en esta 'nidad nos ha8la lo 7'e es la &ro#ra!a%i4n 'n%ional5 7'e es 'n &aradi#!a 8asado en la 'tili"a%i4n de 'n%iones arit!9ti%as. La &ro#ra!a%i4n 'n%ional tiene s's ra$%es en el %:l%'lo la!8da5 'n siste!a or!al desarrollado en los aos -/, &ara investi#ar la deini%i4n de 'n%i4n5 la a&li%a%i4n de las 'n%iones y la re%'rsi4n. M'%hos len#'a6es de &ro#ra!a%i4n 'n%ionales &'eden ser vistos %o!o ela8ora%iones del %:l%'lo la!8da. Los len#'a6es de &ro#ra!a%i4n 'n%ional5 es&e%ial!ente los 7'e son &'ra!ente 'n%ionales5 han sido enati"ados en el a!8iente a%ad9!i%o &rin%i&al!ente y no tanto en el desarrollo de sotare %o!er%ial. =in e!8ar#o5 len#'a6es de &ro#ra!a%i4n i!&ortantes tales %o!o =%he!e5*rlan#5 R'st5 O86e%tive Ca!l y >as?ell5 han sido 'tili"ados en a&li%a%iones %o!er%iales e ind'striales &or !'%has or#ani"a%iones.
Carretera a Presa La Amistad Km 9, Cd. Acuña, Coah., C.P. 26220 Apartado Postal No. 666, Tel (8! " #8 00, $a% (8! " #8 0#
11
INSTITUTO TECNOLÓGICO SUPERIOR DE CIUDAD ACUÑA
)ibliogra*+a ,eb: http++.pro*rama'do.or*+-lo*+20#2+##+ue/es/la/pro*ramacio'/u'cio'al+
htt&sD&re"i.%o!ol/t;#sth&ro#ra!a%ion'n%ional htt&sD.#oo#le.%o!.!;e8h&so'r%eid%hro!e instantQion-Qes&v2QieUF 37ar8olesSenS&ro#ra!a%ionS'n%ionalQstart-,
Carretera a Presa La Amistad Km 9, Cd. Acuña, Coah., C.P. 26220 Apartado Postal No. 666, Tel (8! " #8 00, $a% (8! " #8 0#