User Tools

Site Tools


concepts:tool

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
concepts:tool [2009/10/15 17:50]
shona.weldon
concepts:tool [2010/11/12 15:52] (current)
marcus.williams
Line 1: Line 1:
 ====== Tool On Objects Language ====== ====== Tool On Objects Language ======
  
-Tools-On-Objects Language, is an interactive language for manipulating structured data objects including multi-dimensioned arrays, sets and geometric objects. ​ TOOL is the only language needed throughout the whatIf? platform. +Tools-On-Objects Language, is an interactive language for manipulating structured data objects including multi-dimensioned arrays, sets and geometric objects. ​ TOOL is the only ((Occasionally,​ for complex source data files, ​pre-processor script written in another ​language ​(e.gAWK, Perl, Rmay be used.)) language needed throughout ​the whatIf? platform.
- +
-===== History ===== +
- +
-TOOL inspired by other array languages such as: +
-  * APL (a programing ​language)[[http://​en.wikipedia.org/​wiki/​APL_%28programming_language%29]] +
-  * S (a statistical programing language[[http://en.wikipedia.org/​wiki/​S_%28programming_language%29]] +
- +
-One of the main concepts taken from these is that one object can inform another. ​ This is used extensively in TOOL for the dimensions of variables. ​ Each dimension of a variable is one of 3 types of objects: set, category, or sequence+
  
 ===== One Language to Rule Them All ===== ===== One Language to Rule Them All =====
Line 27: Line 19:
   * display and analyze data by manipulating the data and displaying tables, graphs, and maps   * display and analyze data by manipulating the data and displaying tables, graphs, and maps
   * interactively test code and check data through a TOOL console   * interactively test code and check data through a TOOL console
 +
 +===== History =====
 +TOOL inspired by other array languages such as:
 +  * APL (a programing language)[[http://​en.wikipedia.org/​wiki/​APL_%28programming_language%29]]
 +  * S (a statistical programing language) [[http://​en.wikipedia.org/​wiki/​S_%28programming_language%29]]
 +
 +One of the main concepts taken from these is that one object can inform another. ​ This is used extensively in TOOL for the dimensions of variables. ​ Each dimension of a variable is one of 3 types of objects: set, category, or sequence. ​
 +
 +
  
  
 ===== 4GL ===== ===== 4GL =====
  
-TOOL is fourth-generation programming language (abbreviated 4GL) [[http://​en.wikipedia.org/​wiki/​4GL]] ​specifically designed for handling large arrays of multi-dimensional data.  This makes it well suited for model building.+TOOL is fourth-generation programming language (abbreviated 4GL) specifically designed for handling large arrays of multi-dimensional data.  This makes it well suited for model building.
  
 Specialized algorithms for model building are built into TOOL for efficiency and simplicity and they are called tools. ​ There are currently 137 tools in TOOL and this list is ever growing as a need arises. Here are a few common modelling constructs built into TOOL: Specialized algorithms for model building are built into TOOL for efficiency and simplicity and they are called tools. ​ There are currently 137 tools in TOOL and this list is ever growing as a need arises. Here are a few common modelling constructs built into TOOL:
Line 40: Line 41:
   * ...and many more!   * ...and many more!
  
 +
 +=== Why 4GL? ===
 +Here's an excerpt from [[http://​en.wikipedia.org/​wiki/​4GL]]
 +
 +"In the evolution of computing, the 4GL followed the 3GL in an upward trend toward higher abstraction and statement power.
 +
 +The natural-language,​ block-structured mode of the third-generation programming languages improved the process of software development. However, 3GL development methods can be slow and error-prone. It became clear that some applications could be developed more rapidly by adding a higher-level programming language and methodology which would generate the equivalent of very complicated 3GL instructions with fewer errors. In some senses, software engineering arose to handle 3GL development. 4GL and 5GL projects are more oriented toward problem solving and systems engineering."​
  
  
 ===== Multidimensional Support ===== ===== Multidimensional Support =====
  
-TOOL handles multidimensional arrays (objects) in a way that makes the math as simple as working with single value variables. ​ For example to multiply a population stock variable which is broken down by region(reg),​ gender(gen),​ time(t) and age(a) by a survival rate by only region time and age the math is simply:+TOOL handles multidimensional arrays (objects) in a way that makes the math as simple as working with single-value (i.e. scalar) ​variables. ​ For example to multiply a population stock variable which is broken down by region(reg),​ gender(gen),​ time(t) and age(a) by a survival rate by only region time and age the math is simply:
 <​code>​ <​code>​
 survivors[reg,​gen,​t,​a] = population[reg,​gen,​t,​a] * survivalRate[reg,​t,​a] survivors[reg,​gen,​t,​a] = population[reg,​gen,​t,​a] * survivalRate[reg,​t,​a]
Line 51: Line 59:
  
 ===== Dimensional Analysis ===== ===== Dimensional Analysis =====
-FIXME+Dimensional Analysis is a process which is run as a part of the model design process within Documentor. It is essentially "​running"​ the model without the data, and it tests for proper coding syntax as well as shape consistency and coherency. 
 + 
 +Every variable in a whatIf? model has a **shape** which is a definition of the attributes in terms object type (array, scalar, set), data type (real numbers, integers), the number of dimensions and the dimension name(s), its standard international unit of measure, its alternate unit of measure, and its entity. Information pertaining to shape is created during the design process in Documentor.
  
-explain "shape" ​and TOOL inheritance+Every operation using and creating variables keeps track of shape to produce coherent and consistent data throughout the model. ​ Every tool has the ability to check the shapes and operations for this consistency ​and this all done during Dimensional Analysis. ​ With errors reported to the user.
  
 ===== Unit Conversions Handled ​ ===== ===== Unit Conversions Handled ​ =====
Line 59: Line 69:
 All the data stored in TOOL objects is stored in its primary SI units (International System of Units). The units the data is to be displayed, called the alternate unit of measure (altUom), in is set on the object to simplify viewing data.  The relationship between any altUom and SI units are specified in a conversion table. ​ All the data stored in TOOL objects is stored in its primary SI units (International System of Units). The units the data is to be displayed, called the alternate unit of measure (altUom), in is set on the object to simplify viewing data.  The relationship between any altUom and SI units are specified in a conversion table. ​
  
-For example,+For example ​consider a petajoule and a tonne in SI units,
  
 1e-15 petajoule = 1 m<​sup>​2</​sup>​kg/​s<​sup>​2</​sup> ​ 1e-15 petajoule = 1 m<​sup>​2</​sup>​kg/​s<​sup>​2</​sup> ​
Line 65: Line 75:
 0.001 tonne = 1 kg 0.001 tonne = 1 kg
  
-is represented internally as: +are represented internally as: 
  
 | altUom | m | kg | s | C | rad | sterad | conversion | | altUom | m | kg | s | C | rad | sterad | conversion |
Line 73: Line 83:
 ===== Import/​Export channels ​ ===== ===== Import/​Export channels ​ =====
  
-TOOL is used to read and write data external to the model and it supports various formats and file types:+TOOL is used to read and write data external to the model and it supports various formats and file types as described in the following article:
  
-Formats: +[[howtos:workwithdata:​Data Format vs File Format]]
-  * Record  +
-  * Coordinate  +
-  * Odometer+
  
-File Types: 
-  * CSV files  
-  * Delimited files - any character but tab is most common 
-  * dbf 
  
  
concepts/tool.1255629029.txt.gz · Last modified: 2009/10/15 17:50 by shona.weldon