EMME: a formal tool for ECMAScript Memory Model Evaluation

01/30/2018
by   Cristian Mattarei, et al.
0

Nearly all web-based interfaces are written in JavaScript. Given its prevalence, the support for high performance JavaScript code is crucial. The ECMA Technical Committee 39 (TC39) has recently extended the ECMAScript language (i.e., JavaScript) to support shared memory accesses between different threads. The extension is given in terms of a natural language memory model specification. In this paper we describe a formal approach for validating both the memory model and its implementations in various JavaScript engines. We first introduce a formal version of the memory model and report results on checking the model for consistency and other properties. We then introduce our tool, EMME, built on top of the Alloy analyzer, which leverages the model to generate all possible valid executions of a given JavaScript program. Finally, we report results using EMME together with small test programs to analyze industrial JavaScript engines. We show that EMME can find bugs as well as missed opportunities for optimization.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/15/2021

JEST: N+1-version Differential Testing of Both JavaScript Engines and Specification

Modern programming follows the continuous integration (CI) and continuou...
research
05/16/2023

Auto-Tuning High-Performance Programs Using Model Checking in Promela

The paper combines research approaches that traditionally have been disj...
research
10/05/2018

Prototyping Formal System Models with Active Objects

We propose active object languages as a development tool for formal syst...
research
07/13/2017

A Web-Based Tool for Analysing Normative Documents in English

Our goal is to use formal methods to analyse normative documents written...
research
08/07/2023

From Ambiguity to Explicitness: NLP-Assisted 5G Specification Abstraction for Formal Analysis

Formal method-based analysis of the 5G Wireless Communication Protocol i...
research
05/03/2019

On the Impact of Memory Allocation on High-Performance Query Processing

Somewhat surprisingly, the behavior of analytical query engines is cruci...
research
02/12/2021

VSync: Push-Button Verification and Optimization for Synchronization Primitives on Weak Memory Models (Technical Report)

This technical report contains material accompanying our work with same ...

Please sign up or login with your details

Forgot password? Click here to reset