libcppsim

libcppsim is a process-oriented, discrete-event simulation library in C++

https://github.com/mmarzolla/libcppsim

Science Score: 31.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.3%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

libcppsim is a process-oriented, discrete-event simulation library in C++

Basic Info
  • Host: GitHub
  • Owner: mmarzolla
  • License: gpl-3.0
  • Language: C
  • Default Branch: main
  • Size: 730 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation Authors

README.md

libcppsim

Description

libcppsim is a process-oriented, discrete-event simulation library for the C++ programming language. libcppsim provides the user with a set of basic primitives which are roughly equivalent to those provided by the SIMULATION class of the Simula language. libcppsim defines a process class which represents a simulation process. Moreover, facilities for process scheduling and statistics collection are also provided. The user may build more sophisticated simulation entities or synchronization mechanisms on top of those provided.

libcppsim was originally developed by Moreno Marzolla during his PhD in Computer Science at Ca' Foscari University of Venice. This library has not been updated since a long time; however, it is written in standard C++ without any "modern" feature (which might even be considered a good thing), and therefore still compiles on modern Linux distributions (tested with Ubuntu 20.04). Since there are people around the world still using it, I made the source code available on this repository.

Requirements

This program has been tested on Linux, but should work on other Unix-like systems. The only system-dependent file is the implementation of coroutines that requires either setjmp/longjmp or makecontext/swapcontext system calls. The coroutine implementation used in the libcppsim library is based on

K. Helsgaun, A portable C++ library for coroutine sequencing, DATALOGISKE SKRIFTER (Writings on Computer Science), 1999, Roskilde University.

Details and source code are available here.

Compilation

The compilation is currently based on make/autoconf:

./configure
make

Citation

The libcppsim library has been described in the following publication (see CITATION for a BibTeX format):

Moreno Marzolla, libcppsim: a Simula-like, Portable Process-Oriented Simulation Library in C++, Proceedings of ESM'04, the 18th European Simulation Multiconference (Graham Horton, editor), Magdeburg, DE, jun 13–16 2004, ISBN 3-936150-35-4, pp. 222–227 PDF

Owner

  • Name: Moreno Marzolla
  • Login: mmarzolla
  • Kind: user
  • Location: Italy
  • Company: University of Bologna

Associate professor of computer science

Citation (CITATION)

If you use this library, please cite as:

Moreno Marzolla, libcppsim: a Simula-like, Portable Process-Oriented
Simulation Library in C++, Proceedings of
ESM'04, the 18th European Simulation Multiconference (Graham Horton, editor), Magdeburg, DE, jun 13–16 2004, ISBN 3-936150-35-4, pp. 222–227

BibTex citation block:

@inproceedings{libcppsim,
  author = "Moreno Marzolla",
  title  = "\texttt{libcppsim}: a {Simula}-like, Portable Process-Oriented Simulation Library in {C++}",
  booktitle = "Proc. of ESM'04, the 18th European Simulation Multiconference",
  editor    = "Graham Horton",
  publisher = "SCS--European Publishing House",
  month     = jun # " 13--16",
  year      = 2004,
  address   = "Magdeburg, DE",
  isbn      = "3-936150-35-4",
  pages     = "222--227"
}

GitHub Events

Total
Last Year