Hop (programvara)
Paradigm | multiparadigm |
---|---|
Designad av | Manuel Serrano |
Dök först upp | 2006 |
Stabil frisättning | 2.4.2 / 23 september 2013
|
Maskinskrivningsdisciplin | stark, dynamisk |
Licens | GPL 2+ |
Hemsida |
|
Influerad av | |
Scheme |
Bildning | 1967 |
---|---|
Syfte | Forskning |
Regionen betjänas |
Frankrike |
Hop är ett Lisp -liknande programmeringsspråk av Manuel Serrano för webb 2.0 och även namnet på webbmäklaren ( server och proxy ) som implementerar detta språk. Det är skrivet i Bigloo Scheme . Det är ett projekt finansierat av INRIA .
Språkdesign
Hop är ett stratifierat språk, vilket innebär att en enda programfil innehåller instruktioner för både servern och klienten. Servern kör CPU-krävande beräkningar och operationer som kräver systembehörighet för åtkomst till filer eller andra resurser. Klienterna (av vilka det kan finnas många såsom webbläsare, mobiltelefoner, etc.) är dedikerade till att utföra åtgärder relaterade till programmeringen av de grafiska användargränssnitten.
( definiera-tjänst ( server-datum ) ; 1 ( aktuellt datum )) ; 2 ( <HTML> ; 4 ( <KNAPP> ; 5 : onclick ~ ( med-hopp ( $ server-datum ) ; 6 ( lambda ( h) ) ( alert h ))) ;7 "Servertid" )) ;8
Kodavsnittet ovan illustrerar några begrepp.
- De 8 raderna kod definierar ett komplett program. Rad 1 och 2 resulterar i en tjänstdefinition på servern. Rad 4 till 8 resulterar i en HTML-sida komplett med javascript-funktioner. Den instruerar en klient (webbläsare) att visa en knapp med etiketten "Servertid" och att skicka en förfrågan till servern när användaren klickar på knappen. Hop genererar automatiskt alla instruktioner som behövs för kommunikationen mellan klienten och servern.
- Hopp är baserat på Schema. Därför är ett Hop-program i huvudsak en lista med ord och/eller listor som börjar och slutar med parenteser. Till exempel "(HTML-innehåll)". "HTML" är funktionsnamnet och "content" är funktionsparametern.
- Funktionsnamn i Hop kan innehålla andra tecken än bokstäver och siffror. Till exempel " " är ett giltigt namn. Därför ser Hops syntax väldigt lik ut HTML (genom design). Hop-uttrycket "( content)" liknar HTML-uttrycket " innehåll ".
- HTML-parametrar börjar med ett kolon; till exempel ":onclick".
- Tecknet $ i "$server-date" indikerar att servern ska ersätta variabelnamnet "server-date" med variabelns värde innan HTML-koden skickas till klienten. Detta är väldigt likt hur ASP och JSP fungerar.
- Tecknet ~ i ":onclick ~(...)" indikerar att klienten ska bearbeta det som står mellan parenteserna.
- "with-hop"-funktionen i "(with-hop (...) (...))" är en speciell funktion som delegerar arbete till servern och tar två parametrar. Den första parametern innehåller begäran som klienten ska skicka till servern asynkront. Den andra parametern innehåller callback-funktionen som klienten ska anropa när svaret kommer från servern. "(lambda (h) (varning h))" är en anonym funktion som tar en enda ingångsparameter "(h)", som innehåller serversvaret när funktionen anropas. "(varning h)" är funktionskroppen.
frågor
Med tanke på dess senaste introduktion uppvisar Hop för närvarande ett antal svagheter.
- Säkerheten är svag. Det är ett område för aktiv forskning
- Nätverksfel hanteras för närvarande genom manuellt kodade time-out- och undantagsrutiner, detta tillvägagångssätt är arbetskrävande och relativt opålitligt.