{"id":"https://openalex.org/W2024317539","doi":"https://doi.org/10.1145/1534530.1534550","title":"The effect of unrolling and inlining for Python bytecode optimizations","display_name":"The effect of unrolling and inlining for Python bytecode optimizations","publication_year":2009,"publication_date":"2009-05-04","ids":{"openalex":"https://openalex.org/W2024317539","doi":"https://doi.org/10.1145/1534530.1534550","mag":"2024317539"},"language":"en","primary_location":{"id":"doi:10.1145/1534530.1534550","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1534530.1534550","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of SYSTOR 2009: The Israeli Experimental Systems Conference","raw_type":"proceedings-article"},"type":"article","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/A5037358573","display_name":"Yosi Ben Asher","orcid":"https://orcid.org/0000-0001-9963-1467"},"institutions":[{"id":"https://openalex.org/I91203450","display_name":"University of Haifa","ror":"https://ror.org/02f009v59","country_code":"IL","type":"education","lineage":["https://openalex.org/I91203450"]}],"countries":["IL"],"is_corresponding":true,"raw_author_name":"Yosi Ben Asher","raw_affiliation_strings":["Haifa University, Israel","HAIFA UNIVERSITY ISRAEL"],"affiliations":[{"raw_affiliation_string":"Haifa University, Israel","institution_ids":["https://openalex.org/I91203450"]},{"raw_affiliation_string":"HAIFA UNIVERSITY ISRAEL","institution_ids":["https://openalex.org/I91203450"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5049410166","display_name":"Nadav Rotem","orcid":null},"institutions":[{"id":"https://openalex.org/I91203450","display_name":"University of Haifa","ror":"https://ror.org/02f009v59","country_code":"IL","type":"education","lineage":["https://openalex.org/I91203450"]}],"countries":["IL"],"is_corresponding":false,"raw_author_name":"Nadav Rotem","raw_affiliation_strings":["Haifa University, Israel","HAIFA UNIVERSITY ISRAEL"],"affiliations":[{"raw_affiliation_string":"Haifa University, Israel","institution_ids":["https://openalex.org/I91203450"]},{"raw_affiliation_string":"HAIFA UNIVERSITY ISRAEL","institution_ids":["https://openalex.org/I91203450"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5037358573"],"corresponding_institution_ids":["https://openalex.org/I91203450"],"apc_list":null,"apc_paid":null,"fwci":0.268,"has_fulltext":false,"cited_by_count":4,"citation_normalized_percentile":{"value":0.5624231,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"1","last_page":"14"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9940999746322632,"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"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9940999746322632,"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.9758999943733215,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9588000178337097,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/bytecode","display_name":"Bytecode","score":0.9482625722885132},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.8842748403549194},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8652701377868652},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7614257335662842},{"id":"https://openalex.org/keywords/loop-unrolling","display_name":"Loop unrolling","score":0.6937848329544067},{"id":"https://openalex.org/keywords/scripting-language","display_name":"Scripting language","score":0.6535955667495728},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.5587702393531799},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.4897918701171875},{"id":"https://openalex.org/keywords/optimizing-compiler","display_name":"Optimizing compiler","score":0.47588029503822327},{"id":"https://openalex.org/keywords/compiled-language","display_name":"Compiled language","score":0.4590342044830322},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.4335891306400299},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.43105998635292053},{"id":"https://openalex.org/keywords/high-level-programming-language","display_name":"High-level programming language","score":0.1707402467727661},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.14576682448387146},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.12940055131912231}],"concepts":[{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.9482625722885132},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.8842748403549194},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8652701377868652},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7614257335662842},{"id":"https://openalex.org/C76970557","wikidata":"https://www.wikidata.org/wiki/Q1869750","display_name":"Loop unrolling","level":3,"score":0.6937848329544067},{"id":"https://openalex.org/C61423126","wikidata":"https://www.wikidata.org/wiki/Q187432","display_name":"Scripting language","level":2,"score":0.6535955667495728},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.5587702393531799},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.4897918701171875},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.47588029503822327},{"id":"https://openalex.org/C92966194","wikidata":"https://www.wikidata.org/wiki/Q651794","display_name":"Compiled language","level":4,"score":0.4590342044830322},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.4335891306400299},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.43105998635292053},{"id":"https://openalex.org/C19024347","wikidata":"https://www.wikidata.org/wiki/Q211496","display_name":"High-level programming language","level":3,"score":0.1707402467727661},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.14576682448387146},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.12940055131912231}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/1534530.1534550","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1534530.1534550","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of SYSTOR 2009: The Israeli Experimental Systems Conference","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.584.3585","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.584.3585","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://sage.math.washington.edu/home/mhansen/a14-ben_asher.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[{"display_name":"Quality Education","score":0.6899999976158142,"id":"https://metadata.un.org/sdg/4"}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":10,"referenced_works":["https://openalex.org/W1530151067","https://openalex.org/W1544601954","https://openalex.org/W1594760592","https://openalex.org/W2036830099","https://openalex.org/W2049890071","https://openalex.org/W2061884904","https://openalex.org/W2068219251","https://openalex.org/W2076901056","https://openalex.org/W2114067856","https://openalex.org/W2124153277"],"related_works":["https://openalex.org/W2919866608","https://openalex.org/W1991206705","https://openalex.org/W4200123977","https://openalex.org/W3098333893","https://openalex.org/W2168933008","https://openalex.org/W29925566","https://openalex.org/W2992753978","https://openalex.org/W2401561631","https://openalex.org/W3169195854","https://openalex.org/W2024317539"],"abstract_inverted_index":{"In":[0,74,91,178,202],"this":[1,75,179],"study,":[2],"we":[3,77,181,204],"consider":[4,205],"bytecode":[5,46,89,100,116],"optimizations":[6,148,231],"for":[7],"Python,":[8],"a":[9,67,119],"programming":[10],"language":[11],"which":[12,174],"combines":[13],"object-oriented":[14],"concepts":[15],"with":[16],"features":[17,173,187,193],"of":[18,95,112,122,188,199,209,225],"scripting":[19],"languages,":[20],"such":[21],"as":[22],"dynamic":[23,172,186],"dictionaries.":[24],"Due":[25],"to":[26,35,59,70,170,183,218],"its":[27,60,171],"design":[28],"nature,":[29],"Python":[30,86,168,189],"is":[31,56,66,101,158],"relatively":[32],"slow":[33],"compared":[34],"other":[36],"languages.":[37],"It":[38],"operates":[39],"through":[40],"compiling":[41],"the":[42,72,92,96,99,115,185,197,206,216,220],"code":[43,131,141],"into":[44],"powerful":[45],"instructions":[47],"that":[48,229],"are":[49,149],"executed":[50],"by":[51,117],"an":[52],"interpreter.":[53],"Python's":[54],"speed":[55],"limited":[57],"due":[58,169],"interpreter":[61],"design,":[62],"and":[63,82,106,143,151,190,195,212,236],"thus":[64],"there":[65],"significant":[68,207],"need":[69],"optimize":[71],"language.":[73],"paper,":[76],"discuss":[78],"one":[79],"possible":[80],"approach":[81],"limitations":[83],"in":[84,167],"optimizing":[85],"based":[87],"on":[88,215],"transformations.":[90],"first":[93,210],"stage":[94,111],"proposed":[97],"optimizer,":[98],"expanded":[102],"using":[103],"function":[104],"inline":[105],"loop":[107,139],"unrolling.":[108],"The":[109,223],"second":[110],"transformations":[113],"simplifies":[114],"applying":[118],"complete":[120],"set":[121],"data-flow":[123],"optimizations,":[124],"including":[125],"constant":[126],"propagation,":[127,134],"algebraic":[128],"simplifications,":[129],"dead":[130],"elimination,":[132,138],"copy":[133],"common":[135],"sub":[136],"expressions":[137],"invariant":[140],"motion":[142],"strength":[144],"reduction.":[145],"While":[146],"these":[147,192,200,230],"known":[150],"their":[152,176],"implementation":[153,198],"mechanism":[154],"(data":[155],"flow":[156],"analysis)":[157],"well":[159],"developed,":[160],"they":[161],"have":[162],"not":[163],"been":[164],"successfully":[165],"implemented":[166,235],"prevent":[175],"use.":[177],"work":[180],"attempt":[182],"understand":[184],"how":[191],"affect":[194],"limit":[196],"optimizations.":[201,222],"particular,":[203],"effects":[208],"unrolling":[211],"then":[213],"inlining":[214],"ability":[217],"apply":[219],"remaining":[221],"results":[224],"our":[226],"experiments":[227],"indicate":[228],"can":[232],"indeed":[233],"be":[234],"dramatically":[237],"improve":[238],"execution":[239],"times.":[240]},"counts_by_year":[{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":1}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
