Difference between revisions of "Sygnm"

From sygnm
Jump to: navigation, search
(Documentation)
(Documentation)
Line 31: Line 31:
 
** [[Configuration]]
 
** [[Configuration]]
 
** [[Overview of sygnm architecture]]
 
** [[Overview of sygnm architecture]]
** [[The object system]]
+
** [[Objects, types and function overloading]]
** [[Types and function overloading]]
 
 
** [[Expression trees and evaluation]]
 
** [[Expression trees and evaluation]]
 
** [[Packages]]
 
** [[Packages]]

Revision as of 01:56, 12 May 2017


sygnm is a general purpose computer algebra system, currently in pre-alpha state of development, which differs in several aspects from other current computer algebra systems. It is free software, licensed under the GNU AGPL.

sygnm aims to:

  • build on existing open source technologies while keeping the whole system consistent
  • be highly modular and extensible
  • be portable
  • support parallellization
  • focus solely on mathematics, not being a general purpose programming environment
  • respect user rights and privacy
  • be a good base for future development

How is sygnm different?

  • no new programming language to learn: sygnm can operate in a simplified interactive ("calculator") mode, or can be used as a library from existing languages (currently C++ and Python)
  • implements a dynamic type system for runtime function overload resolution on top of C++, based on typeclasses and parametric polymorphism
  • highly modular, divided into three main parts: core, packages and user interfaces
  • unique I/O architecture supporting multiple expression parsers, renderers and I/O interfaces with different syntaxes, which can be combined freely
  • fully localizable, Unicode can be used everywhere in the sygnm system (even in function names and other identifiers)

Download sygnm

sygnm is currently in pre-alpha, there are no releases yet. The source is available at https://git.sygnm.org. There is some documentation on how to build and run sygnm from source.

Documentation