commit
						9da2eaf3d1
					
				 7 changed files with 440 additions and 0 deletions
			
			
		- 
					27.gitignore
- 
					20CMakeLists.txt
- 
					340LICENSE
- 
					0LICENSE-MRMC.txt
- 
					24resources/GUIDELINES.txt
- 
					3src/MRMCConfig.h.in
- 
					26src/mrmc-cpp.cpp
| @ -0,0 +1,27 @@ | |||
| #Visual Studio files | |||
| *.[Oo]bj | |||
| *.user | |||
| *.aps | |||
| *.pch | |||
| *.vspscc | |||
| *.vssscc | |||
| *_i.c | |||
| *_p.c | |||
| *.ncb | |||
| *.suo | |||
| *.tlb | |||
| *.tlh | |||
| *.bak | |||
| *.[Cc]ache | |||
| *.ilk | |||
| *.log | |||
| *.lib | |||
| *.sbr | |||
| *.sdf | |||
| *.opensdf | |||
| *.unsuccessfulbuild | |||
| ipch/ | |||
| obj/ | |||
| 
 | |||
| # The build Dir | |||
| build/ | |||
| @ -0,0 +1,20 @@ | |||
| cmake_minimum_required (VERSION 2.6) | |||
| 
 | |||
| project (MRMC-cpp) | |||
| 
 | |||
| # The version number. | |||
| set (MRMC_CPP_VERSION_MAJOR 1) | |||
| set (MRMC_CPP_VERSION_MINOR 0) | |||
|   | |||
| # configure a header file to pass some of the CMake settings | |||
| # to the source code | |||
| configure_file ( | |||
|   "${PROJECT_SOURCE_DIR}/src/MRMCConfig.h.in" | |||
|   "${PROJECT_BINARY_DIR}/MRMCConfig.h" | |||
|   ) | |||
|   | |||
| # add the binary tree to the search path for include files | |||
| # so that we will find TutorialConfig.h | |||
| include_directories("${PROJECT_BINARY_DIR}") | |||
| 
 | |||
| add_executable(MRMC-cpp src/mrmc-cpp.cpp) | |||
| @ -0,0 +1,340 @@ | |||
| 		    GNU GENERAL PUBLIC LICENSE | |||
| 		       Version 2, June 1991 | |||
| 
 | |||
|  Copyright (C) 1989, 1991 Free Software Foundation, Inc. | |||
|                        51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA | |||
|  Everyone is permitted to copy and distribute verbatim copies | |||
|  of this license document, but changing it is not allowed. | |||
| 
 | |||
| 			    Preamble | |||
| 
 | |||
|   The licenses for most software are designed to take away your | |||
| freedom to share and change it.  By contrast, the GNU General Public | |||
| License is intended to guarantee your freedom to share and change free | |||
| software--to make sure the software is free for all its users.  This | |||
| General Public License applies to most of the Free Software | |||
| Foundation's software and to any other program whose authors commit to | |||
| using it.  (Some other Free Software Foundation software is covered by | |||
| the GNU Library General Public License instead.)  You can apply it to | |||
| your programs, too. | |||
| 
 | |||
|   When we speak of free software, we are referring to freedom, not | |||
| price.  Our General Public Licenses are designed to make sure that you | |||
| have the freedom to distribute copies of free software (and charge for | |||
| this service if you wish), that you receive source code or can get it | |||
| if you want it, that you can change the software or use pieces of it | |||
| in new free programs; and that you know you can do these things. | |||
| 
 | |||
|   To protect your rights, we need to make restrictions that forbid | |||
| anyone to deny you these rights or to ask you to surrender the rights. | |||
| These restrictions translate to certain responsibilities for you if you | |||
| distribute copies of the software, or if you modify it. | |||
| 
 | |||
|   For example, if you distribute copies of such a program, whether | |||
| gratis or for a fee, you must give the recipients all the rights that | |||
| you have.  You must make sure that they, too, receive or can get the | |||
| source code.  And you must show them these terms so they know their | |||
| rights. | |||
| 
 | |||
|   We protect your rights with two steps: (1) copyright the software, and | |||
| (2) offer you this license which gives you legal permission to copy, | |||
| distribute and/or modify the software. | |||
| 
 | |||
