Button sirve para crear un botton Cursor Sirve para modificar la imagen en pantalla Figure sirve para poner imgenes en panatalla Image sirve para cargar imgenes Bitmap para convertir una imagen en un elemento grafico(basicamente hace de puente para pasar de image a figure !i"mapes practicamente e#uivalente a image $abel para escribir una eti#ueta en pantalla (puede servir para mostrar un te"to %enu para crear un menu 1 Fecha: 19 de febrero 2014 Investigacin DATOS Nobre: !nri"#e $on%&'e% (anr)"#e% $r#*o: + ,arrera: -ic. !n ingenier)a en co*#tacin ,entro /niversitario de (onterre0 Actividad Investigacin de s1in *ro'og Desarro''o 2ea'i%ar #na investigacin de otros ti*os de co*i'adores de 'eng#a3es "#e van de 'a ano con *ro'og SWI-Prolog es una implementaci&n en c&digo abierto (en ingl's( open source del lenguaje de programaci&n !rolog) Su autor principal es *an +ielema,er) -n desarrollo ininterrumpido desde ./01( S+I2!rolog posee un rico conjunto de caracter3sticas( bibliotecas (inclu4endo su propia biblioteca para 56I( 7!C-( herramientas (inclu4endo un ID- 4 una documentaci&n e"tensiva) S+I2!rolog funciona en las plataformas 6ni"( +indows 4 %acintosh)
%enu8bar para crear una barra de menus %enu8item para embeder elementos dentro de un menu !oint para crear u punto con 9 cordenadas !opup para crear un popup en una ventana Sliderpara crear un despla:ador +indow para crear una ventana donde se pueden dibujar otra serie de objetos(como imgenes(etc; Sinta"is S+I2 !rolog sinta"is est cerca de sinta"is estndar ISO2 !rolog ( #ue se basa en la sinta"is -dinburgh !rolog ) 6na descripci&n formal se puede encontrar en el documento estndar ISO ) !ara una introducci&n informal nos referimos a los libros de te"to del pr&logo ( v'ase la secci&n . 4 tutoriales en l3nea ) <dems de las diferencias de la norma ISO documentado a#u3 ( S+I 2 !rolog ofrece varias e"tensiones ( algunas de las cuales tambi'n se e"tienden la sinta"is ) <po4o Sinta"is ISO -sta secci&n enumera diversas e"tensiones w)r)t) la sinta"is ISO !rolog ) !rocesador juego de caracteres -l juego de caracteres procesador especifica la clase de cada carcter utili:ado para el anlisis de te"to fuente !rolog ) *uego de caracteres se fija a 6nicode) ='ase tambi'n la secci&n comentarios anidados S+I2 !rolog permite > ? ))) ? > comentarios de anidaci&n) Cuando la norma ISO acepta > ? ))) > ? ))) ? > como un comentario ( S+I2 !rolog buscar una terminaci&n ? >) -sto es @til si alg@n c&digo con declaraciones > ? ))) ? > comentario en #ue debe ser comentado ) -sta modificaci&n tambi'n evita involuntaria comentar en el siguiente ejemplo ( donde el cierre ? > del primer comentario ha sido forgotten)./ > ? Comentario c&digo > ? Segundo comentario ? > c&digo carcter de escape Sinta"is Dentro de tomos coti:ados (utili:ando comillas simples A B CatomD B caracteres especiales se representan mediante secuencias de escape ) 6na secuencia de escape es conducido en el carcter de barra invertida (E) $a lista de las secuencias de escape es compatible con la norma ISO ( pero contiene algunas e"tensiones ( 4 la interpretaci&n de los caracteres especificados num'ricamente es un poco ms fle"ible para mejorar la compatibilidad ) Caracteres de escape no definidas plantean 2 una e"ception)9F s4nta"8error E a Carcter de alerta ) Gormalmente( el carcter <SCII 1 ( beep ) E b Carcter Hetroceso ) E c Go ha4 salida ) Iodos los caracteres de entrada hasta( pero no inclu4endo el primer carcter #ue no sea el diseJo se omiten) -sto permite la especificaci&n de la bella e incertidumbres largas colas) Go es compatible con la norma ISO ) -jemplo A format ( B -sta es una l3nea de tiempo #ue se ve mejor si se E c dividido en varias l3neas f3sicas en la entrada B E CnewlineD -n el modo ISO ( ver la bandera iso !rolog ( s&lo saltar esta secuencia) -n modo nativo( el espacio en blanco #ue sigue la nueva l3nea se salta tambi'n 4 se muestra un aviso #ue indica #ue esta construcci&n es obsoleto 4 asesorar a usar E c ) $e aconsejamos el uso de E c o poner la disposici&n antes de la E ( como se muestra a continuaci&n) -l uso de E c es apo4ada por varias otras implementaciones de !rolog 4 seguir siendo apo4ado por S+I2 !rolog ) -l estilo se muestra a continuaci&n es la ms compatible solution)9. format ( B -sta es una larga fila #ue se ve mejor si era E dividido en varias l3neas f3sicas en la entrada B en lugar de format ( B -sta es una larga fila #ue se ve mejor si era E dividido en varias l3neas f3sicas en la entrada B E e Carcter de escape (<SCII 91 ) Go ISO ( pero ampliamente apo4ada ) E f Carcter de salto ) E n Carcter de nueva l3nea ) E r S&lo retorno de carro ( es decir ( volver al principio de la l3nea ) E s Carcter de espacio ) $a intenci&n de permitir la escritura F BE s para obtener el c&digo de carcter del carcter de espacio) Go ISO ) E t Carcter de tabulaci&n hori:ontal ) E v Carcter de tabulaci&n vertical (<SCII .. ) 3 E 777 )) E -specificaci&n he"adecimal de un carcter) -l cierre E es obligatorio de acuerdo con la norma ISO ( pero opcional en S+I 2 !rolog para mejorar la compatibilidad con el estndar de -dimburgo ma4or) -l c&digo E "a E K emite el carcter .F ( La he"adecimal B seguido de L KB) !ersonajes especificados de esta manera se interpretan como caracteres 6nicode) =ea tambi'n E u) E u7777 -specificaci&n de caracteres 6nicode ( donde se especifica el carcter utili:ando e"actamente M d3gitos he"adecimales) -sta es una e"tensi&n de la norma ISO ( la fijaci&n de dos problemas ) -n primer lugar( cuando E " define un c&digo de carcter num'rico( no especifica el conjunto de caracteres en la #ue el personaje debe ser interpretado ) -n segundo lugar ( no es necesario para usar el cierre idiosincrsica E sinta"is de la norma ISO !rolog ) E u"""""""" Igual #ue E u7777 ( pero utili:ando 0 d3gitos para cubrir todo el conjunto 6nicode) E MF -specificaci&n de carcter octal ) $as reglas 4 las observaciones para las especificaciones he"adecimales aplican a octal especificaciones tambi'n) E E -scapa de la propia barra invertida) !or lo tanto ( B E E B es un tomo #ue consiste en un solo E ) E coti:aci&n Si la coti:aci&n actual ( N oN es precedido por una barra invertida ( se copia literalmente) <s3( B EBB 4 BBBB tanto describir el tomo con un solo B ) -scape de caracteres s&lo est disponible si current8prolog8flag ( character8escapes ( true est activo (por defecto ) =er current8prolog8flag > 9 ) Carcter escapa conflicto con writef > 9 de dos maneras A E MF se interpreta como decimal MF por writef > 9 ( pero como octal MF ( decimal K9 por lectura ) <simismo( el writef > 9 secuencia E l es ilegal) Se recomienda utili:ar el ms amplio apo4o formato > O9(K P predicado en su lugar) Si usted insiste en el uso de writef > 9 ( o bien cambiar character8escapes false o utilice doble E E ( como en writef (BE E lB ) Sinta"is para los n@meros no decimales S+I2 !rolog implementa -dimburgo 4 representaciones de la ISO para los n@meros no decimales ) De acuerdo con la sinta"is de -dimburgo( estos n@meros se escriben como Cradi"D B Cn@meroD ( donde Cradi"D es un n@mero entre 9 4 KQ aJos) ISO define los n@meros binarios( octales 4 he"adecimales usando F O B7O P Cn@meroD ) !or ejemplo A < es Fb.FF E > F"fFF es una e"presi&n vlida) Iales n@meros son siempre sin signo ) 9).R)9)K 6so de grupos de d3gitos en n@meros enteros grandes S+I2 !rolog soporta enteros largos de divisi&n en grupos de d3gitos) 5rupos de d3gitos se pueden separar con el CunderscoreD secuencia ( S!<C-D blanco 4 Coptional ) Si el Cradi"D es .F o inferior ( #ue tambi'n se pueden separar con e"actamente un espacio ) < continuaci&n todos e"presan el n@mero entero de . mill&n A .8FFF8FFF . FFF FFF .8FFF8 > ? ms ? > FFF $os n@meros enteros se pueden imprimir utili:ando esta notaci&n con el formato > 9( utili:ando el especificador de formato I S ) !or ejemplo A T 2 Formato ( B S IB( O .FFFFFF P ) .8FFF8FFF $a sinta"is actual se ha propuesto por 6lrich Geumer,el en la lista de correo S+I2 !rolog II!OS D- D<IOS Iipo term8t A una referencia a un t'rmino !rolog -l tipo de datos principal es term8t ) Iipo term8t es lo #ue llama Uuinto U!8term8ref ) -ste nombre indica mejor lo #ue representa el tipo A es un identificador para un t'rmino 4 no el t'rmino en s3 mismo ) I'rminos solo se pueden representar 4 manipular usando este tipo ( 4a #ue es la @nica forma segura de garanti:ar el ,ernel !rolog es consciente de todos los t'rminos referenciados por c&digo e"tranjera 4 por lo tanto permite #ue el ,ernel para reali:ar la recolecci&n de basura 4 > o pila 2 turnos mientras #ue el c&digo e"tranjero est activo ( por ejemplo( durante una devoluci&n de llamada de C) 6na referencia es un t'rmino C unsigned long ( #ue representa el despla:amiento de una variable en el entorno de pila !rolog ) 6na funci&n e"terna se pasa referencias pla:o para los argumentos !recedentes ( uno para cada argumento) Si se necesitan referencias para los resultados Intermedios ( tales referencias pueden ser creados usando !$8new8term8ref ( o !$8new8term8refs () -stas referencias suelen vivir hasta #ue la funci&n devuelve el control e"tranjero de vuelta a !rolog ) Su alcance puede ser limitado de forma e"pl3cita utili:ando !$8open8foreign8frame ( 4 !$8close8foreign8frame ( > !$8discard8foreign8frame () < term8t siempre se refiere a un t'rmino !rolog vlida (variable ( tomo( entero( flotante o t'rmino compuesto ) 6n t'rmino #ue vive bien hasta retroceso nos lleva de vuelta a un punto antes de la creaci&n del t'rmino( el recolector de basura ha recogido el t'rmino ( o el t'rmino fue creado despu's de un !$8open8foreign8frame ( 4 !$8discard8foreign8frame ( ha sido llamado ) 5 6