Generating Python Code From Object-Z Specifications

02/17/2018
by   A. F. Al-Azzawi, et al.
0

Object-Z is an object-oriented specification language which extends the Z language with classes, objects, inheritance and polymorphism that can be used to represent the specification of a complex system as collections of objects. There are a number of existing works that mapped Object-Z to C++ and Java programming languages. Since Python and Object-Z share many similarities, both are object-oriented paradigm, support set theory and predicate calculus moreover, Python is a functional programming language which is naturally closer to formal specifications, we propose a mapping from Object-Z specifications to Python code that covers some Object-Z constructs and express its specifications in Python to validate these specifications. The validations are used in the mapping covered preconditions, post-conditions, and invariants that are built using lambda function and Python's decorator. This work has found Python is an excellent language for developing libraries to map Object-Z specifications to Python.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/17/2021

Reducing Programs to Objects

C++, Java, C#, Python, Ruby, JavaScript are the most powerful object-ori...
research
09/05/2022

An Exploratory Study on the Predominant Programming Paradigms in Python Code

Python is a multi-paradigm programming language that fully supports obje...
research
01/31/2023

Designing text representations for existing data using the TextFormats Specification Language

TextFormats is a software system for efficient and user-friendly creatio...
research
12/05/2011

Extending Object-Oriented Languages by Declarative Specifications of Complex Objects using Answer-Set Programming

Many applications require complexly structured data objects. Developing ...
research
01/15/2018

Algebraic Specifications of Wayfinding Using Cognitive Map

This paper outlines the formal representation of the environment in whic...
research
11/26/2019

GOOL: A Generic Object-Oriented Language (extended version)

We present GOOL, a Generic Object-Oriented Language. It demonstrates tha...
research
04/26/2014

SPEEDY: An Eclipse-based IDE for invariant inference

SPEEDY is an Eclipse-based IDE for exploring techniques that assist user...

Please sign up or login with your details

Forgot password? Click here to reset