Articulo de referencia

Ciao (lenguaje de programación)

Ciao es un lenguaje de programación de propósito general que admite estilos de programación lógica , de restricciones , funcional , de orden superior y orientada a objetos . Sus...

Ciao es un lenguaje de programación de propósito general que admite estilos de programación lógica , de restricciones , funcional , de orden superior y orientada a objetos . Sus principales objetivos de diseño son un alto poder expresivo , extensibilidad , seguridad, confiabilidad y ejecución eficiente. [1]

Características del lenguaje

Ciao proporciona un sistema Prolog completo (compatible con ISO -Prolog), subconjuntos declarativos y extensiones de Prolog, programación funcional (incluida la evaluación diferida ), programación de orden superior (con abstracciones de predicados), programación de restricciones y objetos , así como términos de características (registros), persistencia, varias reglas de control ( búsqueda en amplitud , profundización iterativa, ...), concurrencia (subprocesos/motores), ejecución distribuida (agentes) y ejecución paralela. Las bibliotecas también admiten programación WWW, sockets, interfaces externas ( C , Java , TclTk , bases de datos relacionales , etc.), etc.

Ciao está construido sobre un núcleo con un diseño modular extensible que permite tanto restringir como extender el lenguaje; puede considerarse como un lenguaje de construcción de lenguajes. Estas restricciones y extensiones pueden activarse por separado en cada módulo del programa, de modo que varias extensiones puedan coexistir en la misma aplicación para diferentes módulos.

Desarrollando programas seguros y confiables

La programación a gran escala en Ciao se apoya en:

  • Un sistema robusto de módulos y objetos. Esto permite una compilación incremental y separada basada en módulos (que es automática y no requiere archivos make).
  • Un lenguaje de aserción integrado para declarar propiedades (opcionales) del programa (especificaciones). Estas incluyen tipos, modos, determinación, ausencia de fallos, costo (tiempo, memoria), etc.
  • Inferencia automática y verificación estática/dinámica de dichas afirmaciones (incluidas pruebas unitarias).

Ciao también tiene soporte para programación a pequeña escala: el compilador es capaz de producir pequeños ejecutables (incluyendo sólo aquellos incorporados utilizados por el programa) y el intérprete soporta scripts.

El entorno incluye una interfaz emacs clásica de nivel superior y una interfaz emacs evolucionada con un depurador de nivel de fuente integrable y una serie de herramientas de visualización de ejecución.

El preprocesador Ciao admite la depuración estática y la verificación de aserciones y la optimización mediante la transformación de un programa de código fuente a otro. Estas tareas las realiza Ciaopp (distribuido por separado).

Autodocumentación

Ciao incluye lpdoc , un generador automático de documentación. Procesa programas adornados con afirmaciones (Ciao) y comentarios legibles por máquina y genera manuales en muchos formatos, incluidos HTML, PDF, Texinfo, Info, Man, etc., así como ayuda en línea, archivos README ASCII, entradas para índices de manuales (info, WWW, ...) y mantiene sitios de distribución WWW.

Portabilidad y eficiencia

El compilador Ciao (que puede ejecutarse fuera del shell de nivel superior) genera varias formas de ejecutables independientes de la arquitectura y autónomos, que se ejecutan con una velocidad, eficiencia y tamaño de archivo muy competitivos con otros lenguajes de alto nivel en general y, en particular, con los sistemas Prolog/CLP comerciales y académicos. Los módulos pueden compilarse en bytecode compacto o archivos fuente C, y vincularse de forma estática, dinámica o cargada automáticamente.

Véase también

Lectura adicional

  • Manuel V. Hermenegildo; et al. (2011). "Una descripción general de Ciao y su filosofía de diseño". arXiv : 1102.5497 [cs.PL].
  • El equipo de desarrollo de Ciao. "El hogar del sistema Ciao".
  • Enrico Pontelli (ed.). "El lenguaje multiparadigma CIAO y el entorno de desarrollo de programas".
  • Kei Davis, Jörg Striegnitz (30 de julio de 2007). Programación multiparadigma en lenguajes orientados a objetos: informe de investigación actual sobre el taller MPOOL'07. ECOOP'07 Actas de la conferencia de 2007 sobre tecnología orientada a objetos. pp.  13– 26. ISBN 978-3-540-78194-3.

Referencias

  1. ^ "El sistema Ciao". ciao-lang.org . Consultado el 12 de agosto de 2017 .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Ciao_(programming_language)&oldid=1254427720"