Date post: | 22-Feb-2018 |
Category: |
Documents |
Upload: | aleana-dolce |
View: | 216 times |
Download: | 0 times |
of 28
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
1/28
NDICE
ParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgra
macinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramainLgicaParadigmaDeProgramacinProgramacinFunci
onalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadgmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionaProgramacinLgicaParadigmaDeProgramacinProgramainFuncionalProgramacinLgicaParadigmaDeProgramainProgramacinFuncionalProgramacinLgicaParadigm
aDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramaci
nFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgramacinLgicaParadigmaDeProgramacinProgramacinFuncionalProgr
INSTITUTO TECNOLGICO SUPERIORDE HUATUSCO
PROGRAMACIN LGICA Y FUNCIONAL
UNIDAD I CONCEPTOS
FUNDAMENTALES
TEMA:ELEMENTOS DE LOS LENGUAJES DE
PROGRAMACIN REPRESENTATIVOS:FUNCIONALES Y LGICOS.
ASESOR:L.I. JULIA AIDEE JUREZ IBEZ
ELABOR:
ALEJANDRA ANAH MAJN MARTNEZ
INGENIERA EN SISTEMASCOMPUTACIONALES
80 ! A
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
2/28
2
INTRODUCCIN..............................................................................................4
LENU!"E# REPRE#ENT!TI$O#......................................................................%
PROR!&!CIN FUNCION!L..........................................................................%
Fundamen'o( de la )rogramacin *uncional+..............................................%
Carac'er,('ica(............................................................................................%
Funcionamien'o...........................................................................................-
LENU!"E FUNCION!L+ !#/ELL....................................................................-
#e(ione( 0 declaracione(............................................................................1
Ti)o( de da'o(.............................................................................................
Curri3cacin................................................................................................
Par'icularidade(........................................................................................5
Reduccin de e6)re(ione(.........................................................................
Orden a)lica'i7o........................................................................................Orden normal............................................................................................2
E7aluacin PERE8O#! o LENT! 9La:0;......................................................2
Ti)o( de da'o( elemen'ale(......................................................................r)re'e.............................................................................................%
Un (?ell o 'o)@le7el...................................................................................%
Una AiAlio'eca de u'ilidade(......................................................................%
Elemen'o( del lenguaBe.............................................................................-
Comen'ario(..............................................................................................-$ariaAle( lgica(.......................................................................................-
T>rmino(....................................................................................................1
O)eradore(...............................................................................................
Predicado( 0 OABe'i7o(..............................................................................25
#ecuencia( de oABe'i7o(............................................................................25
Predicado( )rede3nido( 9Auil'@in;..............................................................2
CONCLU#IN................................................................................................ 2n'e(i( no cerrado o ?a('a el 3nal de lae6)re(in.
662...6n.& 6.962.9... 96n.&;...;;
E('o e( mu0 im)or'an'e 0a Gue no( )ermi'e
de(com)oner cualGuier *uncin mul'i@7ariaAle comocom)o(icin de *uncione( de una nica 7ariaAle.
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
12/28
2
La a)licacin e( a(ocia'i7a )or la i:Guierda
& N N2....Nn 9...99& N; N2;...Nn;;
R'$"//1# $' ',-'*)#'*
La laAor de un e7aluador e( calcular el re(ul'adoGue (e oA'iene al (im)li3car una e6)re(inu'ili:ando la( de3nicione( de la( *uncione(
in7olucrada(.
EBem)lo+
doAle ++ In'eger In'eger
doAle 6 6 6
= Q doAle rmino &!# INTERNO 9el mH(anidado en la e6)re(in;. En ca(o de Gue e6i('an7ario( '>rmino( a reducir 9con la mi(ma
)ro*undidad; (e (elecciona el Gue a)arece mH( a lai:Guierda de la e6)re(in. E('o 'amAi>n (e llama)a(o de )arHme'ro( )or 7alor 0a Gue an'e unaa)licacin de una *uncin (e reducen )rimero lo()arHme'ro( de la *uncin.
! lo( e7aluadore( Gue u'ili:an e('e 'i)o de orden (ele( llama e('ric'o( o im)acien'e(.
O-$'# #)-&%+Con(i('e en (eleccionar el '>rmino &Z# E[TERNO 9elmeno( anidado; 0 en ca(o de con\ic'o el Guea)are:ca mH( a la i:Guierda de la e6)re(in. E('ae('ra'egia (e conoce como )a(o de )arHme'ro )or
nomAre o re*erencia 0a Gue (e )a(an como)arHme'ro( de la( *uncione( e6)re(ione( en 7e: de7alore(. ! lo( e7aluadore( Gue u'ili:an el ordennormal (e le( llama no e('ric'o(. Una de la(carac'er,('ica( mH( in'ere(an'e( e( Gue e('e ordene( normali:an'e.
E%+"%/1# PEREZOSA ) LENTA ;L%
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
14/28
4
No (e e7ala ningn elemen'o en ninguna *uncin?a('a Gue no (ea nece(ario. La( li('a( (e almacenanin'ernamen'e en un *orma'o no e7aluado. Lae7aluacin )ere:o(a con(i('e en u'ili:ar )a(o )or
nomAre 0 recordar lo( 7alore( de lo( argumen'o( 0acalculado( )ara e7i'ar recalcularlo(. TamAi>n (edenomina e('ra'egia de )a(o( de )arHme'ro( )ornece(idad. Con una e('ra'egia no e('ric'a de lae6)re(in doAle 9doAle
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
15/28
=
E( )o(iAle u'ili:ar o)eradore( de li('a( )arael 'i)o #'ring como ?ola a'odo(.
D'7#/1# $' 2"#/)#'*
La( *uncione( en a(Jell (e de3nen en do( )ar'e(.
La )rimera iden'i3ca el nomAre el dominio 0 elin'er7alo de la *uncin.
La (egunda de(criAe el (igni3cado de la*uncin.
PROGRAMACIN LGICA
La Programacin Lgica e('udia el u(o de la lgica)ara el )lan'eamien'o de )roAlema( 0 el con'rol(oAre la( regla( de in*erencia )ara alcan:ar la
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
16/28
%
(olucin au'omH'ica.
En conBun'o con la *uncional *orma )ar'e de lo Gue(e conoce como Programacin Declara'i7a e( decir
la )rogramacin con(i('e en indicar como re(ol7erun )roAlema median'e (en'encia( en laProgramacin Lgica (e 'raAaBa en una *ormade(cri)'i7a e('aAleciendo relacione( en'reen'idade( indicando no como (ino Gue ?aceren'once( (e dice Gue la idea e(encial de laProgramacin Lgica e(+
Programa lgica control.
F"#$%&'#()* $' +% ,-)-%&%/1# +1/%
e Aa(an en la Teor,a Lgica de Primer Orden aunGue
'amAi>n incor)oran alguno( com)or'amien'o( deorden (u)erior en e('e (en'ido de('acan lo(lenguaBe( *uncionale( 0a Gue (e Aa(an en el CHlculoLamAda e( la nica 'eor,a lgica de orden (u)erior.
La Teor,a Lgica de Primer Orden o 'amAi>n llamadalgica de )redicado(+ e( un (i('ema deduc'i7o
Aa(ado en un LenguaBe Lgico &a'emH'ico *ormal degran u'ilidad )ara la( &a'emH'ica( Filo(o*,aLing^,('ica 0 Com)u'acional. Inclu0e )ro)o(icione(lgica( )redicado( 0 cuan'i3cadore(.
C%-%/('-3*(/%* $' +% ,-)-%&%/1# +1/%
Uni3cacin de '>rmino(.
&ecani(mo( de in*erencia au'omH'ica.
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
17/28
-
Recur(in como e('ruc'ura de con'rol AH(ica.
$i(in lgica de la com)u'acin.
C%&,)* $' %,+/%/1#
#i('ema( E6)er'o( donde un #i('ema dein*ormacin mi'a la( recomendacione( de une6)er'o (oAre algn dominio de conocimien'o.
Demo('racin au'omH'ica de 'eorema( dondeun )rograma genera nue7o( 'eorema( (oAreuna 'eor,a e6i('en'e.
Reconocimien'o de lenguaBe na'ural donde un)rograma e( ca)a: de com)render 9conlimi'acione(; la in*ormacin con'enida en unae6)re(in ling^,('ica ?umana.
In'eligencia ar'i3cial.
#i('ema( de in*ormacin.
LENGUAJE LGICO: PROLOG
Prolog e( un lenguaBe de )rogramacin(emin'er)re'ado. #u *uncionamien'o e( mu0 (imilara "a7a. El cdigo *uen'e (e com)ila a un cdigo deA0'e el cuHl (e in'er)re'a en una mHGuina 7ir'ual
denominada _arren !A('rac' &ac?ine 9comnmen'e
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
18/28
1
denominada _!&;. Por e(o un en'orno dede(arrollo Prolog (e com)one de+
U# /)&,+%$)-.
Tran(*orma el cdigo *uen'e en cdigo de A0'e. !di*erencia de "a7a no e6i('e un ('andard alre()ec'o. Por e(o el codigo de A0'e generado )or unen'orno de de(arrollo no 'iene )or Gue *uncionar enel in'>r)re'e de o'ro en'orno.
U# #(>-,-'('.EBecu'a el cdigo de A0'e.
U# *?'++ ) (),!+''+.#e 'ra'a de una u'ilidad Gue )ermi'e )roAar lo()rograma( de)urarlo( e'c. #u *uncionamien'o e(
(imilar a lo( in'er*ace( de l,nea de comando de lo((i('ema( o)era'i7o(.
U#% @@+)('/% $' "(+$%$'*.E('a( AiAlio'eca( (on en general mu0 am)lia(.&uc?o( en'orno( inclu0en 9a*or'unadamen'e; una(AiAlio'eca( ('andard@I#O Gue )ermi'en*uncionalidade( AH(ica( como mani)ular cadena(
en'rada`(alida e'c.
Lo( en'orno( de de(arrollo o*recen e6'en(ione( allenguaBe como )ueden (er la )rogramacin conre('riccione( concurren'e orien'ada a oABe'o( e'c.#er,a inBu('o no mencionar aGu, el en'orno dede(arrollo mH( )o)ular+ #IC#'u( Prolog (i Ai>n (e
'ra'a de un en'orno de de(arrollo comercial 9nogra'ui'o;. #IC#'u( CI!O Prolog 0 )o(iAiAlemen'eo'ro( mH( o*recen en'orno( in'egrado(
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
19/28
generalmen'e Aa(ado( en Emac( Gue re(ul'an mu0*Hcile( de u(ar.
CI!O Prolog ademH( o*rece un au'odocumen'ador
(imilar al e6i('en'e )ara "a7a ademH( de un)re)roce(ador de )rograma(. PrHc'icamen'e 'odo(ello( (on mul'i)la'a*orma. Com)a'iAilidad I#O@Prolog E6i('e un ('andard I#O Gue dic'a la( ',)ica(norma( con re()ec'o a la (in'H6i( del lenguaBe 0 ala( AiAlio'eca( AH(ica( Gue (e deAen o*recer.
!c'ualmen'e el ('andard no con'em)la 'odo( lo(
a()ec'o( del lenguaBe 0 ademH( no 'odo( lo(en'orno( (iguen el ('andard al )ie de la le'ra. Pore(o )rograma( Gue *uncionan en uno( en'orno()odr,an no *uncionar en o'ro( o lo Gue e( )eor*uncionar de *orma di*eren'e.
Todo( lo( eBem)lo( Gue a)arecen en e('e cur(o
(iguen el ('andard I#O@Prolog (al7o Gue (ee()eci3Gue lo con'rario. En cualGuier ca(o deAecon(ul'ar la documen'acin de (u en'orno dede(arrollo )ue('o Gue )ueden e6i('ir )eGuea(7ariacione( con re()ec'o a (u u(o.
Lo( )rinci)ale( in7e('igadore( de la 'ecnolog,aProlog (on lo( (ueco( 0 lo( e()aole(. #in emAargo
lo( e()aole( no 'enemo( 7o'o en el comi'> dee('andari:acin.
E+'&'#()* $'+ +'#"%'En e('a leccin e6)licaremo( como reconocer lo(di*eren'e( elemen'o( Gue com)onen un )rograma*uen'e en Prolog. Como oA(er7arH en Are7e Prolog
carece de declaracione( en el (en'ido im)era'i7o+(eccione( declaracione( de 'i)o declaracione( de7ariaAle declaracione( de )rocedimien'o( e'c.
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
20/28
25
De()u>( de leer e('H (eccin deAer (er ca)a: dedi('inguir 7ariaAle( 0 '>rmino( lgico( en're lamaraa de carac'ere( Gue ?a0 en un )rograma*uen'e.
C)&'#(%-)*Lo( comen'ario( en Prolog (e e(criAen comen:andola l,nea con un (,mAolo de )orcen'aBe. EBem)lo+
b ola e('o e( un comen'ario.
b e('o 'amAi>n.
V%-%@+'* +1/%*La( 7HriaAle( en Prolog no (on 7ariaAle( en el(en'ido ?aAi'ual )or e(o la( llamamo( 7ariaAle(lgica(. #e e(criAen como una (ecuencia de
carac'ere( al*aA>'ico( comen:ando (iem)re )orma0(cula o (uAra0ado.
EBem)lo( de 7ariaAle(+
$ariaAle
ola
Pero no (on 7ariaAle(+
7ariaAleola
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
21/28
2
P
El ?ec?o de Gue lo( nomAre( de 7ariaAle(
comiencen )or ma0(cula 9o (uAra0ado; e7i'a lanece(idad de declarar )re7iamen'e 0 de manerae6)l,ci'a la( 7ariaAle( 'al 0 como ocurre en o'ro(lenguaBe(. La 7ariaAle annima #, (, e6i('en7ariaAle( (in nomAre 0 'oda( ella( (e re)re(en'anmedian'e el (,mAolo de (uAra0ado .
T>-)*Lo( '>rmino( (on el nico elemen'o del lenguaBe e(decir lo( da'o( (on '>rmino( el cdigo (on'>rmino( inclu(o el )ro)io )rograma e( un '>rmino.No oA('an'e e( ?aAi'ual llamar '>rmino (olamen'ea lo( da'o( Gue maneBa un )rograma. Un '>rmino (e
com)one de un *unc'or (eguido de cero a Nargumen'o( en're )ar>n'e(i( 0 (e)arado( )orcoma(. Lo( nmero( en'ero( o decimale( (inre('riccione( de 'amao 'amAi>n (on '>rmino(. Un*unc'or 9'amAi>n denominado H'omo; )uede (er+
Una (uce(in de carac'ere( al*anum>rico(
comen:ando )or una le'ra min(cula. Un (,mAolo de )un'uacin o (ecuencia dee('o(. La( (ecuencia( )ermi'ida( 7ar,an de unen'orno de de(arrollo a o'ro.
Una (uce(in cualGuiera de carac'ere(encerrada en're comilla( (im)le(.
Lo( argumen'o( de un '>rmino )ueden (er+O'ro '>rmino.
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
22/28
22
Una 7ariaAle lgica.
La meBor *orma de a)render a e(criAir '>rmino( e(mirando alguno( eBem)lo(+ 'erminoceroario
2n)ueden (er unario( 0 )re3Bo( lo Gue no( e7i'ae(criAir lo( )ar>n'e(i( del argumen'o. Por eBem)lola e6)re(in @= e( en realidad el '>rmino @9=;.
E( )o(iAle e(criAir '>rmino( (in argumen'o( en
'al ca(o no (e e(criAen lo( )ar>n'e(i( 9'al comomue('ra el eBem)lo;.
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
23/28
2rmino Gue no con'iene 7ariaAle( liAre( (edice Gue e( cerrado o ground 9en ingl>(;.
Para re*erirno( a un '>rmino con el *unc'or * 0 !argumen'o( u(amo( la no'acin *`!. PoreBem)lo+ )9aA; )9*9B;; )9!; (on 'odo(eBem)lo( del '>rmino )`2.
Do( '>rmino( con el mi(mo *unc'or )ero di('in'a)aridad )or eBem)lo )9; 0 )92;.
Lo( nmero( en Prolog no 'ienen l,mi'e de
)reci(in o rango. E('Hn limi'ado( nicamen'e)or la memoria di()oniAle.
P-'$/%$)* 6 O@'()*Lo( )redicado( (on lo( elemen'o( eBecu'aAle( enProlog. En muc?o( (en'ido( (e a(emeBan a lo(
)rocedimien'o( o *uncione( ',)ico( de lo( lenguaBe(im)era'i7o(.
Una llamada concre'a a un )redicado con uno(argumen'o( concre'o( (e denomina oABe'i7o 9eningl>( goal;. Todo( lo( oABe'i7o( 'iene un re(ul'adode >6i'o o *allo 'ra( (u eBecucin indicando (i el
)redicado e( cier'o )ara lo( argumen'o( dado( o)or el con'rario e( *al(o.
Cuando un oABe'i7o 'iene >6i'o la( 7ariaAle( liAre(Gue a)arecen en lo( argumen'o( )ueden Guedarligada(. E('o( (on lo( 7alore( Gue ?acen cier'o el
)redicado. #i el )redicado *alla no ocurren ligadura(en la( 7ariaAle( liAre(.
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
24/28
24
S'/"'#/%* $' )@'()*En Prolog lo( oABe'i7o( (e )ueden comAinar
median'e conec'i7a( )ro)ia( de la lgica de )rimerorden+ la conBuncin la di(0uncin 0 la negacin.
La di(0uncin (e u'ili:a Aien )oco 0 la negacinreGuiere 'odo un ca),'ulo )ara (er e6)licada. EncamAi la conBuncin e( la manera ?aAi'ual de
eBecu'ar (ecuencia( de oABe'i7o(.
El o)erador de conBuncin e( la coma )or eBem)lo+edad9lui(;edad9Buan8;[M8. Parece (encillo )ero?a0 Gue 'ener en cuen'a Gu> ocurre con la(ligadura( de la( 7ariaAle(+
En )rimer lugar ?a0 Gue (er con(cien'e deGue lo( oABe'i7o( (e eBecu'an (ecuencialmen'e)or orden de e(cri'ura 9e( decir de i:Guierdaa derec?a;.
#i un oABe'i7o *alla lo( (iguien'e( oABe'i7o( 0a
no (e eBecu'an. !demH( la conBuncin en'o'al *alla.#i un oABe'i7o 'iene >6i'o alguna( o 'oda( (u(
7ariaAle( Guedan ligada( 0 )or 'an'o deBande (er 7ariaAle( liAre( )ara el re('o deoABe'i7o( en la (ecuencia.
#i 'odo( lo( oABe'i7o( 'ienen >6i'o la
conBuncin 'iene >6i'o 0 man'iene la(ligadura( de lo( oABe'i7o( Gue la com)onen.
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
25/28
2=
P-'$/%$)* ,-'$'7#$)* ;@"+(!#= E6i('en alguno( )redicado( )rede3nido( en el
(i('ema 0 Gue e('Hn di()oniAle( en 'odo momen'o.El mH( im)or'an'e e( la igualdad+ `2. E('e)redicado 'iene >6i'o (i (u( do( argumen'o( uni3canen're (, *alla en ca(o con'rario. Por eBem)lo eloABe'i7o [ < )ro7oca la ligadura de [ al 7alor 6i'o )erono re(ul'a en [ ligado a =. De ?ec?o la 7ariaAle [Gueda ligada al '>rmino 9'ica. Na'uralmen'e e('o( no *uncionan con
cualGuier '>rmino como argumen'o. #olamen'e(ir7en )ara nmero( 9en'ero( 0 decimale(;.
Predicado #igni3cadofM
fM+
menor Guema0or Gue
menor o igualGuema0or o igualGueigualdadari'm>'icade(igualdad
ari'm>'ica
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
26/28
2%
CONCLUSIN
#e ?a )re(en'ado la( carac'er,('ica( )rinci)ale( dela )rogramacin lgica 0 *uncional encarnada( en
(u )rinci)al re)re(en'an'e+ Prolog 0 a(Jell. o0 (ela )uede 7er como un )aradigma adecuado )arade'erminado( dominio( como (i('ema( e6)er'o( 0
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
27/28
2-
regla( de negocio(. In'egrHndolo con amAien'e( dede(arrollo (e )uede do'ar a la( a)licacione( dein'eligencia 0 \e6iAilidad.
E6i('en am)liacione( con (o)or'e )ara o'ra( lgica(como la di*u(a )ara la )rogramacin conre('riccione( (o)or'e de )araleli(mo 0 concurrenciae'c.
La )rogramacin *uncional o a)lica'i7a cu0ooABe'i7o e( de(criAir lo( )roAlema( median'e*uncione( ma'emH'ica( )ura( (in e*ec'o( la'erale( 0
la )rogramacin lgica o declara'i7a Gue de(criAelo( )roAlema( median'e relacione( en're oABe'o(.
BIBLIOGRAFA
Ca),'ulo ..= #ICP+
?'')+``mi')re((.mi'.edu`(ic)`*ull@'e6'`AooJ`AooJ@8@@5.?'mlhb(ec..=S
7/24/2019 AlejandraAnahi MajinMartinez U1 Inv
28/28
T?e#uA('i'u'ion &odel *or Procedure!))lica'ionSS.
Ca),'ulo 5 PLP+ Func'ional Language.?'')+``KKK.l*cia.org`o)en)roBec'(`camlle'(`doc`?
'ml`node.?'ml.?'')+``KKK@grou)(.dc(.('@
and.ac.uJ`?i('or0`&a'?ema'ician(`Curr0.?'ml.R. ird In'roduc'ion 'o Func'ional Programming
u(ing a(Jell. Pren'ice all In'erna'ional 2ndEd. NeK orJ -
!.". Field P. . arri(on. Func'ional
Programming. !ddi(on _e(le0 11.P. udaJ ". . Fa(el. ! en'le In'roduc'ion 'o
a(Jell. !C& #IPL!N NOTICE# 2- 9=; &a0o2
R. Pla(meiBer &arJo 7an EeJelen. Func'ionalProgramming and Parallel ra)? ReKri'ing.!ddi(on@_e(le0.