Herramientas para Desarrollo de SBC
Para pasar
desde el diseño abstracto hasta un sistema implementado y listo para ser
ejecutado en una computadora, se debe lo debe expresar en una forma que el
sistema computacional entienda. Para ello se puede utilizar un lenguaje
programación o un sistema especialmente diseñado para desarrollar SBC. La
pregunta inmediata es ¿Cuál de ellos utilizar? En las siguientes
secciones se puede encontrar una posible respuesta.
Lenguajes de Programación
En
principio, cualquier lenguaje de programación puede ser utilizado. Siendo así
de amplio el espectro del cual se puede escoger un lenguaje para programar un
SBC, se debe considerar como factor importante de decisión, la extensión en la
cual el lenguaje cubre o se adecua a los requerimientos de diseño. Atendiendo a
la forma de estructurar sus instrucciones, se los puede dividir en:
- IMPERATIVOS: PASCAL, C/C++.
- FUNCIONALES: LISP.
- DECLARATIVOS: PROLOG, CHIP, OPS5.
- ORIENTADOS A OBJETOS: SmallTalk, Hypercard, CLOS.
Tradicionalmente
LISP y PROLOG han sido los lenguajes que se han utilizado para la
programación de SBC. Estos lenguajes ofrecen características especialmente
diseñadas para manejar problemas generalmente encontrados en IA. Por este
motivo se los conoce como lenguajes de IA.
Una de las
principales características que comparten los lenguajes LISP y PROLOG, como
consecuencia de su respectiva estructura, es que pueden ser utilizados para
escribir programas capaces de examinar a otros programas, incluyendo a ellos
mismos. Esta capacidad se requiere, por ejemplo, para hacer que el programa
explique sus conclusiones. Esto sólo puede hacerse si el programa tiene la
capacidad de examinar su propio modo de operación.
Lisp
Su nombre se
deriva de LISt Processor. LISP fue el primer lenguaje para procesamiento
simbólico. John McCarthy lo desarrolló en 1958, en el Instituto de Tecnología
de Massachusetts (MIT), inicialmente como un lenguaje de programación con el
cual los investigadores pudieran implementar eficientemente programas de
computadora capaces de razonar. Rápidamente LISP se hizo popular por su
capacidad de manipular símbolos y fue escogido para el desarrollo de muchos
sistemas de IA.
Existen
varios dialectos de LISP en el mercado informático, sin embargo COMMON LISP
puede considerarse como el estándar de facto. Actualmente, LISP se lo
utiliza en varios dominios que incluyen la escritura de compiladores, sistemas
para diseño VLSI, sistemas para diseño mecánico asistido por computadora
(AUTOCAD), animaciones gráficas y sistemas basados en conocimiento.
Prolog
PROgramming in LOGic (PROLOG),
es otro de los lenguajes de programación ampliamente utilizados en IA. PROLOG
fue desarrollado en Francia, en 1973 por Alain Colmenauer y su equipo de
investigación en la Universidad de Marseilles. Inicialmente fue utilizado para
el procesamiento de lenguaje natural, pero posteriormente se popularizó entre
los desarrolladores de aplicaciones de IA por su capacidad de manipulación
simbólica. Utilizando los resultados del grupo francés, Robert Kowalski de la
Universidad de Edimburgo, en Escocia, desarrolló la teoría de la programación
lógica. La sintaxis propuesta por Edimburgo, se considera el estándar de facto
del PROLOG.
A partir de
1981 tuvo una importante difusión en todo el mundo, especialmente porque los
japoneses decidieron utilizar PROLOG para el desarrollo de sus sistemas de
computación de quinta generación. Actualmente existen varios dialectos del
PROLOG para diferentes plataformas.
OPS5
Official Production System
5 (OPS5), es un lenguaje para ingeniería cognoscitiva que soporta el
método de representación del conocimiento en forma de reglas. Incorpora un
módulo unificador, un intérprete que incluye un mecanismo de encadenamiento
progresivo, y herramientas para edición y depuración de los programas. OPS5 es
un miembro de la familia de lenguajes de programación desarrollados en la
Universidad Carnegie - Mellon. Varias compañías han desarrollado
implementaciones comerciales de OPS5, para diferentes plataformas.
Sistemas de Desarrollo
Históricamente,
los primeros SBC fueron desarrollados utilizando lenguajes de programación como
el LISP y el PROLOG. A medida que el desarrollo de SBC iba aumentado en
cantidad y complejidad, la comunidad científica comenzó a buscar formas de
desarrollar los sistemas en menor tiempo y con menor esfuerzo.
Esto dio
lugar al aparecimiento, en primer lugar a sistemas vacíos como el EMYCIN, a los
que denominó shells, ya que ofrecen toda la arquitectura de un SBC a la
que hay que incorporar la base de conocimientos.
Posteriormente
ingresaron al mercado otras herramientas que incorporaron, además de opciones
de representación del conocimiento, esquemas de inferencia y control. Estas
herramientas tomaron el nombre de Entornos de Desarrollo de SBC.
A
continuación se dan algunos ejemplos de sistemas comerciales:
- Sistemas Vacíos (shells): EMYCIN, Crystal, Leonardo, XiPlus, EXSYS, VP-Expert, Intelligence Compiler.
- Entornos híbridos de desarrollo: CLIPS, KEE, ART, EGERIA, Kappa, Nexpert Object, Goldworks, LOOPS, Flavors.
Plataformas de Computación
Intimamente
asociado a los SBC, están los sistemas computacionales (Hardware). Actualmente
el software disponible para el desarrollo de SBC, cubre todo el rango de
computadoras y sistemas operativos, desde PC’s hasta máquinas especialmente
dedicadas para procesamiento simbólico:
- Computadoras Personales (DOS, OS, Mac, WINDOWS, UNIX, LINUX).
- Estaciones de trabajo (VMS, UNIX).
- Máquinas simbólicas (LISP, PROLOG).
- Máquinas de arquitectura paralelo.
No hay comentarios.:
Publicar un comentario