|   Also, for each author's protection and ours, we want to make certain | |||
| that everyone understands that there is no warranty for this free | |||
| software.  If the software is modified by someone else and passed on, we | |||
| want its recipients to know that what they have is not the original, so | |||
| that any problems introduced by others will not reflect on the original | |||
| authors' reputations. | |||
| 
 | |||
|   Finally, any free program is threatened constantly by software | |||
| patents.  We wish to avoid the danger that redistributors of a free | |||
| program will individually obtain patent licenses, in effect making the | |||
| program proprietary.  To prevent this, we have made it clear that any | |||
| patent must be licensed for everyone's free use or not licensed at all. | |||
| 
 | |||
|   The precise terms and conditions for copying, distribution and | |||
| modification follow. | |||
| 
 | |||
| 		    GNU GENERAL PUBLIC LICENSE | |||
|    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | |||
| 
 | |||
|   0. This License applies to any program or other work which contains | |||
| a notice placed by the copyright holder saying it may be distributed | |||
| under the terms of this General Public License.  The "Program", below, | |||
| refers to any such program or work, and a "work based on the Program" | |||
| means either the Program or any derivative work under copyright law: | |||
| that is to say, a work containing the Program or a portion of it, | |||
| either verbatim or with modifications and/or translated into another | |||
| language.  (Hereinafter, translation is included without limitation in | |||
| the term "modification".)  Each licensee is addressed as "you". | |||
| 
 | |||
| Activities other than copying, distribution and modification are not | |||
| covered by this License; they are outside its scope.  The act of | |||
| running the Program is not restricted, and the output from the Program | |||
| is covered only if its contents constitute a work based on the | |||
| Program (independent of having been made by running the Program). | |||
| Whether that is true depends on what the Program does. | |||
| 
 | |||
|   1. You may copy and distribute verbatim copies of the Program's | |||
| source code as you receive it, in any medium, provided that you | |||
| conspicuously and appropriately publish on each copy an appropriate | |||
| copyright notice and disclaimer of warranty; keep intact all the | |||
| notices that refer to this License and to the absence of any warranty; | |||
| and give any other recipients of the Program a copy of this License | |||
| along with the Program. | |||
| 
 | |||
| You may charge a fee for the physical act of transferring a copy, and | |||
| you may at your option offer warranty protection in exchange for a fee. | |||
| 
 | |||
|   2. You may modify your copy or copies of the Program or any portion | |||
| of it, thus forming a work based on the Program, and copy and | |||
| distribute such modifications or work under the terms of Section 1 | |||
| above, provided that you also meet all of these conditions: | |||
| 
 | |||
|     a) You must cause the modified files to carry prominent notices | |||
|     stating that you changed the files and the date of any change. | |||
| 
 | |||
|     b) You must cause any work that you distribute or publish, that in | |||
|     whole or in part contains or is derived from the Program or any | |||
|     part thereof, to be licensed as a whole at no charge to all third | |||
|     parties under the terms of this License. | |||
| 
 | |||
|     c) If the modified program normally reads commands interactively | |||
|     when run, you must cause it, when started running for such | |||
|     interactive use in the most ordinary way, to print or display an | |||
|     announcement including an appropriate copyright notice and a | |||
|     notice that there is no warranty (or else, saying that you provide | |||
|     a warranty) and that users may redistribute the program under | |||
|     these conditions, and telling the user how to view a copy of this | |||
|     License.  (Exception: if the Program itself is interactive but | |||
|     does not normally print such an announcement, your work based on | |||
|     the Program is not required to print an announcement.) | |||
| 
 | |||
| These requirements apply to the modified work as a whole.  If | |||
| identifiable sections of that work are not derived from the Program, | |||
| and can be reasonably considered independent and separate works in | |||
| themselves, then this License, and its terms, do not apply to those | |||
| sections when you distribute them as separate works.  But when you | |||
| distribute the same sections as part of a whole which is a work based | |||
| on the Program, the distribution of the whole must be on the terms of | |||
| this License, whose permissions for other licensees extend to the | |||
| entire whole, and thus to each and every part regardless of who wrote it. | |||
| 
 | |||
| Thus, it is not the intent of this section to claim rights or contest | |||
| your rights to work written entirely by you; rather, the intent is to | |||
| exercise the right to control the distribution of derivative or | |||
| collective works based on the Program. | |||
| 
 | |||
