Giter Site home page Giter Site logo

transformersprimeabcxyz / ada-traits-containers-adacore Goto Github PK

View Code? Open in Web Editor NEW

This project forked from adacore/ada-traits-containers

0.0 2.0 0.0 575 KB

Generic Ada Library for Algorithms and Containers

Makefile 0.12% Python 4.31% HTML 0.84% Shell 0.01% Ada 89.69% JavaScript 0.94% C++ 4.10%

ada-traits-containers-adacore's Introduction

Generic Ada Library for Algorithms and Containers

Goals

This library is another containers library for Ada. Although it provides containers that do not exist in the standard Ada runtime (graphs for instance), it is more interesting for the flexibility it proposes:

  • Bounded/Unbounded containers and even more variants suitable for use with the SPARK language.

  • Finite/Indefinite elements, and even more specialized variants optimized for specific types

  • Pre and Post conditions, compatible with SPARK, so that some variants of the containers can be proven.

  • Highly efficient; the user has full control over memory allocations, checks, locks, ...

All this flexibility is done via the intensive use of generic packages, themselves used to instantiate other generic packages.

Check the documentation for more details on the design of the API, and its current usage.

Compiling

The library itself is pure Ada code, and only requires a working Ada compiler to be available in your environment.

This library comes with a testsuite which measures the performance of the various variants of the containers, and compares them with C++ equivalent (or near equivalents). This testsuite generates a nice interactive HTML file.

Compiling and running the testsuite requires that you also have a C++ compiler in your environment. In addition, you must install the Boost Graph Library (http://www.boost.org).

You must also download and install the GNAT Components Collection.

Once this is done, modify the shared.gpr file. Set the variable ```Boost_Include''' to point to the install prefix for Boost:

   Boost_Include := "/usr/include";

Finally, compile and run the test with

make

and finally open the file index.html in a browser to view the performance comparison.

ada-traits-containers-adacore's People

Contributors

briot avatar clairedross avatar nikokrock avatar yannickmoy avatar

Watchers

 avatar  avatar

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.