[SparForte][Banner]
[Top Main Menu] Intro | Tutorials | Reference | Packages | Examples | Contributors   [Back Page]      [Next Page]  

Vision

This is a presentation of the general vision of SparForte for volunteers who wish to contribute to this open source project.

[Excel]

SparForte is an Open Source project. It was developed by volunteers mostly in their spare time. Please support SparForte through actively contributing to SparForte, whether helping users with using their first Open Source program, translating the SparForte documentation to languages other than US-English or contributing source code as a programmer.

The latest stable SparForte source code is made available on the PegaSoft web site on the SparForte download page. There is also a Git repository which makes available the latest unstable development version but this is only made available to core SparForte developers. A copy of the development version can be made on request.

We welcome all contributions but please understand that we may reject a contribution if it conflicts with the design or goals of SparForte. Please contact us before beginning any large contributions to SparForte.

GCC Ada / GNAT: The Foundation of SparForte

The Ada FAQ describes Ada this way:

Ada is an advanced, modern programming language, designed and standardized to support and strongly encourage widely recognized software engineering principles: reliability, portability, modularity, reusability, programming as a human activity, efficiency, maintainability, information hiding, abstract data types, genericity, concurrent programming, object-oriented programming, etc.

All validated Ada compilers (i.e. a huge majority of the commercial Ada compilers) have passed a controlled validation process using an extensive validation suite. Ada is not a superset or extension of any other language. Ada does not allow the dangerous practices or effects of old languages, although it does provide standardized mechanisms to interface with other languages such as Fortran, Cobol, and C.

Ada is recognized as an excellent vehicle for education in programming and software engineering, including for a first programming course.

Ada is defined by an international standard (the language reference manual, or LRM), which has been revised in 1995. Ada is taught and used all around the world (not just in the USA). Ada is used in a very wide range of applications: banking, medical devices, telecommunications, air traffic control, airplanes, railroad signalling, satellites, rockets, etc.

In "Programming in Ada 95", John Barnes describes Ada as a language for large scale development that stresses integrity and readability. Some of Ada's key goals are readability (programs are read more than the are written), strong typing (preventing confusion between logically distinct items), "programming in the large" (encapsulation and library management), exception handling, data abstraction, object oriented and generic programming, tasking (multithreading) and interfacing with other languages. Ada is commonly used in industries like scientific research, areospace and robotics--areas where programs are large and there is a low tolerance of erros.

General Design Goals

  • All aspects of SparForte should respect the problem of code longevity, should aid in bug removal and facilitate maintenance. SparForte implements concepts like readability, strong typing, safety/reliability, portability, catching the most mistakes possible at script start and features to support for very large programs and teams.
  • Within the limits described here, SparForte should conform to ISO standard Ada and/or GCC Ada. This will ease learning, allow SparForte to work in larger environments, allow for code evolution and reuse, and leverage the proven capabilities of Ada as much as possible.
  • When a feature is provided for convenience, it should either be restricted to the environment where it is a convenience or it should be optionally disabled.
  • Disabled features (like with pragma restriction) can not be "turned back on". Features should only become stronger and tighter, not weaker and looser.
  • As a general rule, make sure a features work with large programs and teams before implementing methods of breaking them as opposed to starting with something quick-and-dirty and trying to "scale it up".
  • Although SparForte is a general purpose language intended for a wide audience, it is recognizing that Ada is a language popular in aerospace, science, finance, robotics, embedded systems and as a language to teach computer science. SparForte should not neglect this support base in its effort to to alienate other clients.
  • SparForte is not a rewrite of the Bourne shell in Ada, nor is it a shell that speaks Ada for the sake of Ada enthusiasts.
  • When considering features from other languages, such features must be fitted into the SparForte vision: they should avoid unnecessary assumptions, be redesigned to meet issues such as code longevity, and should permit the generalization of features. That is, features should not be copied from another language and dropped "as-is" into SparForte.
  • Anyone seeking to contribute to SparForte should have a good idea of Why SparForte Works.
 
[Right Submenu]

 Vision

 Roadmap

 Source Guide

 UNIX Ports

 Window Ports

 Bindings

[Back to Top] Back To Top [Small Forte Symbol]