Hop es un lenguaje de programación similar a Lisp , creado por Manuel Serrano para la web 2.0 , y también el nombre del servidor ( servidor y proxy ) que implementa este lenguaje. Está escrito en Bigloo Scheme . Es un proyecto financiado por INRIA .
Diseño de lenguaje
Hop es un lenguaje estratificado, lo que significa que un único archivo de programa contiene instrucciones tanto para el servidor como para el cliente. El servidor ejecuta cálculos y operaciones que requieren un alto consumo de CPU y privilegios de sistema para acceder a archivos u otros recursos. Los clientes (de los cuales puede haber muchos, como navegadores, teléfonos móviles, etc.) se dedican a ejecutar acciones relacionadas con la programación de las interfaces gráficas de usuario.
( define-service ( server-date ) ; 1 ( current-date )) ; 2( <HTML> ; 4 ( <BUTTON> ; 5 :onclick ~ ( with-hop ( $server-date ) ; 6 ( lambda ( h ) ( alert h ))) ; 7 "Hora del servidor" )) ; 8El fragmento de código anterior ilustra algunos conceptos.
- Las 8 líneas de código definen un programa completo. Las líneas 1 y 2 dan como resultado la definición de un servicio en el servidor. Las líneas 4 a 8 dan como resultado una página HTML con funciones JavaScript . Indica al cliente (navegador) que muestre un botón con la etiqueta "Hora del servidor" y que envíe una solicitud al servidor cuando el usuario haga clic en él. Hop genera automáticamente todas las instrucciones necesarias para la comunicación entre el cliente y el servidor.
- Hop se basa en Scheme. Por lo tanto, un programa Hop es esencialmente una lista de palabras o listas que comienzan y terminan con paréntesis. Por ejemplo, "(contenido HTML)". "HTML" es el nombre de la función y "contenido" es el parámetro de la función.
- En Hop, los nombres de las funciones pueden contener caracteres distintos de letras y números. Por ejemplo, "<HTML>" es un nombre válido. Por lo tanto, la sintaxis de Hop es muy similar a la de HTML (por diseño). La expresión de Hop "(<HTML> contenido)" es similar a la expresión HTML "<HTML>contenido</HTML>".
- Los parámetros HTML comienzan con dos puntos; por ejemplo, ":onclick".
- El símbolo $ en "$server-date" indica que el servidor debe sustituir el nombre de la variable "server-date" por su valor antes de enviar el HTML al cliente. Esto es muy similar al funcionamiento de ASP y JSP.
- El carácter ~ en ":onclick ~(...)" indica que el cliente debe procesar lo que está entre paréntesis.
- La función "with-hop" en "(with-hop (...) (...))" es una función especial que delega trabajo al servidor y toma dos parámetros. El primer parámetro contiene la solicitud que el cliente debe enviar al servidor de forma asíncrona. El segundo parámetro contiene la función de devolución de llamada que el cliente debe invocar cuando llega la respuesta del servidor. "(lambda (h) (alert h))" es una función anónima que toma un único parámetro de entrada "(h)", que contiene la respuesta del servidor cuando se llama a la función. "(alert h)" es el cuerpo de la función.
Asuntos
Debido a su reciente introducción, Hop presenta actualmente una serie de debilidades.
Referencias
Enlaces externos
- Scheme (lenguaje de programación)
- paradigmas de programación
- Servidores proxy
- Lenguajes de programación creados en 2006
- Software que utiliza la Licencia Pública General de GNU.