{"id":"https://openalex.org/W3000649693","doi":"https://doi.org/10.1145/93548.93581","title":"A fresh look at optimizing array bound checking","display_name":"A fresh look at optimizing array bound checking","publication_year":1990,"publication_date":"1990-06-01","ids":{"openalex":"https://openalex.org/W3000649693","doi":"https://doi.org/10.1145/93548.93581","mag":"3000649693"},"language":"en","primary_location":{"id":"doi:10.1145/93548.93581","doi":"https://doi.org/10.1145/93548.93581","is_oa":false,"landing_page_url":"https://doi.org/10.1145/93548.93581","pdf_url":null,"source":{"id":"https://openalex.org/S148324379","display_name":"ACM SIGPLAN Notices","issn_l":"0362-1340","issn":["0362-1340","1558-1160"],"is_oa":false,"is_in_doaj":false,"is_core":true,"listed_in":["cwts-core"],"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM SIGPLAN Notices","raw_type":"journal-article"},"volume":null,"type":"article","is_traditional":true,"indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5100699251","display_name":"Rajiv Gupta","orcid":"https://orcid.org/0000-0002-9348-3974","observed_orcids":["https://orcid.org/0000-0002-9348-3974"]},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Rajiv Gupta","raw_affiliation_strings":["Philips Laboratories, North American Philips Corporation, 345 Scarborough Road, Briarcliff Manor, NY"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Philips Laboratories, North American Philips Corporation, 345 Scarborough Road, Briarcliff Manor, NY","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":["https://openalex.org/A5100699251"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.5479,"has_fulltext":false,"cited_by_count":8,"citation_normalized_percentile":{"value":0.69052103,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":88,"max":93},"biblio":{"volume":"25","issue":"6","first_page":"272","last_page":"282"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9286999702453613,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9286999702453613,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.05169999971985817,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.004900000058114529,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/data-flow-analysis","display_name":"data flow analysis","score":0.9160000085830688},{"id":"https://openalex.org/keywords/program-optimization","display_name":"program optimization","score":0.6159999966621399},{"id":"https://openalex.org/keywords/program-execution-time","display_name":"program execution time","score":0.6880000233650208}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8751664161682129},{"id":"https://openalex.org/C50951305","wikidata":"https://www.wikidata.org/wiki/Q2482534","display_name":"Unreachable code","level":5,"score":0.6872346997261047},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.6870524287223816},{"id":"https://openalex.org/C204323151","wikidata":"https://www.wikidata.org/wiki/Q905424","display_name":"Range (aeronautics)","level":2,"score":0.6846320629119873},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.6636495590209961},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5890306234359741},{"id":"https://openalex.org/C88468194","wikidata":"https://www.wikidata.org/wiki/Q1172416","display_name":"Data-flow analysis","level":3,"score":0.5756804943084717},{"id":"https://openalex.org/C47434764","wikidata":"https://www.wikidata.org/wiki/Q1770035","display_name":"Dead code","level":5,"score":0.5716764330863953},{"id":"https://openalex.org/C2144512","wikidata":"https://www.wikidata.org/wiki/Q1143090","display_name":"Dead code elimination","level":5,"score":0.5634984970092773},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.5484840869903564},{"id":"https://openalex.org/C27458966","wikidata":"https://www.wikidata.org/wiki/Q1187693","display_name":"Control flow graph","level":2,"score":0.5327919125556946},{"id":"https://openalex.org/C2779960059","wikidata":"https://www.wikidata.org/wiki/Q7113681","display_name":"Overhead (engineering)","level":2,"score":0.515509843826294},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4721118211746216},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.4396451711654663},{"id":"https://openalex.org/C200833197","wikidata":"https://www.wikidata.org/wiki/Q333707","display_name":"Compile time","level":3,"score":0.43362706899642944},{"id":"https://openalex.org/C139571649","wikidata":"https://www.wikidata.org/wiki/Q1156793","display_name":"Program optimization","level":3,"score":0.41924411058425903},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.39770928025245667},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.34905892610549927},{"id":"https://openalex.org/C489000","wikidata":"https://www.wikidata.org/wiki/Q747385","display_name":"Data flow diagram","level":2,"score":0.28354963660240173},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.26791703701019287},{"id":"https://openalex.org/C154526789","wikidata":"https://www.wikidata.org/wiki/Q157965","display_name":"Object code","level":4,"score":0.2641623616218567},{"id":"https://openalex.org/C151578736","wikidata":"https://www.wikidata.org/wiki/Q1251793","display_name":"Redundant code","level":4,"score":0.21581101417541504},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.17893630266189575},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.0},{"id":"https://openalex.org/C192562407","wikidata":"https://www.wikidata.org/wiki/Q228736","display_name":"Materials science","level":0,"score":0.0},{"id":"https://openalex.org/C159985019","wikidata":"https://www.wikidata.org/wiki/Q181790","display_name":"Composite material","level":1,"score":0.0},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/93548.93581","doi":"https://doi.org/10.1145/93548.93581","is_oa":false,"landing_page_url":"https://doi.org/10.1145/93548.93581","pdf_url":null,"source":{"id":"https://openalex.org/S148324379","display_name":"ACM SIGPLAN Notices","issn_l":"0362-1340","issn":["0362-1340","1558-1160"],"is_oa":false,"is_in_doaj":false,"is_core":true,"listed_in":["cwts-core"],"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM SIGPLAN Notices","raw_type":"journal-article"}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":8,"referenced_works":["https://openalex.org/W1491178396","https://openalex.org/W1522286888","https://openalex.org/W1994372357","https://openalex.org/W2038053930","https://openalex.org/W2045818721","https://openalex.org/W2118450335","https://openalex.org/W2158134106","https://openalex.org/W4242680074"],"related_works":["https://openalex.org/W2079549821","https://openalex.org/W2027055567","https://openalex.org/W7098071655","https://openalex.org/W3005590754","https://openalex.org/W7097530910","https://openalex.org/W2055154174","https://openalex.org/W7096640086","https://openalex.org/W7097155485","https://openalex.org/W2139545367","https://openalex.org/W4255361302"],"abstract_inverted_index":{"This":[0,115],"paper":[1,27],"describes":[2],"techniques":[3],"for":[4,93,111],"optimizing":[5],"range":[6,20,34,94,100,119,147,158,185,204],"checks":[7,35,62,70,148,186,205],"performed":[8,104,124,206],"to":[9,16,33,122,172,175],"detect":[10],"array":[11,136],"bound":[12,137],"violations.":[13],"In":[14],"addition":[15],"the":[17,22,30,46,51,85,106,109,112,117,127,133,155,167,182,201,215],"elimination":[18,56],"of":[19,57,61,64,68,88,184,203],"checks,":[21,59],"optimizations":[23,44,96,102,121,169],"discussed":[24],"in":[25,181,207],"this":[26],"also":[28,151],"reduce":[29,45],"overhead":[31],"due":[32],"that":[36,139,200],"cannot":[37],"be":[38,123,152,173,190],"eliminated":[39],"by":[40,142,154,192],"compile-time":[41],"analysis.":[42],"The":[43,99],"program":[47,144,156,210],"execution":[48],"time":[49],"and":[50,66,161],"object":[52],"code":[53,177,195],"size":[54],"through":[55],"redundant":[58],"propagation":[60],"out":[63],"loops,":[65],"combination":[67],"multiple":[69],"into":[71],"a":[72,143,193,209],"single":[73],"check.":[74],"A":[75],"minimal":[76,86],"control":[77],"flow":[78,90],"graph":[79],"(MCFG)":[80],"is":[81,97,129,140,211],"constructed":[82],"using":[83,105,214],"which":[84],"amount":[87],"data":[89],"information":[91],"required":[92],"check":[95,101,120,159],"computed.":[98],"are":[103],"MCFG":[107,128],"rather":[108],"CFG":[110],"entire":[113],"program.":[114],"allows":[116],"global":[118],"efficiently":[125],"since":[126],"significantly":[130],"smaller":[131],"than":[132],"CFG.":[134],"Any":[135],"violation":[138],"detected":[141,153],"with":[145],"all":[146],"included,":[149],"will":[150],"after":[157],"optimization":[160],"vice":[162],"versa":[163],".":[164],"Even":[165],"though":[166],"above":[168,216],"may":[170],"appear":[171],"similar":[174,179],"traditional":[176,194],"optimizations,":[178],"reduction":[180],"number":[183,202],"executed":[187],"can":[188],"not":[189],"achieved":[191],"optimizer.":[196],"Experimental":[197],"results":[198],"indicate":[199],"executing":[208],"greatly":[212],"reduced":[213],"techniques.":[217]},"counts_by_year":[{"year":2014,"cited_by_count":1}],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2020-01-23T00:00:00"}
