Code Monkey home page Code Monkey logo

wp3's Issues

Resolve Variables and Relations while parsing using semantic predicates of ANTLR

Algorithm: If a variable is defined in a quantifier, comprehension or let declaration, semantically resolve all identifiers with the same name as variables in the scope of that declaration. Resolve other identifiers in the scope as relations. This approach maintains a good approximation for a semantically valid parse tree since the variables are always declared before using them. Variables may shadow each other, and may shadow field names. Conventional lexical scoping, with the innermost binding taking precedence.

Translation of AlloyInEcore models to Z Specification Language using CZT Corejava

CZT Corejava of CZT: Community Z Tools for developing and reasoning about Z specifications

Corejava is part of the CZT project that aims at providing a framework for building formal methods tools, especially for the Z specification language. This subproject provides AST (Annotated Syntax Tree) classes for Z and its extensions, written in Java.

Translating Z to Alloy
https://sourceforge.net/p/czt/code/ci/master/tree/z2alloy/

Transformation of Ecore Models into Java Compilation Units for type checking and various semantic errors of language constructs

This may provide us a way of semantic analysis of types, generic types and type parameters. We can promote stringtemplate to generate a Java program files from AlloyInEcore AST.

We will exploit the Java Compiler Interface in javax.tools. The approach that I propose is to transform each class type constructs into interface and employ the java's type inheritance mechanism using interfaces to simulate state inheritance of ECore or MOF. To enable this approach, every structural elements should be rephrased as methods (getters and setters); every nested package definitions are flattened, and each class definition are converted into a compilation unit.

Unnecessary dependencies

- 'plugin name'

* 'dependencies that will be removed'

- eu.modelwriter.marker.startup

* org.eclipse.mylyn.wikitext.tests,
* org.eclipse.mylyn.wikitext.markdown.core

-> We have EcoreDropAdapter class to connect IDragAndDropService on startup.
In this class, we are using MarkdownParser to parse markdown text, and it creates dependency on plugins above.

- eu.modelwriter.marker

* org.eclipse.mylyn.wikitext.core

-> In this project, we have MarkdownToReqIfDocumentBuilder which extends org.eclipse.mylyn.wikitext.core.DocumentBuilder

- eu.modelwriter.marker.command

* org.eclipse.mylyn.wikitext.core,
* org.eclipse.mylyn.wikitext.markdown.core.

-> In this project, we have CreateReqifSpecFromMarkdownHandler class. If this handler is triggered, we are creating MarkdownParser instance, setting its document builder as MarkdownToReqIfDocumentBuilder, and running its parser.

In conclusion,

-> Maybe we should create our own parser or any other alternative.

Transformation of Ecore Models and Constraints into Alloy Specifications for type checking and various semantic errors of expressions and formulas

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.