| In addition, mere aggregation of another work not based on the Program | |||
| with the Program (or with a work based on the Program) on a volume of | |||
| a storage or distribution medium does not bring the other work under | |||
| the scope of this License. | |||
| 
 | |||
|   3. You may copy and distribute the Program (or a work based on it, | |||
| under Section 2) in object code or executable form under the terms of | |||
| Sections 1 and 2 above provided that you also do one of the following: | |||
| 
 | |||
|     a) Accompany it with the complete corresponding machine-readable | |||
|     source code, which must be distributed under the terms of Sections | |||
|     1 and 2 above on a medium customarily used for software interchange; or, | |||
| 
 | |||
|     b) Accompany it with a written offer, valid for at least three | |||
|     years, to give any third party, for a charge no more than your | |||
|     cost of physically performing source distribution, a complete | |||
|     machine-readable copy of the corresponding source code, to be | |||
|     distributed under the terms of Sections 1 and 2 above on a medium | |||
|     customarily used for software interchange; or, | |||
| 
 | |||
|     c) Accompany it with the information you received as to the offer | |||
|     to distribute corresponding source code.  (This alternative is | |||
|     allowed only for noncommercial distribution and only if you | |||
|     received the program in object code or executable form with such | |||
|     an offer, in accord with Subsection b above.) | |||
| 
 | |||
| The source code for a work means the preferred form of the work for | |||
| making modifications to it.  For an executable work, complete source | |||
| code means all the source code for all modules it contains, plus any | |||
| associated interface definition files, plus the scripts used to | |||
| control compilation and installation of the executable.  However, as a | |||
| special exception, the source code distributed need not include | |||
| anything that is normally distributed (in either source or binary | |||
| form) with the major components (compiler, kernel, and so on) of the | |||
| operating system on which the executable runs, unless that component | |||
| itself accompanies the executable. | |||
| 
 | |||
| If distribution of executable or object code is made by offering | |||
| access to copy from a designated place, then offering equivalent | |||
| access to copy the source code from the same place counts as | |||
| distribution of the source code, even though third parties are not | |||
| compelled to copy the source along with the object code. | |||
| 
 | |||
|   4. You may not copy, modify, sublicense, or distribute the Program | |||
| except as expressly provided under this License.  Any attempt | |||
| otherwise to copy, modify, sublicense or distribute the Program is | |||
| void, and will automatically terminate your rights under this License. | |||
| However, parties who have received copies, or rights, from you under | |||
| this License will not have their licenses terminated so long as such | |||
| parties remain in full compliance. | |||
| 
 | |||
|   5. You are not required to accept this License, since you have not | |||
| signed it.  However, nothing else grants you permission to modify or | |||
| distribute the Program or its derivative works.  These actions are | |||
| prohibited by law if you do not accept this License.  Therefore, by | |||
| modifying or distributing the Program (or any work based on the | |||
| Program), you indicate your acceptance of this License to do so, and | |||
| all its terms and conditions for copying, distributing or modifying | |||
| the Program or works based on it. | |||
| 
 | |||
|   6. Each time you redistribute the Program (or any work based on the | |||
| Program), the recipient automatically receives a license from the | |||
| original licensor to copy, distribute or modify the Program subject to | |||
| these terms and conditions.  You may not impose any further | |||
| restrictions on the recipients' exercise of the rights granted herein. | |||
| You are not responsible for enforcing compliance by third parties to | |||
| this License. | |||
| 
 | |||
|   7. If, as a consequence of a court judgment or allegation of patent | |||
| infringement or for any other reason (not limited to patent issues), | |||
| conditions are imposed on you (whether by court order, agreement or | |||
| otherwise) that contradict the conditions of this License, they do not | |||
| excuse you from the conditions of this License.  If you cannot | |||
| distribute so as to satisfy simultaneously your obligations under this | |||
| License and any other pertinent obligations, then as a consequence you | |||
| may not distribute the Program at all.  For example, if a patent | |||
| license would not permit royalty-free redistribution of the Program by | |||
| all those who receive copies directly or indirectly through you, then | |||
| the only way you could satisfy both it and this License would be to | |||
| refrain entirely from distribution of the Program. | |||
| 
 | |||
