Hop (software)


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Hop es un lenguaje de programación similar a Lisp de Manuel Serrano para web 2.0 y también el nombre del web broker ( 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 solo archivo de programa contiene instrucciones tanto para el servidor como para el cliente. El servidor ejecuta operaciones y cálculos exigentes de la CPU que requieren privilegios del sistema para acceder a archivos u otros recursos. Los clientes (de los cuales puede haber muchos como navegadores, celulares, etc.) se dedican a ejecutar acciones relacionadas con la programación de las interfaces gráficas de usuario.

( definir-servicio  ( fecha-servidor )  ; 1  ( fecha-actual ))  ; 2( <HTML>  ; 4  ( <BUTTON>  ; 5  : onclick  ~ ( with-hop  ( $ server-date )  ; 6  ( lambda  ( h )  ( alerta  h )))  ; 7  "Hora del servidor" ))  ; 8

El 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 una definición de servicio en el servidor. Las líneas 4 a 8 dan como resultado una página HTML completa con funciones de JavaScript. Indica a un 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 el botón. 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 de Hop es esencialmente una lista de palabras y / 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.
  • Los nombres de las funciones en Hop pueden contener caracteres distintos a letras y números. Por ejemplo, "<HTML>" es un nombre válido. Por lo tanto, la sintaxis de Hop se parece mucho a 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 carácter $ en "$ server-date" indica que el servidor debe sustituir el nombre de la variable "server-date" con el valor de la variable antes de enviar el HTML al cliente. Esto es muy similar a cómo funcionan 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 el trabajo al servidor y toma dos parámetros. El primer parámetro contiene la solicitud que el cliente debe enviar al servidor de forma asincrónica. 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) (alerta 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. "(alerta h)" es el cuerpo de la función.

Cuestiones

Dada su reciente introducción, Hop presenta actualmente una serie de debilidades.

  • La seguridad es débil. Es un área de investigación activa [2]
  • Las fallas de la red se manejan actualmente a través de rutinas de excepción y tiempo de espera codificadas manualmente, este enfoque requiere mucha mano de obra y es relativamente poco confiable. [2]

Referencias

enlaces externos