Efficient High-Level Abstractions for Web Programming

被引:0
|
作者
Richard-Foy, Julien [1 ]
Barais, Olivier [1 ]
Jezequel, Jean-Marc [1 ]
机构
[1] Univ Rennes 1, IRISA, F-35014 Rennes, France
关键词
Heterogeneous code generation; Domain-specific languages; Scala; Web;
D O I
10.1145/2637365.2517227
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Writing large Web applications is known to be difficult. One challenge comes from the fact that the application's logic is scattered into heterogeneous clients and servers, making it difficult to share code between both sides or to move code from one side to the other. Another challenge is performance: while Web applications rely on ever more code on the client-side, they may run on smart phones with limited hardware capabilities. These two challenges raise the following problem: how to benefit from high-level languages and libraries making code complexity easier to manage and abstracting over the clients and servers differences without trading this ease of engineering for performance? This article presents high-level abstractions defined as deep embedded DSLs in Scala that can generate efficient code leveraging the characteristics of both client and server environments. We compare performance on client-side against other candidate technologies and against hand written low-level JavaScript code. Though code written with our DSL has a high level of abstraction, our benchmark on a real world application reports that it runs as fast as hand tuned low-level JavaScript code.
引用
收藏
页码:53 / 60
页数:8
相关论文
共 50 条
  • [1] High-Level Programming Abstractions for Distributed Graph Processing
    Kalavri, Vasiliki
    Vlassov, Vladimir
    Haridi, Seif
    [J]. IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, 2018, 30 (02) : 305 - 324
  • [2] Programming the Web with high-level programming languages
    Graunke, P
    Krishnamurthi, S
    Van der Hoeven, S
    Felleisen, M
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2001, 2028 : 122 - 136
  • [3] High-level abstractions for message-passing parallel programming
    Chan, F
    Cao, JN
    Sun, YD
    [J]. PARALLEL COMPUTING, 2003, 29 (11-12) : 1589 - 1621
  • [4] TiDA: High-Level Programming Abstractions for Data Locality Management
    Unat, Didem
    Tan Nguyen
    Zhang, Weiqun
    Farooqi, Muhammed Nufail
    Bastem, Burak
    Michelogiannakis, George
    Almgren, Ann
    Shalf, John
    [J]. HIGH PERFORMANCE COMPUTING, 2016, 9697 : 116 - 135
  • [5] Programming microcontrollers through high-level abstractions: The OMicroB project
    Varoumas, Steven
    Pesin, Basile
    Vaugon, Benoit
    Chailloux, Emmanuel
    [J]. JOURNAL OF COMPUTER LANGUAGES, 2023, 77
  • [6] Efficient high-level parallel programming
    Botorog, GH
    Kuchen, H
    [J]. THEORETICAL COMPUTER SCIENCE, 1998, 196 (1-2) : 71 - 107
  • [7] High-Level Cryptographic Abstractions
    Kane, Christopher
    Lin, Bo
    Chand, Saksham
    Stoller, Scott D.
    Liu, Yanhong A.
    [J]. PROCEEDINGS OF THE 14TH ACM SIGSAC WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY (PLAS '19), 2019, : 31 - 43
  • [8] EFFICIENT HIGH-LEVEL PROGRAMMING ON THE AMT DAP
    FLANDERS, PM
    HELLIER, RL
    JENKINS, HD
    PAVELIN, CJ
    VANDENBERGHE, S
    [J]. PROCEEDINGS OF THE IEEE, 1991, 79 (04) : 524 - 536
  • [9] Efficient High-Level Programming in Plain Java
    Rui S. Silva
    João L. Sobral
    [J]. International Journal of Parallel Programming, 2023, 51 : 22 - 42
  • [10] A high-level symbolic language for distributed Web programming
    Visser, CT
    Eliëns, A
    [J]. IC'2000: PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON INTERNET COMPUTING, 2000, : 93 - 97