Academic Journal

Elimination of Java array bounds checks in the presence of indirection.

Λεπτομέρειες βιβλιογραφικής εγγραφής
Τίτλος: Elimination of Java array bounds checks in the presence of indirection.
Συγγραφείς: Luján, Mikel, Gurd, John R., Freeman, T. L., Miguel, José
Πηγή: Concurrency & Computation: Practice & Experience; Apr/May2005, Vol. 17 Issue 5/6, p489-514, 26p, 1 Diagram, 5 Graphs
Θεματικοί όροι: Java programming language, Computer programming, Electronic data processing, Artificial languages, Computer science
Περίληψη: The Java language specification states that every access to an array needs to be within the bounds of that array, i.e. between 0 and array length - 1. Different techniques for different programming languages have been proposed to eliminate explicit bounds checks. Some of these techniques are implemented in off-the-shelf Java Virtual Machines (JVMs). The underlying principle of these techniques is that bounds checks can be removed when a JVM/compiler has enough information to guarantee that a sequence of accesses (e.g. inside a for-loop) is safe (within the bounds). Most of the techniques for the elimination of array bounds checks have been developed for programming languages that do not support multi-threading and/or enable dynamic class loading. These two characteristics make most of these techniques unsuitable for Java. Techniques developed specifically for Java have not addressed the elimination of array bounds checks in the presence of indirection; that is, when the index is stored in another array (indirection array). With the objective of optimizing applications with array indirection, this paper proposes and evaluates three implementation strategies, each implemented as a Java class. The classes provide the functionality of Java arrays of type int so that objects of the classes can be used instead of indirection arrays. Each strategy enables JVMs, when examining only one of these classes at a time, to obtain enough information to remove array bounds checks. Copyright © 2005 John Wiley & Sons, Ltd. [ABSTRACT FROM AUTHOR]
Copyright of Concurrency & Computation: Practice & Experience is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Βάση Δεδομένων: Complementary Index
FullText Links:
  – Type: other
Text:
  Availability: 0
Header DbId: edb
DbLabel: Complementary Index
An: 16412157
RelevancyScore: 832
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 832.338012695313
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Elimination of Java array bounds checks in the presence of indirection.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Luján%2C+Mikel%22">Luján, Mikel</searchLink><br /><searchLink fieldCode="AR" term="%22Gurd%2C+John+R%2E%22">Gurd, John R.</searchLink><br /><searchLink fieldCode="AR" term="%22Freeman%2C+T%2E+L%2E%22">Freeman, T. L.</searchLink><br /><searchLink fieldCode="AR" term="%22Miguel%2C+José%22">Miguel, José</searchLink>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: Concurrency & Computation: Practice & Experience; Apr/May2005, Vol. 17 Issue 5/6, p489-514, 26p, 1 Diagram, 5 Graphs
– Name: Subject
  Label: Subject Terms
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Java+programming+language%22">Java programming language</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+programming%22">Computer programming</searchLink><br /><searchLink fieldCode="DE" term="%22Electronic+data+processing%22">Electronic data processing</searchLink><br /><searchLink fieldCode="DE" term="%22Artificial+languages%22">Artificial languages</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+science%22">Computer science</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: The Java language specification states that every access to an array needs to be within the bounds of that array, i.e. between 0 and array length - 1. Different techniques for different programming languages have been proposed to eliminate explicit bounds checks. Some of these techniques are implemented in off-the-shelf Java Virtual Machines (JVMs). The underlying principle of these techniques is that bounds checks can be removed when a JVM/compiler has enough information to guarantee that a sequence of accesses (e.g. inside a for-loop) is safe (within the bounds). Most of the techniques for the elimination of array bounds checks have been developed for programming languages that do not support multi-threading and/or enable dynamic class loading. These two characteristics make most of these techniques unsuitable for Java. Techniques developed specifically for Java have not addressed the elimination of array bounds checks in the presence of indirection; that is, when the index is stored in another array (indirection array). With the objective of optimizing applications with array indirection, this paper proposes and evaluates three implementation strategies, each implemented as a Java class. The classes provide the functionality of Java arrays of type <MONO>int</MONO> so that objects of the classes can be used instead of indirection arrays. Each strategy enables JVMs, when examining only one of these classes at a time, to obtain enough information to remove array bounds checks. Copyright © 2005 John Wiley & Sons, Ltd. [ABSTRACT FROM AUTHOR]
– Name: Abstract
  Label:
  Group: Ab
  Data: <i>Copyright of Concurrency & Computation: Practice & Experience is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edb&AN=16412157
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1002/cpe.847
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 26
        StartPage: 489
    Subjects:
      – SubjectFull: Java programming language
        Type: general
      – SubjectFull: Computer programming
        Type: general
      – SubjectFull: Electronic data processing
        Type: general
      – SubjectFull: Artificial languages
        Type: general
      – SubjectFull: Computer science
        Type: general
    Titles:
      – TitleFull: Elimination of Java array bounds checks in the presence of indirection.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Luján, Mikel
      – PersonEntity:
          Name:
            NameFull: Gurd, John R.
      – PersonEntity:
          Name:
            NameFull: Freeman, T. L.
      – PersonEntity:
          Name:
            NameFull: Miguel, José
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 04
              Text: Apr/May2005
              Type: published
              Y: 2005
          Identifiers:
            – Type: issn-print
              Value: 15320626
          Numbering:
            – Type: volume
              Value: 17
            – Type: issue
              Value: 5/6
          Titles:
            – TitleFull: Concurrency & Computation: Practice & Experience
              Type: main
ResultId 1