A software development company since 1986
The keyboard my sword, software technology my windmills
Jane's Table Description
The ease of communication for the actions that are to be applied to information structures is critical to any software development project. Having used many Assemblers, Compilers, and scripting languages I can find no approach that works. I am therefore going to describe my approach. First I will redefine the terms for our programming structures, and second I will define the language to communicate actions on these structures.
Jane's primary objective is to eliminate the need for documentation. I find that documentation has no real meaning to the actions that are being performed. The nouns (variable names) used in current technologies do not imply context, nor do the verbs (function names) imply explicit action, which are the main reasons for documentation. By using common knowledge we can create a technology that needs no documentation.
If I dissect the table structure I find familiar terms and structures similar to every other structure, therefore I will not create new terminology.
The Cell is the only element type that the Jane system has, It has the same characteristics as an n-dimensional table. The cell is a load on-demand technology.
These five terms will be the ones used by Jane to build every other structure. The terms Cell, Row, Column, Table, and Block are identical, the only difference is when they are labeled: Every structure has the same capabilities and programming syntax.
The terms Row and Column are used in a context: When in context of their internal addressing of a Cell the term is explicit, A Row is addressed and labeled by Name, and a Column is addressed and labeled by Number. When reference to the vertical cells they are columns, and the horizontal cells are termed rows. The actual implementation of a Row and a Column is the same, both can be referenced by name or by number.
I shall use upper case Row and Column as their internal use, and as lower case for the horizontal row, and vertical column
A Cell has a Name, Index, Offset and Data Type which can be implicit from the container structure or explicit.
Grouping of rows is done as horizontal named partitions, and columns as vertical named partitions. The Row structures are partitioned by cell name, by cell index or by cell content, and the Column structures are partitioned by cell Index or by cell content. A partition is a physical characteristic of a structure.
Cells can be selected by partition name(s), by a list of row and/or column indexes, offsets, or names, by a row, column, or matrix bitmap, or by a function to select cells by content.
Each cell can have any number of dimensions. Each dimension can be given a unique name, addressing scheme and characteristics.
A 2-dimension structure might be named a "table" with the vertical elements given a singular name of "Row" and a plural name of "Rows", and the vertical dimension having a singular name of "Column" and a plural name of "Columns";
Accessing the cells in the structure. Each variable is a cell of n-dimensions and can be accessed with or without dimensional references.
Any simple variable can be referenced as a 1 unit n-dimensional table. A = 1, A = 1, A[1,1] = 1, A[1,1,1] = 1;