scholarly journals Static Analysis for ECMAScript String Manipulation Programs

2020 ◽  
Vol 10 (10) ◽  
pp. 3525 ◽  
Author(s):  
Vincenzo Arceri ◽  
Isabella Mastroeni ◽  
Sunyi Xu

In recent years, dynamic languages, such as JavaScript or Python, have been increasingly used in a wide range of fields and applications. Their tricky and misunderstood behaviors pose a great challenge for static analysis of these languages. A key aspect of any dynamic language program is the multiple usage of strings, since they can be implicitly converted to another type value, transformed by string-to-code primitives or used to access an object-property. Unfortunately, string analyses for dynamic languages still lack precision and do not take into account some important string features. In this scenario, more precise string analyses become a necessity. The goal of this paper is to place a first step for precisely handling dynamic language string features. In particular, we propose a new abstract domain approximating strings as finite state automata and an abstract interpretation-based static analysis for the most common string manipulating operations provided by the ECMAScript specification. The proposed analysis comes with a prototype static analyzer implementation for an imperative string manipulating language, allowing us to show and evaluate the improved precision of the proposed analysis.

2018 ◽  
Vol 44 (2) ◽  
pp. 329-348
Author(s):  
Cesko Voeten ◽  
Menno van Zaanen

Languages vary in the way stress is assigned to syllables within words. This article investigates the learnability of stress systems in a wide range of languages. The stress systems can be described using finite-state automata with symbols indicating levels of stress (primary, secondary, or no stress). Finite-state automata have been the focus of research in the area of grammatical inference for some time now. It has been shown that finite-state machines are learnable from examples using state-merging. One such approach, which aims to learn k-testable languages, has been applied to stress systems with some success. The family of k-testable languages has been shown to be efficiently learnable (in polynomial time). Here, we extend this approach to k, l-local languages by taking not only left context, but also right context, into account. We consider empirical results testing the performance of our learner using various amounts of context (corresponding to varying definitions of phonological locality). Our results show that our approach of learning stress patterns using state-merging is more reliant on left context than on right context. Additionally, some stress systems fail to be learned by our learner using either the left-context k-testable or the left-and-right-context k, l-local learning system. A more complex merging strategy, and hence grammar representation, is required for these stress systems.


2021 ◽  
Vol 8 (2) ◽  
pp. 103
Author(s):  
Yessica Fara Desvia ◽  
Rosadi Rosadi ◽  
Frieyadie Frieyadie ◽  
Tuti Haryanti ◽  
Windu Gata

Abstrak: Parfum banyak digemari oleh berbagai kalangan, salah satunya adalah parfum laundry. Parfum laundry memiliki berbagai macam varian aroma, meliputi aroma buah, aroma bunga, aroma perpaduan buah dan bunga, dan aroma kayu-kayuan. Parfum laundry ini merupakan rangkaian akhir dalam proses laundry. Saat ini pelanggan menerima hasil laundry dengan aroma parfum yang dipilih secara random sesuai ketersediaan pihak laundry, hal ini menjadi masalah karena pelanggan tidak dapat memilih aroma parfum laundry sesuai dengan keinginan mereka. Dengan alasan tersebut maka diperlukan suatu rancangan sebuah Vending Machine (VM), rancangan VM ini menggunakan metode Finite State Automata (FSA) dengan jenis Non-Deterministic Finite Automata (NFA), metode tersebut digunakan karena dapat mengakomodir lebih dari satu kondisi dalam satu pilihan. Metode FSA jenis NFA dibuat dengan tahapan analisa proses bisnis, diagram state, desain VM dan pengujian. Hasil dari penelitian ini dengan adanya VM pemilihan parfum laundry pakaian, maka mempermudah pelanggan untuk dapat memilih parfum laundry sehingga pelanggan memperoleh hasil laundry dengan aroma parfum sesuai pilihan mereka.   Kata kunci: finite state automata, parfum laundry, vending machine   Abstract: Perfume is much favored by various circles, one of which is laundry perfume. Laundry perfume has a wide range of scent variants, including fruity scents, floral scents, fruity floral scents, and woody scents. This laundry perfume is the final line in the laundry process. Currently customers receive laundry results with perfume scents selected randomly according to the availability of the laundry party, this is a problem because customers cannot choose laundry perfume scents according to their wishes. For this reason, it is necessary to design a Vending Machine (VM), this VM design uses the Finite State Automata (FSA) method with the Non-Deterministic Finite Automata (NFA) type, this method is used because it can accommodate more than one condition in one choice. The FSA type of NFA method is made with the stages of business process analysis, state diagrams, VM design and testing. The results of this study with the VM in the selection of clothes laundry perfume, it makes it easier for customers to be able to choose laundry perfumes so that customers get laundry results with the perfume scent of their choice.   Keywords: finite state automata, laundry perfume, vending machine


2021 ◽  
Vol 8 (1) ◽  
Author(s):  
Bilal Elghadyry ◽  
Faissal Ouardi ◽  
Sébastien Verel

AbstractWeighted finite-state transducers have been shown to be a general and efficient representation in many applications such as text and speech processing, computational biology, and machine learning. The composition of weighted finite-state transducers constitutes a fundamental and common operation between these applications. The NP-hardness of the composition computation problem presents a challenge that leads us to devise efficient algorithms on a large scale when considering more than two transducers. This paper describes a parallel computation of weighted finite transducers composition in MapReduce framework. To the best of our knowledge, this paper is the first to tackle this task using MapReduce methods. First, we analyze the communication cost of this problem using Afrati et al. model. Then, we propose three MapReduce methods based respectively on input alphabet mapping, state mapping, and hybrid mapping. Finally, intensive experiments on a wide range of weighted finite-state transducers are conducted to compare the proposed methods and show their efficiency for large-scale data.


2021 ◽  
Vol 54 (7) ◽  
pp. 1-37
Author(s):  
Jihyeok Park ◽  
Hongki Lee ◽  
Sukyoung Ryu

Understanding program behaviors is important to verify program properties or to optimize programs. Static analysis is a widely used technique to approximate program behaviors via abstract interpretation. To evaluate the quality of static analysis, researchers have used three metrics: performance, precision, and soundness. The static analysis quality depends on the analysis techniques used, but the best combination of such techniques may be different for different programs. To find the best combination of analysis techniques for specific programs, recent work has proposed parametric static analysis . It considers static analysis as black-box parameterized by analysis parameters , which are techniques that may be configured without analysis details. We formally define the parametric static analysis, and we survey analysis parameters and their parameter selection in the literature. We also discuss open challenges and future directions of the parametric static analysis.


2015 ◽  
Vol 8 (3) ◽  
pp. 721-730 ◽  
Author(s):  
Shambhu Sharan ◽  
Arun K. Srivastava ◽  
S. P. Tiwari

Sign in / Sign up

Export Citation Format

Share Document