Programs

A program is a unit of functionality. The unit contains functionality related to a common topic. A program can require functionality of other programs. The programs contains a description of where to find the required programs.

A program is identified with three pieces of information:

  • Namespace
  • Name
  • Version

Parts

  • Name
  • Organization Namespace
  • Scientific Namespace
  • Version
  • Files
  • Runtime Dependencies
  • Development Dependencies

Name

The name of the program.

For more information, see identifiers.

Namespace

The namespace of the program.

<Part1>.<Part2>. ... .<PartN>

This is used to differentiate different programs from each other. For examplel, two different domains might use the same term. In that case the name space specifies the domain.

Organization Namespace

The organization namespace is the identification of the organization that developed the code.

<Country code>.<Organization name>.<Organization Division 1> ...

Scientific Namespace

Even though society is organized into organizations, human knowledge is not. The scientific namespace defined which part of human knowledge the program is a part of.

<Branch of science>.<Sub-division 1>.<Sub-division 2> ...

Main Branches:

  • physics
  • chemistry
  • geology
  • meteorology
  • astronomy
  • biology
  • mathematics
  • computerscience
  • ++

Version

<major>.<minor>.<patch><-SNAPSHOT>

  • Major – The major version number.
  • Minor – The minor version number.
  • Patch – The patch version number.
  • SNAPSHOT – Whether the version is a snapshot.

Files

The files contain the functions and data structures of the program.

For more information about files, see Files.

Dependencoies

The dependencies are a list of identifiers of other programs.

For more information about dependencies, see Imports.

Runtime dependencies

Other programs required to run the program.

Development dependencies

Other programs required to develop the program, including running the tests.