Iliffe vector (original) (raw)
In computer programming, an Iliffe vector, also known as a display, is a data structure used to implement multi-dimensional arrays. An Iliffe vector for an n-dimensional array (where n ≥ 2) consists of a vector (or 1-dimensional array) of pointers to an (n − 1)-dimensional array. They are often used to avoid the need for expensive multiplication operations when performing address calculation on an array element. They can also be used to implement jagged arrays, such as triangular arrays, triangular matrices and other kinds of irregularly shaped arrays. The data structure is named after John K. Iliffe.
Property | Value |
---|---|
dbo:abstract | In computer programming, an Iliffe vector, also known as a display, is a data structure used to implement multi-dimensional arrays. An Iliffe vector for an n-dimensional array (where n ≥ 2) consists of a vector (or 1-dimensional array) of pointers to an (n − 1)-dimensional array. They are often used to avoid the need for expensive multiplication operations when performing address calculation on an array element. They can also be used to implement jagged arrays, such as triangular arrays, triangular matrices and other kinds of irregularly shaped arrays. The data structure is named after John K. Iliffe. Their disadvantages include the need for multiple chained pointer indirections to access an element, and the extra work required to determine the next row in an n-dimensional array to allow an optimising compiler to prefetch it. Both of these are a source of delays on systems where the CPU is significantly faster than main memory. The Iliffe vector for a 2-dimensional array is simply a vector of pointers to vectors of data, i.e., the Iliffe vector represents the columns of an array where each column element is a pointer to a row vector. Multidimensional arrays in languages such as Java, Python (multidimensional lists), Ruby, Visual Basic .NET, Perl, PHP, JavaScript, Objective-C (when using NSArray, not a row-major C-style array), Swift, and Atlas Autocode are implemented as Iliffe vectors. Iliffe vectors were used to implement sparse multidimensional arrays in the OLAP product Holos. Iliffe vectors are contrasted with dope vectors in languages such as Fortran, which contain the stride factors and offset values for the subscripts in each dimension. (en) |
dbo:wikiPageExternalLink | http://www.chilton-computing.org.uk/acl/literature/books/compilingtechniques/p003.htm |
dbo:wikiPageID | 1696737 (xsd:integer) |
dbo:wikiPageLength | 2653 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1076479549 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Python_(programming_language) dbr:Ruby_(programming_language) dbr:Perl dbr:Visual_Basic_.NET dbr:Dope_vector dbr:Jagged_array dbc:Arrays dbr:Computer_programming dbr:Pointer_(computer_programming) dbr:Data_structure dbr:Fortran dbr:PHP dbr:JavaScript dbr:Java_(programming_language) dbr:Array_data_structure dbr:Atlas_Autocode dbr:John_Iliffe_(computer_designer) dbr:Swift_(programming_language) dbr:Holos dbr:Objective-C dbr:Triangular_array dbr:Triangular_matrix dbr:Row-major |
dbp:wikiPageUsesTemplate | dbt:Cite_journal dbt:Cite_web dbt:Comp-sci-stub dbt:Primary_sources dbt:Reflist |
dcterms:subject | dbc:Arrays |
gold:hypernym | dbr:Structure |
rdf:type | yago:WikicatArrays yago:Abstraction100002137 yago:Arrangement107938773 yago:Array107939382 yago:Group100031264 dbo:Building |
rdfs:comment | In computer programming, an Iliffe vector, also known as a display, is a data structure used to implement multi-dimensional arrays. An Iliffe vector for an n-dimensional array (where n ≥ 2) consists of a vector (or 1-dimensional array) of pointers to an (n − 1)-dimensional array. They are often used to avoid the need for expensive multiplication operations when performing address calculation on an array element. They can also be used to implement jagged arrays, such as triangular arrays, triangular matrices and other kinds of irregularly shaped arrays. The data structure is named after John K. Iliffe. (en) |
rdfs:label | Iliffe vector (en) |
owl:sameAs | freebase:Iliffe vector yago-res:Iliffe vector wikidata:Iliffe vector dbpedia-sr:Iliffe vector https://global.dbpedia.org/id/cVgR |
prov:wasDerivedFrom | wikipedia-en:Iliffe_vector?oldid=1076479549&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Iliffe_vector |
is dbo:knownFor of | dbr:John_Iliffe_(computer_designer) |
is dbo:wikiPageDisambiguates of | dbr:Iliffe |
is dbo:wikiPageWikiLink of | dbr:C_syntax dbr:List_of_data_structures dbr:Dope_vector dbr:Jagged_array dbr:S-algol dbr:Array_(data_structure) dbr:Array_(data_type) dbr:Matrix_representation dbr:Michael_P._Barnett dbr:Irregular_matrix dbr:John_C._Slater dbr:John_Iliffe_(computer_designer) dbr:Iliffe dbr:ICL_Distributed_Array_Processor dbr:Row-_and_column-major_order |
is foaf:primaryTopic of | wikipedia-en:Iliffe_vector |