Abstract
Hop.js is a multitier programming environment for JavaScript. It allows a single JavaScript program to describe the client-side and the server-side components of a web application. Its runtime environment ensures consistent executions of the application on the server and on the client.
This paper overviews the Hop.js design. It shows the JavaScript extensions that makes it possible to conceive web applications globally. It presents how Hop.js interacts with the outside world. It also briefly presents the Hop.js implementation. It presents the Hop.js web server implementation, the handling of server-side parallelism, and the JavaScript and HTML compilers.
- V. Balat, P. Chambart, and G. Henry. 2012. Client-server Web applications with Ocsigen. In Proceedings of the WWW’2012 conference. Lyon, France. Google Scholar
Digital Library
- V. Balat, J. Vouillon, and B. Yakobowski. 2009. Experience report: ocsigen, a web programming framework. In Proceeding of the 14th ACM SIGPLAN international conference on Functional programming, ICFP 2009, Edinburgh, Scotland, UK, August 31 - September 2, 2009. 311–316. DOI:http://dx.doi.org/10.1145/1596550. Google Scholar
Digital Library
- 1596595Google Scholar
- G. Banga and P. Druschel. 1997. Measuring the Capacity of a Web Server. In USENIX Symposium on Internet Technologies and Systems. http://citeseer.ist.psu.edu/banga97measuring.html Google Scholar
Digital Library
- H. Binsztok, A. Koprowski, and I. Swarczewskaja. 2013. Opa: Up and Running. O’Reilly Media.Google Scholar
- A. Chlipala. 2015a. An Optimizing Compiler for a Purely Functional Web-Application Language. In Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, ICFP 2015, Vancouver, BC, Canada, September 1-3, 2015. 10–21. DOI: http://dx.doi.org/10.1145/2784731.2784741 Google Scholar
Digital Library
- A. Chlipala. 2015b. Ur/Web: A Simple Model for Programming the Web. In Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2015, Mumbai, India, January 15-17, 2015. 153–165. DOI:http://dx. doi.org/10.1145/2676726.2677004 Google Scholar
Digital Library
- G. Choi, J-H. Kim, D. Ersoz, and C. Das. 2005. A Multi-Threaded PIPELINED Web Server Architecture for SMP/SoC Machines. In WWW ’05: Proceedings of the 14th international conference on World Wide Web. ACM, New York, NY, USA, 730–739. http://doi.acm. org/10.1145/1060745.1060851 Google Scholar
Digital Library
- E. Cooper, S. Lindley, P. Wadler, and J. Yallop. 2006. Links: Web Programming Without Tiers. In 5th International Symposium on Formal Methods for Components and Objects (FMCO). Amsterdam, The Netherlands, 266–296. Google Scholar
Digital Library
- E. Czaplicki and S. Chong. 2013. Asynchronous Functional Reactive Programming for GUIs. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’13). ACM, New York, NY, USA, 411–422. DOI:http:// dx.doi.org/10.1145/2491956.2462161 Google Scholar
Digital Library
- L. Domoszlai and R. Plasmeijer. 2015. Tasklets: Client-Side Evaluation for iTask3. In Central European Functional Programming School, V. Zs’ok, Z. Horv’ath, and L. Csat’o (Eds.). Lecture Notes in Computer Science, Vol. 8606. Springer International Publishing, 428– 445. DOI:http://dx.doi.org/10.1007/978-3-319-15940-9_ 11Google Scholar
- S. Ducasse, A. Lienhard, and L. Renggli. 2007. Seaside: A Flexible Environment for Building Dynamic Web Applications. IEEE Software 24, 5 (2007), 56–63. DOI:http://dx.doi.org/10.1109/ MS.2007.144 Google Scholar
Digital Library
- ECMA International. 2011. Standard ECMA-262 - ECMAScript Language Specification (5.1 ed.). http://www.ecma-international. org/publications/standards/Ecma-262.htmGoogle Scholar
- Facebook. 2015. JSX. https://facebook.github.io/jsx/. (2015). https: //facebook.github.io/jsx/Google Scholar
- P. Graunke, R. Findler, S. Krishnamurthi, and M. Felleisen. 2003. Modeling Web Interactions. In European Symposium on Programming. Poland. Google Scholar
Digital Library
- R. Kelsey, W. Clinger, and J. Rees. 1998. The Revised(5) Report on the Algorithmic Language Scheme. Higher-Order and Symbolic Computation 11, 1 (Sept. 1998). http://www-sop.inria.fr/indes/ fp/Bigloo/doc/r5rs.html Google Scholar
Digital Library
- G. Kossakowski, N. Amin, T. Rompf, and M. Odersky. 2012. Javascript as an embedded DSL. In Proceedings of the ECOOP’2012 conference. Beijing, China, 409–434. Google Scholar
Digital Library
- J. McCarthy. 2009. Automatically RESTful Web Applications: Marking Modular Serializable continuations. In Proceeding of the 14th ACM SIGPLAN international conference on Functional programming, ICFP 2009, Edinburgh, Scotland, UK, August 31 - September 2, 2009. 299–310. DOI:http://dx.doi.org/10.1145/1596550. Google Scholar
Digital Library
- 1596594Google Scholar
- L. Meyerovich, A. Guha, J. Baskin, G. Cooper, M. Greenberg, A. Bromfield, and S. Krishnamurthi. 2009.Google Scholar
- Flapjax: A Programming Language for Ajax Applications. In Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA ’09). ACM, New York, NY, USA, 1–20. DOI:http://dx.doi.org/10.1145/1640089.1640091 Google Scholar
Digital Library
- H-F. Nielsen, J. Gettys, A. Baird-Smith, E. Prud’Hommeaux, H. Lie Wium, and C. Lilley. 1997.Google Scholar
- Network Performance Effects of HTTP/1.1, CSS1, and PNG. In Proceedings of the ACM SIGCOMM’97 conference. Cannes, France.Google Scholar
- L. Philips, C. De Roover, T. Van Cutsem, and De Meuter. W. 2014. Towards Tierless Web Development without Tierless Languages. In Onward! 2014, Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, part of SPLASH ’14, Portland, OR, USA, October 20- 24, 2014. 69–81. DOI:http://dx.doi.org/10.1145/2661136. Google Scholar
Digital Library
- 2661146Google Scholar
- C. Queinnec. 2000. The Influence of Browsers on Evaluators. In ACM S IGPLAN Int’l Conference on Functional Programming (ICFP). Montréal, Canada, 23–33. Google Scholar
Digital Library
- B. Reynders, D. Devriese, and F. Piessens. 2014. Multi-Tier Functional Reactive Programming for the Web. In Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2014). ACM, New York, NY, USA, 55–68. DOI:http://dx.doi.org/10.1145/ 2661136.2661140 Google Scholar
Digital Library
- J. Richard-Foy, O. Barais, and J-M. Jézéquel. 2013. Efficient high-level abstractions for web programming.. In GPCE, FOO (Ed.). ACM, 53–60. http://dblp.uni-trier.de/db/conf/ gpce/gpce2013.html#Richard-FoyBJ13 Google Scholar
Digital Library
- M. Serrano. 2014. A Multitier Debugger for Web Applications. In Proceedings of the 10th WEBIST conference (WEBIST’14). Barcelona, Spain.Google Scholar
- M. Serrano, E. Gallesio, and F. Loitsch. 2006. HOP, a language for programming the Web 2.0. In Proceedings of the First Dynamic Languages Symposium (DLS). Portland, Oregon, USA.Google Scholar
- Z. Su and G. Wassermann. 2006. The Essence of Command Injection Attacks in Web Applications. In Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’06). ACM, New York, NY, USA, 372–382. DOI: http://dx.doi.org/10.1145/1111037.1111070 Google Scholar
Digital Library
- W. Taha. 1999. Multi-Stage Programming: Its Theory and Applications. Ph.D. Dissertation. Oregon Graduate Institute of Science and Technology, USA. Google Scholar
Digital Library
- J. Vouillon and V. Balat. 2013. From bytecode to Javascript: the Js of ocaml compiler. Software: Practice and Experience doi: 10.1002/spe.2187 (Feb. 2013). DOI:http://dx.doi.org/10. 1002/spe.2187 Google Scholar
Digital Library
- M. Welsh, D. Culler, and E. Brewer. 2001. SEDA: An Architecture for Well-Conditioned, Scalable Internet Services. In Symposium on Operating Systems Principles. 230–243. http://citeseer.ist. psu.edu/welsh01seda.html Google Scholar
Digital Library
- N-M. Yao, M-Y. Zheng, and J-B. Ju. 2002. Pipeline: A New Architecture of High Performance Servers. SIGOPS Oper. Syst. Rev. 36, 4 (2002), 55–64. http://doi.acm.org/10.1145/583800.583807 Google Scholar
Digital Library
Index Terms
A glimpse of Hopjs
Recommendations
A glimpse of Hopjs
ICFP 2016: Proceedings of the 21st ACM SIGPLAN International Conference on Functional ProgrammingHop.js is a multitier programming environment for JavaScript. It allows a single JavaScript program to describe the client-side and the server-side components of a web application. Its runtime environment ensures consistent executions of the ...
Programming web multimedia applications with hop
MM '07: Proceedings of the 15th ACM international conference on MultimediaHOP is a new execution platform for running interactive and multimedia applications on the Web. It is aimed at executing applications such as Web agendas, Web galleries, Web music players, etc. HOP consists of: i) a new programming language specially ...
A multi-tier semantics for Hop
Hop is a multi-tier programming language where the behavior of interacting servers and clients are expressed by a single program. Hop adheres to the standard web programming style where servers elaborate HTML pages containing JavaScript code. This ...







Comments