Set Theory 0.30.d
Set Theory 0.30.d
Rosivaldo Fernandes Alves
December 2, 2018
This software project, called set_theory, aims to provide the Eiffel (programming language) Community with a rich and expressive library of classes modeled upon the concepts of set theory. In order to get details about motivations, design decisions and a sketch of road-map, please see https://www.eiffel.org/blog/rosivaldo/2017/09/set-theory.
In the current state (https://launchpad.net/set-theory/incremental/0.30.d), this project deviates significantly from the one firstly released at https://launchpad.net/set-theory/trunk. Instead of rendering here a lengthy justification for the adopted changes, I prefer to answer any question on that or any other aspect of the project via e-mail (firstname.lastname@example.org) or at https://answers.launchpad.net/set-theory/+addquestion.
- Specifications, properties, implementation and tests were rewritten as much as possible to leverage from using agents.
- Several new features, intended to be used instead of in-line agents, were specified, implemented and tested.
- Still no diagram included (please see the reason in previous release);
- EiffelStudio still can not render right some samples of code that use class (instance-free) features, causing the classes that have such kind of code be rendered incompletely on automatic documentation (e.g. STI_SET).
- Some agent-oriented features were added to classes that model sets and n-tuples; all of such features were specified, implemented and tested.
- Overall refactoring has heavily reorganized the cluster hierarchy, in order to ease visual (i.e. via diagrams) documenting.
- Though the automatic HTML documentation has been updated (file://$(system_path)/doc/html/index.html), it includes no diagram, which could not be rendered due to the same bug in EiffelStudio already mentioned on release 0.30.a.
- Implementation-specific features of sti_sets cluster were put under tests, uncovering several errors unseen when testing only specification features.
- General refactoring removed redundant code, saving some 1910 lines of code.
- due too a bug (not yet understood) in EiffelStudio’s documentation generator, the system HTML documentation (file://$(system_path)/doc/html/index.html) was not updated to reflect the current state of the system; inside EiffelStudio, however, clusters’ diagrams were updated properly.
- Implemented features: "sets" clusters, which consist of
- sts_sets cluster: minimal specification of core concepts in set theory;
- stp_sets_properties cluster: extended specification of core concepts in set theory;
- sti_sets cluster: implementation of core concepts in set theory, grounded on previous clusters;
- stt_sets_tests cluster: test suites for the implementation in sti_sets.
- Pending features:
- numbers-related clusters: numeric sets, i.e. N, Z, R and C, specified, implemented and tested according to all previous clusters.
Major releases ahead
Once the current release is consolidated, I will add to the project the clusters “relations”, “functions” and “operations”.