Skip to content

Seniz is a domain-specific language designed for Formalism-Driven Development (FDD).

License

Notifications You must be signed in to change notification settings

yepengding/Seniz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Seniz

Seniz is a framework for Formalism-Driven Development (FDD). This repository holds a sample implementation.

Usage

Standalone

usage: java -jar Seniz.jar [options] <source>
 -h,--help               print help.
 -n,--name <namespace>   Java root namespace.
 -o,--output <path>      output directory path.
 -v,--version            print current version.

Generate from a single source file

java -jar Seniz.jar -n org.veritasopher.seniz.generation example/Simple0.sz

Generate from a source directory

java -jar Seniz.jar -n org.veritasopher.seniz.generation example/Semaphore

Library

  1. Include Seniz.jar into a project
  2. Initialize a set of source file paths
String path="path_to_source";
        Set<String> sourceFilePaths=new HashSet<>();
// Parse Seniz source file paths into sourceFilePaths
  1. Build global environment
MasterController masterController=new MasterController();
        GlobalEnvironment env=masterController.compile(sourceFilePaths);
  1. Generate Java programs
JavaGenerator javaGenerator=new JavaGenerator(env);
        javaGenerator.generateToDir("namespace","output_path");

Build

Environment

  • Java 17

Compile

mvn clean compile assembly:single

Related Project

Reference

Ding, Y., & Sato, H. (2022). Formalism-Driven Development: Concepts, Taxonomy, and Practice. Applied Sciences, 12(7), 3415. MDPI


This open-source project under MIT License is only for educational purposes.

About

Seniz is a domain-specific language designed for Formalism-Driven Development (FDD).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published