Abstract

Static verification of a program source code correctness is an important element of software reliability. Formal verification of software programs involves proving that a program satisfies a formal specification of its behavior. Many languages use both static and dynamic type checking. With such approach, the static type checker verifies everything possible at compile time, and the dynamic one checks the remaining. The current state of the Jolie programming language includes a dynamic type system. Consequently, it allows avoidable run-time errors. A static type system for the language has been formally defined on paper but lacks an implementation yet. In this paper, we describe a prototype of Jolie Static Type Checker (JSTC), which employs a technique based on a SMT solver. We describe the theory behind and the implementation, and the process of static analysis. The article is published in the authors’ wording.

Highlights

  • The microservice architecture is a style inspired by service-oriented computing that promises to change the way in which software is perceived, conceived and designed [17]

  • We describe a prototype of Jolie Static Type Checker (JSTC), which employs a technique based on a SMT solver

  • Jolie is the first programming language oriented to the microservice architecture

Read more

Summary

Introduction

The microservice architecture is a style inspired by service-oriented computing that promises to change the way in which software is perceived, conceived and designed [17]. Jolie [20] is the only language natively supporting microservice architectures [9] and, currently, has dynamic type checking only. Static type checking is generally desirable for programming languages improving software quality, lowering the number of bugs and preventing avoidable errors. Jolie Static Type Checker: a Prototype idea is to allow compilers to identify as many issues as possible before run the program, and avoid a vast number of trivial bugs, catching them at a very early stage. Microservices [6] is an architectural style evolved from Service-Oriented Architectures [12] According to this approach, applications are composed by small independent building blocks that communicate via message passing. Applications are composed by small independent building blocks that communicate via message passing We support the idea that a paradigm-based language would bring benefit to development in terms of simplicity and development cost

Objectives
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call