skip to main content
research-article
Free Access

Reasoning about Web Applications: An Operational Semantics for HOP

Published:01 June 2012Publication History
Skip Abstract Section

Abstract

We propose a small-step operational semantics to support reasoning about Web applications written in the multitier language HOP. The semantics covers both server side and client side computations, as well as their interactions, and includes creation of Web services, distributed client-server communications, concurrent evaluation of service requests at server side, elaboration of HTML documents, DOM operations, evaluation of script nodes in HTML documents and actions from HTML pages at client side. We also model the browser same origin policy (SOP) in the semantics. We propose a safety property by which programs do not get stuck due to a violation of the SOP and a type system to enforce it.

References

  1. Berry, G. and Boudol, G. 1990. The chemical abstract machine. In Proceedings of the ACM International Conference on Principle of Programming Languages. ACM Press, New York, 81--94. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Bohannon, A. and Pierce, B. C. 2010. Featherweight Firefox: Formalizing the core of a web browser. In Proceedings of the Usenix Conference on Web Application Development. USENIX Association, Berkeley, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Boudol, G., Luo, Z., Rezk, T., and Serrano, M. 2010. Towards reasoning for web applications: An operational semantics for hop. In Proceedings of the Workshop on Analysis and Programming Languages for Web Applications and Cloud Applications (APLWACA’10). ACM, New York, NY, 3--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Chlipala, A. 2010. Ur: Statically-typed metaprogramming with type-level record computation. In Proceedings of the International Conference on Programming Languages and Implementation. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Chong, S., Liu, J., Myers, A., Qi, X., Vikram, K., Zheng, L., and Zheng, X. 2009. Building secure web applications with automatic partitioning. Comm. ACM 52, 2, 79--87. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Cooper, E., Lindley, S., Wadler, P., and Yallop, J. 2006. Links: Web programming without tiers. In Proceedings of the 5th International Symposium on Formal Methods for Components and Objects. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Cooper, E. E. and Wadler, P. 2009. The rpc calculus. In Proceedings of the 11th ACM SIGPLAN conference on Principles and Practice of Declarative Programming (PPDP’09). ACM, New York, NY, 231--242. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Felleisen, M. and Hieb, R. 1992. The revised report on the syntactic theories of sequential control and state. Theor. Comput. Sci. 103, 2, 235--271. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Gardner, P., Smith, G., Wheelhouse, M., and Zarfaty, U. 2008a. DOM: Towards a formal specification. In Proceedings of the ACM SIGPLAN Workshop on Programming Language Technologies for XML (PLAN-X). ACM Press.Google ScholarGoogle Scholar
  10. Gardner, P., Smith, G., Wheelhouse, M., and Zarfaty, U. 2008b. Local Hoare reasoning about DOM. In Proceedings of the 27th ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems. ACM Press, 261--270. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Graunke, P., Findler, R. B., Krishnamurthi, S., and Felleisen, M. 2003. Modeling web interactions. In Proceedings of the European Symposium on Programming. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Guha, A., Saftoiu, C., and Krishnamurthy, S. 2010. The essence of JavaScript. In Proceedings of the 24th European Conference on Object-Oriented Programming. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Hors, A. L., Hegaret, P. L., Nicol, G., Robie, J., Champion, M., and Byrne, S. 2000. Document Object Model (DOM) level 2 core specification. Tech. rep., W3C.Google ScholarGoogle Scholar
  14. Kelsey, R., Clinger, W. D., and Rees, J. 1998. Revised report on the algorithmic language scheme. SIGPLAN Not. 33, 9, 26--76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Loitsch, F. and Serrano, M. 2008. HOP Client-side compilation. In Trends in Functional Programming. Vol. 8, M. T. Morazán Ed., Intellect Bristol, UK, 141--158.Google ScholarGoogle Scholar
  16. Maffeis, S., Mitchell, J., and Taly, A. 2008. An operational semantics for JavaScript. In Proceedings of the Asian Symposium on Programming Languages and Systems. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Matthews, J., Findler, R. B., Graunke, P. T., Krishnamurthi, S., and Felleisen, M. 2004. Automatically restructuring programs for the web. Autom. Softw. Engin. 11, 4, 337--364. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Queinnec, C. 2000. The inuence of browsers on evaluators. In Proceedings of the ACM SIGPLAN International Conference on Functional Programming. ACM, 23--33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Serrano, M. 2009. HOP, a fast server for the di_use web. In Proceedings of the 11th International Conference on Coordination Models and Languages. Lecture Notes in Computer Science, vol. 5521, Springer 1--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Serrano, M., Gallesio, E., and Loitsch, F. 2006. HOP, a language for programming the web 2.0. In Proceedings of the 1st Dynamic Languages Symposium. ACM, New York, NY.Google ScholarGoogle Scholar
  21. Serrano, M. and Queinnec, C. 2010. A multi-tier semantics for HOP. In Higher Order and Symbolic Computation. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Wright, A. K. and Felleisen, M. 1994. A syntactic approach to type soundness. Inf. Comput. 115, 1, 38--94. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Reasoning about Web Applications: An Operational Semantics for HOP

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM Transactions on Programming Languages and Systems
          ACM Transactions on Programming Languages and Systems  Volume 34, Issue 2
          June 2012
          212 pages
          ISSN:0164-0925
          EISSN:1558-4593
          DOI:10.1145/2220365
          Issue’s Table of Contents

          Copyright © 2012 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 June 2012
          • Accepted: 1 March 2012
          • Revised: 1 August 2011
          • Received: 1 December 2010
          Published in toplas Volume 34, Issue 2

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!