[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/1777707.1777724guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Links: web programming without tiers

Published: 07 November 2006 Publication History

Abstract

Links is a programming language for web applications that generates code for all three tiers of a web application from a single source, compiling into JavaScript to run on the client and into SQL to run on the database. Links supports rich clients running in what has been dubbed 'Ajax' style, and supports concurrent processes with statically-typed message passing. Links is scalable in the sense that session state is preserved in the client rather than the server, in contrast to other approaches such as Java Servlets or PLT Scheme. Client-side concurrency in JavaScript and transfer of computation between client and server are both supported by translation into continuation-passing style.

References

[1]
Atkins, D.L., Ball, T., Bruns, G., Cox, K.C.: Mawl: A domain-specific language for formbased services. Software Engineering 25(3), 334-346 (1999).
[2]
Armstrong, J.: Concurrency oriented programming in Erlang. Invited talk, FFG (2003).
[3]
Balat, V.: Ocsigen: typing web interaction with objective Caml. In: Proceedings of the 2006 workshop on ML, Portland, Oregon (September 2006).
[4]
Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. TOPLAS 26(5) (2004).
[5]
Benton, N., Kennedy, A., Russo, C.: Adventures in interoperability: the SML .NET experience. PPDP (2004).
[6]
Bierman, G., Meijer, E., Schulte, W.: Programming with rectangles, triangles, and circles. In: XML Conference (2003).
[7]
Buneman, P., Naqvi, S., Tannen, V., Wong, L.: Principles of programming with complex objects and collection types. TCS 149(1) (1995).
[8]
Burstall, R., MacQueen, D., Sannella, D.: Hope: An experimental applicative language. In: Lisp Conference (1980).
[9]
El-Ansary, S., Grolaux, D., Van Roy, P., Rafea, M.: Overcoming the multiplicity of languages and technologies for web-based development. In: Van Roy, P. (ed.) MOZ 2004. LNCS, vol. 3389, Springer, Heidelberg (2005).
[10]
Fournet, C., Gonthier, G.: The Join Calculus: a language for distributed mobile programming. In: Barthe, G., Dybjer, P., Pinto, L., Saraiva, J. (eds.) APPSEM 2000. LNCS, vol. 2395, Springer, Heidelberg (2002).
[11]
Garret, J.: Ajax: a new approach to web applications (2005).
[12]
Graham, P.: Method for client-server communications through a minimal interface. United States Patent no. 6,205,469 (March 20, 2001).
[13]
Graham, P.: Beating the averages (2001).
[14]
Graunke, P., Findler, R.B., Krishnamurthi, S., Felleisen, M.: Automatically restructuring programs for the web. ASE (2001).
[15]
Graunke, P., Krishnamurthi, S., van der Hoeven, S., Felleisen, M.: Programming the web with high-level programming languages. In: Sands, D. (ed.) ESOP 2001 and ETAPS 2001. LNCS, vol. 2028, Springer, Heidelberg (2001).
[16]
Gapeyev, V., Levin, M., Pierce, B., Schmitt, A.: The Xtatic experience. PLAN-X (2005).
[17]
labs.google.com/suggest
[18]
Microsoft Corporation. DLinq: .NET Language Integrated Query for Relational Data (September 2005).
[19]
Møller, A., Schwartzbach, M.: The design space of type checkers for XML transformation languages. In: Eiter, T., Libkin, L. (eds.) ICDT 2005. LNCS, vol. 3363, Springer, Heidelberg (2004).
[20]
Niehren, J., Schwinghammer, J., Smolka, G.: A Concurrent Lambda Calculus with Futures. TCS, 364(3) (2006).
[21]
Narra, G.: ObjectGraph Dictionary, http://www.objectgraph.com/dictionary/how.html
[22]
Odersky, M., et al.: An overview of the Scala programming language. Technical report, EPFL Lausanne (2004).
[23]
Plasmeijer, R., Achten, P.: iData For The World Wide Web: Programming Interconnected Web Forms. In: Hagiya, M., Wadler, P. (eds.) FLOPS 2006. LNCS, vol. 3945, Springer, Heidelberg (2006).
[24]
Pottier, F., Rémy, D.: The essence of ML type inference. In: Pierce, B. (ed.) Advanced Topics in Types and Programming Languages, ch. 10, pp. 389-489. MIT Press, Cambridge (2005).
[25]
Queinnec, C.: Continuations to program web servers. ICFP (2000).
[26]
Queinnec, C.: Inverting back the inversion of control or, continuations versus page-centric programming, SIGPLAN Not (2003).
[27]
Reynolds, J.: Definitional interpreters for higher-order programming languages. In: ACM '72: Proceedings of the ACM annual conference (1972).
[28]
Ruby on Rails, http://www.rubyonrails.org/
[29]
Serrano, M., Gallesio, E., Loitsch, F.: HOP, a language for programming the Web 2.0. In: Proceedings of the First Dynamic Languages Symposium, Portland, Oregon (October 2006).
[30]
Syme, D.: F#r web page, research.microsoft.com/projects/ilx/fsharp.aspx
[31]
Thiemann, P.:WASH/CGI: server-side web scripting with sessions and typed, compositional forms. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, Springer, Heidelberg (2002).
[32]
Trevor, J., Swamy, N., Hicks, M.: Defeating Script Injection Attacks with Browser-Enforced Embedded Policies. World Wide Web (May 2007).
[33]
Van Roy, P.: Convergence in language design: a case of lightning striking four times in the same place. In: Hagiya, M., Wadler, P. (eds.) FLOPS 2006. LNCS, vol. 3945, Springer, Heidelberg (2006).
[34]
Wan, Z., Hudak, P.: Functional reactive programming from first principles. In: PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, Vancouver, British Columbia, Canada (2000).
[35]
Wiederman, B., Cook, W.: Extracting queries by static analysis of transparent persistence. POPL (2007).
[36]
Wong, L.: Kleisli, a functional query system. JFP, 10(1) (2000).
[37]
XML Query and XSL Working Groups. XQuery 1.0: An XML Query Language, W3C Working Draft (2005).

Cited By

View all
  • (2024)The Meerkat Vision: Language Support for Live, Scalable, Reactive Web AppsProceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3689492.3690048(54-67)Online publication date: 17-Oct-2024
  • (2023)HasChor: Functional Choreographic Programming for All (Functional Pearl)Proceedings of the ACM on Programming Languages10.1145/36078497:ICFP(541-565)Online publication date: 31-Aug-2023
  • (2022)Functional collection programming with semi-ring dictionariesProceedings of the ACM on Programming Languages10.1145/35273336:OOPSLA1(1-33)Online publication date: 29-Apr-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide Proceedings
FMCO'06: Proceedings of the 5th international conference on Formal methods for components and objects
November 2006
297 pages
ISBN:3540747915
  • Editors:
  • Frank S. De Boer,
  • Marcello M. Bonsangue,
  • Susanne Graf,
  • Willem-Paul De Roever

Sponsors

  • KNAW: Koninklijke Nederlandse Akademie van Wetenschappen
  • NWO: Dutch Orgartisation for Scientific Research
  • IPA: Institute for Programming research and Algorithmics
  • CWI: Centrum voor Wiskunde en Informatica-Netherlands
  • LIACS: The Leiden Institute of Advanced Computer Science

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 07 November 2006

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 10 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)The Meerkat Vision: Language Support for Live, Scalable, Reactive Web AppsProceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3689492.3690048(54-67)Online publication date: 17-Oct-2024
  • (2023)HasChor: Functional Choreographic Programming for All (Functional Pearl)Proceedings of the ACM on Programming Languages10.1145/36078497:ICFP(541-565)Online publication date: 31-Aug-2023
  • (2022)Functional collection programming with semi-ring dictionariesProceedings of the ACM on Programming Languages10.1145/35273336:OOPSLA1(1-33)Online publication date: 29-Apr-2022
  • (2021)Scalable querying of nested dataProceedings of the VLDB Endowment10.14778/3430915.343093314:3(445-457)Online publication date: 9-Dec-2021
  • (2021)Communication-safe web programming in TypeScript with routed multiparty session typesProceedings of the 30th ACM SIGPLAN International Conference on Compiler Construction10.1145/3446804.3446854(94-106)Online publication date: 2-Mar-2021
  • (2021)Lightweight Declarative Server-Side Web ProgrammingPractical Aspects of Declarative Languages10.1007/978-3-030-67438-0_7(107-123)Online publication date: 18-Jan-2021
  • (2020)Reorganizing queries with groupingProceedings of the 19th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3425898.3426960(50-62)Online publication date: 16-Nov-2020
  • (2020)Evolution of the WebDSL runtime: reliability engineering of the WebDSL web programming languageCompanion Proceedings of the 4th International Conference on Art, Science, and Engineering of Programming10.1145/3397537.3397553(77-83)Online publication date: 23-Mar-2020
  • (2020)Curating Covid-19 Data in LinksProvenance and Annotation of Data and Processes10.1007/978-3-030-80960-7_19(237-243)Online publication date: 22-Jun-2020
  • (2020)Session Types Without SophistryFunctional and Logic Programming10.1007/978-3-030-59025-3_5(66-87)Online publication date: 14-Sep-2020
  • Show More Cited By

View Options

View options

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media