| If any portion of this section is held invalid or unenforceable under | |||
| any particular circumstance, the balance of the section is intended to | |||
| apply and the section as a whole is intended to apply in other | |||
| circumstances. | |||
| 
 | |||
| It is not the purpose of this section to induce you to infringe any | |||
| patents or other property right claims or to contest validity of any | |||
| such claims; this section has the sole purpose of protecting the | |||
| integrity of the free software distribution system, which is | |||
| implemented by public license practices.  Many people have made | |||
| generous contributions to the wide range of software distributed | |||
| through that system in reliance on consistent application of that | |||
| system; it is up to the author/donor to decide if he or she is willing | |||
| to distribute software through any other system and a licensee cannot | |||
| impose that choice. | |||
| 
 | |||
| This section is intended to make thoroughly clear what is believed to | |||
| be a consequence of the rest of this License. | |||
| 
 | |||
|   8. If the distribution and/or use of the Program is restricted in | |||
| certain countries either by patents or by copyrighted interfaces, the | |||
| original copyright holder who places the Program under this License | |||
| may add an explicit geographical distribution limitation excluding | |||
| those countries, so that distribution is permitted only in or among | |||
| countries not thus excluded.  In such case, this License incorporates | |||
| the limitation as if written in the body of this License. | |||
| 
 | |||
|   9. The Free Software Foundation may publish revised and/or new versions | |||
| of the General Public License from time to time.  Such new versions will | |||
| be similar in spirit to the present version, but may differ in detail to | |||
| address new problems or concerns. | |||
| 
 | |||
| Each version is given a distinguishing version number.  If the Program | |||
| specifies a version number of this License which applies to it and "any | |||
| later version", you have the option of following the terms and conditions | |||
| either of that version or of any later version published by the Free | |||
| Software Foundation.  If the Program does not specify a version number of | |||
| this License, you may choose any version ever published by the Free Software | |||
| Foundation. | |||
| 
 | |||
|   10. If you wish to incorporate parts of the Program into other free | |||
| programs whose distribution conditions are different, write to the author | |||
| to ask for permission.  For software which is copyrighted by the Free | |||
| Software Foundation, write to the Free Software Foundation; we sometimes | |||
| make exceptions for this.  Our decision will be guided by the two goals | |||
| of preserving the free status of all derivatives of our free software and | |||
| of promoting the sharing and reuse of software generally. | |||
| 
 | |||
| 			    NO WARRANTY | |||
| 
 | |||
|   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | |||
| FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN | |||
| OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | |||
| PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | |||
| OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |||
| MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS | |||
| TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE | |||
| PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | |||
| REPAIR OR CORRECTION. | |||
| 
 | |||
|   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | |||
| WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | |||
| REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | |||
| INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | |||
| OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | |||
| TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | |||
| YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | |||
| PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | |||
| POSSIBILITY OF SUCH DAMAGES. | |||
| 
 | |||
| 		     END OF TERMS AND CONDITIONS | |||
| 
 | |||
| 	    How to Apply These Terms to Your New Programs | |||
| 
 | |||
|   If you develop a new program, and you want it to be of the greatest | |||
| possible use to the public, the best way to achieve this is to make it | |||
| free software which everyone can redistribute and change under these terms. | |||
| 
 | |||
|   To do so, attach the following notices to the program.  It is safest | |||
| to attach them to the start of each source file to most effectively | |||
| convey the exclusion of warranty; and each file should have at least | |||
| the "copyright" line and a pointer to where the full notice is found. | |||
| 
 | |||
|     <one line to give the program's name and a brief idea of what it does.> | |||
|     Copyright (C) <year>  <name of author> | |||
| 
 | |||
|     This program is free software; you can redistribute it and/or modify | |||
|     it under the terms of the GNU General Public License as published by | |||
|     the Free Software Foundation; either version 2 of the License, or | |||
|     (at your option) any later version. | |||
| 
 | |||
|     This program is distributed in the hope that it will be useful, | |||
|     but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |||
|     GNU General Public License for more details. | |||
| 
 | |||
|     You should have received a copy of the GNU General Public License | |||
|     along with this program; if not, write to the Free Software | |||
|     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA | |||
| 
 | |||
| 
 | |||
| Also add information on how to contact you by electronic and paper mail. | |||
| 
 | |||
