Está en la página 1de 6

Objetos en swi prolog

Dialog Sirve para crear un cuadro de dialogo


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

También podría gustarte