Este artículo tiene varios problemas. Ayúdenos a mejorarlo o a discutir estos problemas en la página de discusión . ( Aprenda cómo y cuándo eliminar estos mensajes )
|
Paradigmas | multiparadigma : orientado a objetos , marcado |
---|---|
Diseñado por | Steve Ward , MIT |
Revelador | Curl, Inc., Sumisho Computer Systems Corp., Corporación SCSK |
Apareció por primera vez | 1998 ( 1998 ) |
Versión estable | 8.0.13 / 6 de septiembre de 2022 ( 06/09/2022 ) |
Disciplina de mecanografía | fuerte |
Sistema operativo | Ventanas |
Licencia | propiedad |
Sitio web | www.curl.com |
Dialectos | |
ninguno | |
Influenciado por | |
HTML , JavaScript , Lisp | |
Curl es un lenguaje de programación reflexivo orientado a objetos para aplicaciones web interactivas , cuyo objetivo es proporcionar una transición más fluida entre el formato de contenido y la programación informática . Permite incrustar objetos complejos en documentos sencillos sin necesidad de cambiar entre lenguajes de programación o plataformas de desarrollo. La implementación de Curl inicialmente consistía solo en un intérprete ; más tarde se agregó un compilador .
Curl combina el marcado de texto (como en el lenguaje de marcado de hipertexto ( HTML )), la creación de scripts (como en JavaScript ) y la informática de alto rendimiento (como en Java , C# o C++ ) dentro de un marco unificado. Se utiliza en una variedad de aplicaciones internas empresariales, de empresa a empresa (B2B) y de empresa a consumidor (B2C).
Los programas Curl pueden compilarse en applets Curl, que se visualizan mediante Curl RTE, un entorno de ejecución con un complemento para navegadores web . Actualmente, es compatible con Microsoft Windows , Linux y macOS se abandonó el 25 de marzo de 2019 (a partir de la versión 8.0.10). [1] Curl admite "applets separados", que son un subprograma implementado en la web que se ejecuta en el escritorio del usuario independientemente de una ventana del navegador, como en Microsoft Silverlight 3 y Adobe AIR .
El lenguaje Curl intenta solucionar un problema de larga data: los diferentes bloques que forman cualquier documento web moderno suelen requerir métodos de implementación muy diferentes: lenguajes diferentes, herramientas diferentes, marcos diferentes y, a menudo, equipos completamente diferentes. El obstáculo final, y a menudo el más difícil, ha sido conseguir que todos estos bloques se comuniquen entre sí de forma coherente. Curl intenta evitar estos problemas proporcionando una interfaz sintáctica y semántica coherente en todos los niveles de creación de contenido web: desde el HTML simple hasta la programación orientada a objetos compleja .
Curl es un lenguaje de marcado como HTML, es decir, el texto simple se muestra como texto; al mismo tiempo, Curl incluye un lenguaje de programación orientado a objetos que admite herencia múltiple . Las aplicaciones Curl no están obligadas a respetar la separación de información, estilo y comportamiento que han impuesto HTML, las hojas de estilo en cascada (CSS) y JavaScript, aunque ese estilo de programación se puede utilizar en Curl si se desea.
Aunque el lenguaje Curl puede utilizarse como un sustituto de HTML para presentar texto formateado, sus capacidades van desde las de un lenguaje de programación de sistemas orientado a objetos, fuertemente tipado y compilado. [2] Tanto las construcciones de creación (a nivel HTML) como de programación de Curl pueden extenderse en código de usuario. El lenguaje está diseñado para que las aplicaciones Curl puedan compilarse en código nativo de la máquina cliente mediante un compilador justo a tiempo y ejecutarse a alta velocidad. Los applets Curl también pueden escribirse de modo que puedan ejecutarse sin conexión cuando se desconecten de una red (ocasionalmente, computación conectada). El IDE Curl es una aplicación escrita en Curl.
Una aplicación Curl sencilla para un programa "¡Hola, mundo!" podría ser:
{Applet de Curl 7.0, 8.0} {texto color = "azul", tamaño de fuente = 16pt, Hola Mundo}
Este código se ejecutará si el usuario tiene instalada al menos una de las versiones de Curl 7.0 u 8.0.
Curl proporciona tanto macros como procedimientos de texto, además de procedimientos anónimos y métodos con nombre. Una alternativa para utilizar el párrafo de procedimiento de texto sería:
{párrafo párrafo-sangría-izquierda=0,5in, {color del texto = "rojo", tamaño de fuente = 12pt, Hola} {color del texto = "verde", tamaño de fuente = 12pt, Mundo}}
Recientemente, este estilo de diseño ha sido adoptado por los "constructores" en el lenguaje Groovy para la máquina virtual Java (JVM), pero también es familiar para los usuarios de CSS o Tcl / Tk . La mayoría de las características para aplicaciones web que ahora se implementan mediante combinaciones de bibliotecas JavaScript + HTML + CSS ya se encuentran dentro del lenguaje Curl, incluidas las características generalmente asociadas con Prototype + script.aculo.us, como los paneles de acordeón.
Curl establece devoluciones de llamadas de la misma manera que Groovy:
{Botón de comando ancho=100pt, altura = 50pt, etiqueta = {centro {negrita Invoca un controlador de eventos cuando se hace clic}}, control-color = "naranja", || Adjunte el siguiente controlador de eventos a este CommandButton {en Acción hacer {mensaje emergente título = "Tu mensaje", "Este es un cuadro de diálogo de mensaje de usuario". } }}
Los comentarios de curl utilizan la barra vertical en varias variantes. La más simple es la siguiente:
{texto Un comentario puede estar en una línea por sí solo, || Un comentario sobre una línea por sí solo o puede ser al final || Un comentario en la misma línea que el código de una línea.}
Debido a que Curl permite tanto procedimientos de texto definidos por el usuario como hojas de estilo , se puede utilizar fácilmente como un marcado ligero específico de dominio . Una ventaja importante sobre el marcado HTML de texto simple es que la codificación del texto se puede configurar en UTF-8 y el texto se puede introducir en un editor de texto compatible con Unicode sin necesidad de escapar caracteres (como JavaScript, Curl es compatible con Unicode). Un ejemplo de poesía es:
{poema || envuelve todo el poema {estrofa || primer verso aquí en cualquier idioma } {estrofa || otro verso aquí en cualquier idioma } }
que inicialmente se puede implementar definiendo el marcado del poema y la estrofa como formatos de texto de párrafo. La estrofa se puede refinar aún más para incluir un ancla de navegación oculta para la navegación de la página utilizando Curl {destination}, que es en sí mismo un procedimiento de texto.
El mismo marcado se puede utilizar para distintos resultados, ya que se puede aplicar estilo al texto para que sea visible en un contexto e invisible en otro. Curl también permite la inclusión de archivos de nivel superior, de modo que un texto fuente en el marcado se puede incluir en diferentes archivos principales. En educación, por ejemplo, se podría crear un archivo fuente de preguntas de examen e incluirlo tanto en una versión del texto para estudiantes como para profesores.