| If the program is interactive, make it output a short notice like this | |||
| when it starts in an interactive mode: | |||
| 
 | |||
|     Gnomovision version 69, Copyright (C) year name of author | |||
|     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | |||
|     This is free software, and you are welcome to redistribute it | |||
|     under certain conditions; type `show c' for details. | |||
| 
 | |||
| The hypothetical commands `show w' and `show c' should show the appropriate | |||
| parts of the General Public License.  Of course, the commands you use may | |||
| be called something other than `show w' and `show c'; they could even be | |||
| mouse-clicks or menu items--whatever suits your program. | |||
| 
 | |||
| You should also get your employer (if you work as a programmer) or your | |||
| school, if any, to sign a "copyright disclaimer" for the program, if | |||
| necessary.  Here is a sample; alter the names: | |||
| 
 | |||
|   Yoyodyne, Inc., hereby disclaims all copyright interest in the program | |||
|   `Gnomovision' (which makes passes at compilers) written by James Hacker. | |||
| 
 | |||
|   <signature of Ty Coon>, 1 April 1989 | |||
|   Ty Coon, President of Vice | |||
| 
 | |||
| This General Public License does not permit incorporating your program into | |||
| proprietary programs.  If your program is a subroutine library, you may | |||
| consider it more useful to permit linking proprietary applications with the | |||
| library.  If this is what you want to do, use the GNU Library General | |||
| Public License instead of this License. | |||
| @ -0,0 +1,24 @@ | |||
| /* ---------------------------------- GUIDELINES FOR MRMC DEVELOPMENT ---------------------------------- */ | |||
| 
 | |||
| In general, we adhere to the Google Styleguide for C++, found under http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml | |||
| 
 | |||
|  - C++ file names are <class>.h and <class>.cpp | |||
|  - all Source Code is to reside in the src/ Directory or an appropriate subdirectory, apart from Third-Party Librarys and modules stored under resources/ | |||
|  - all Source Code is to be documented using DoxyGen Syntax: | |||
| 
 | |||
| 	/*! \brief A chess piece | |||
| 	 * The abstract parent of all chess pieces. */ | |||
| 
 | |||
| 	class ChessPiece { | |||
| 		/*! Whether we've moved */ | |||
| 		bool bMoved; | |||
| 
 | |||
| 		/*! Move to P(x, y) | |||
| 		 * \param x The x coordinate | |||
| 		 * \param y The y coordinate | |||
| 		 * \return Whether the move was legal */ | |||
| 		bool bMove(int x, int y); | |||
| 	} | |||
|  - opening brackets on the same line: if (true) { | |||
|  - always use brackets for "if", "while", "for" and the like, even if it is a one-liner | |||
|  - use Common Sense | |||
| @ -0,0 +1,3 @@ | |||
| // the configured options and settings for MRMC_CPP | |||
| #define MRMC_CPP_VERSION_MAJOR @MRMC_CPP_VERSION_MAJOR@ | |||
| #define MRMC_CPP_VERSION_MINOR @MRMC_CPP_VERSION_MINOR@ | |||
| @ -0,0 +1,26 @@ | |||
| /*
 | |||
|  *	MRMC - C++ Rebuild | |||
|  *	 | |||
|  *	MRMC is a model checker for discrete-time and continuous-time Markov | |||
|  *	reward models. It supports reward extensions of PCTL and CSL (PRCTL | |||
|  *	and CSRL), and allows for the automated verification of properties | |||
|  *	concerning long-run and instantaneous rewards as well as cumulative | |||
|  *	rewards. | |||
|  *	 | |||
|  *  Authors: Philipp Berger | |||
|  * | |||
|  *  Description: Central part of the application containing the main() Method | |||
|  */ | |||
| 
 | |||
| #include <iostream>
 | |||
| 
 | |||
| #include "MRMCConfig.h"
 | |||
|   | |||
| int main(int argc, char* argv[]) { | |||
| 	 | |||
| 	std::cout << "Hello, World." << std::endl; | |||
| 	std::cout << "This is MRMC-Cpp Version " << MRMC_CPP_VERSION_MAJOR << "." << MRMC_CPP_VERSION_MINOR << std::endl; | |||
| 	 | |||
| 	return 0; | |||
| } | |||
| 
 | |||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue