isabella232 / llvmmop Goto Github PK
View Code? Open in Web Editor NEWThis project forked from runtimeverification/llvmmop
MOP framework for LLVM
License: MIT License
This project forked from runtimeverification/llvmmop
MOP framework for LLVM
License: MIT License
JavaMOP 2.3.1 README ==1. Overview== Monitoring-Oriented Programming, abbreviated MOP, is a software development and analysis framework aiming at reducing the gap between formal specification and implementation by allowing them together to form a system. In MOP, runtime monitoring is supported and encouraged as a fundamental principle for building reliable software: monitors are automatically synthesized from specified properties and integrated into the original system to check its dynamic behaviors during execution. When a specification is violated or validated at runtime, user-defined actions will be triggered, which can be any code from information logging to runtime recovery. One can understand MOP from at least three perspectives: as a discipline allowing one to improve safety, reliability and dependability of a system by monitoring its requirements against its implementation at runtime; as an extension of programming languages with logics (one can add logical statements anywhere in the program, referring to past or future states); and as a lightweight formal method. JavaMOP is an instance of MOP for Java. For more information, refer to the following URL: javamop.googlecode.com ==2. Installation== For detailed installation instructions, please see the INSTALL file. As the tool is still under active development, it is recommended that you install JavaMOP directly from the svn repository and update it regularly using svn up from the base directory to benefit of the latest fixes and features. ==3. Usage== =3.1 Linux and Mac (POSIX) If you want to use the Logic Repository Server provided by UIUC, use the -remote option when using the 'javamop' script. If you want to use the Logic Repository included in this package, use the -local option when using the 'javamop' script. Using the remote repository is the preferred method for computers with viable Internet connections as it allows us to collect usage statistics used to improve JavaMOP. The 'javamop' script has the following usage: Usage) javamop [-v] [-d <target directory>] <specification file or dir> -v option is verbose mode -d option is used to specify the target directory where the resulting aspect code will be saved. Specification files must have The .mop file extension. Example) javamop -d examples/FSM/ examples/FSM/HasNext.mop For more options, type 'javamop' or 'javamop -h' =3.2 Windows If you want to use the Logic Repository server provided by UIUC, use -remote option when using the script 'javamop.bat' If you want to use the Logic Repository included in this package, use -local option when using the script 'javamop.bat' The script, 'javamop.bat' has the following usage. Usage) javamop.bat [-v] [-d <target directory>] <specification file or dir> The -v option is used to specify verbose mode. The -d option is used to specify the target directory where the resulting aspect code will be saved. Specification files must have The .mop file extension. Example) javamop.bat -d examples\FSM examples\FSM\HasNext.mop For more options, type 'javamop.bat' or 'javamop.bat -h' ==4. Additional Features of the JavaMOP Distribution== =4.1 Executing a Monitored Program When you execute a monitored program, you need to include the AspectJ library and JavaMOP Runtime Library in your class path. The JavaMOP Runtime Library is provided in this package in the javamop2.3/lib directory. A typical value of this is: In Windows, c:\javamop2.3\lib\javamoprt.jar In Linux and Mac, ~/javamop2.3/lib/javamoprt.jar Add this to the left end of the "CLASSPATH" followed by ";" (in Windows) or ":" (in Linux and Mac). For more information, refer to Section 5 from the following URL http://java.sun.com/j2se/1.4.2/install-windows.html =4.2 Running the Logic Repository Tool JavaMOP uses the Logic Repository automatically. Therefore, you do not need to invoke the Logic Repository explicitly. JavaMOP will connect to the Logic Repository automatically and retrieve a monitor for the given specification. However, it is possible to use the Logic Repository directly for other uses. To use the LogicRepository, type 'logicrepository' in Linux and Mac, 'logicrepository.bat' in Windows. And provide input through the standard input. For the XML syntax of input, refer to the following pages: http://fsl.cs.uiuc.edu/index.php/Special:LogicRepository2.3 The resulting monitoring code is piped to standard output, in XML format. =5. Contact Information We welcome your interest in JavaMOP. Your feedback, comments and bug reports are highly appreciated. Please feel free to contact us by sending email to [email protected]. Bugs and feature requests may be submitted at the project website at javamop.googlecode.com.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.