{"id":"https://openalex.org/W4307168806","doi":"https://doi.org/10.1145/3568973","title":"RegCPython: A Register-based Python Interpreter for Better Performance","display_name":"RegCPython: A Register-based Python Interpreter for Better Performance","publication_year":2022,"publication_date":"2022-10-21","ids":{"openalex":"https://openalex.org/W4307168806","doi":"https://doi.org/10.1145/3568973"},"language":"en","primary_location":{"id":"doi:10.1145/3568973","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3568973","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3568973","source":{"id":"https://openalex.org/S26056741","display_name":"ACM Transactions on Architecture and Code Optimization","issn_l":"1544-3566","issn":["1544-3566","1544-3973"],"is_oa":true,"is_in_doaj":false,"is_core":true,"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 Transactions on Architecture and Code Optimization","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3568973","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5100381976","display_name":"Qiang Zhang","orcid":"https://orcid.org/0000-0003-0876-4374"},"institutions":[{"id":"https://openalex.org/I881766915","display_name":"Nanjing University","ror":"https://ror.org/01rxvg760","country_code":"CN","type":"education","lineage":["https://openalex.org/I881766915"]}],"countries":["CN"],"is_corresponding":true,"raw_author_name":"Qiang Zhang","raw_affiliation_strings":["Nanjing University, Nanjing, Jiangsu, China"],"raw_orcid":"https://orcid.org/0000-0003-0876-4374","affiliations":[{"raw_affiliation_string":"Nanjing University, Nanjing, Jiangsu, China","institution_ids":["https://openalex.org/I881766915"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5101775927","display_name":"Lei Xu","orcid":"https://orcid.org/0000-0002-4815-2850"},"institutions":[{"id":"https://openalex.org/I881766915","display_name":"Nanjing University","ror":"https://ror.org/01rxvg760","country_code":"CN","type":"education","lineage":["https://openalex.org/I881766915"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"Lei Xu","raw_affiliation_strings":["Nanjing University, Nanjing, Jiangsu, China"],"raw_orcid":"https://orcid.org/0000-0002-4815-2850","affiliations":[{"raw_affiliation_string":"Nanjing University, Nanjing, Jiangsu, China","institution_ids":["https://openalex.org/I881766915"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5100331400","display_name":"Baowen Xu","orcid":"https://orcid.org/0000-0001-7743-1296"},"institutions":[{"id":"https://openalex.org/I881766915","display_name":"Nanjing University","ror":"https://ror.org/01rxvg760","country_code":"CN","type":"education","lineage":["https://openalex.org/I881766915"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"Baowen Xu","raw_affiliation_strings":["Nanjing University, Nanjing, Jiangsu, China"],"raw_orcid":"https://orcid.org/0000-0001-7743-1296","affiliations":[{"raw_affiliation_string":"Nanjing University, Nanjing, Jiangsu, China","institution_ids":["https://openalex.org/I881766915"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5100381976"],"corresponding_institution_ids":["https://openalex.org/I881766915"],"apc_list":null,"apc_paid":null,"fwci":1.9115,"has_fulltext":true,"cited_by_count":6,"citation_normalized_percentile":{"value":0.89094274,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":94,"max":98},"biblio":{"volume":"20","issue":"1","first_page":"1","last_page":"25"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9976999759674072,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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/T10260","display_name":"Software Engineering Research","score":0.9976999759674072,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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.9965000152587891,"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.9900000095367432,"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/computer-science","display_name":"Computer science","score":0.9018385410308838},{"id":"https://openalex.org/keywords/bytecode","display_name":"Bytecode","score":0.7906239032745361},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6333367228507996},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.6171383857727051},{"id":"https://openalex.org/keywords/speedup","display_name":"Speedup","score":0.5992730855941772},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.5987707376480103},{"id":"https://openalex.org/keywords/register-allocation","display_name":"Register allocation","score":0.5035554766654968},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.4499446451663971},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.42131489515304565},{"id":"https://openalex.org/keywords/just-in-time-compilation","display_name":"Just-in-time compilation","score":0.4141181707382202},{"id":"https://openalex.org/keywords/benchmark","display_name":"Benchmark (surveying)","score":0.4128704071044922},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.4072539806365967},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.3800983428955078}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9018385410308838},{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.7906239032745361},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6333367228507996},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.6171383857727051},{"id":"https://openalex.org/C68339613","wikidata":"https://www.wikidata.org/wiki/Q1549489","display_name":"Speedup","level":2,"score":0.5992730855941772},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.5987707376480103},{"id":"https://openalex.org/C128916667","wikidata":"https://www.wikidata.org/wiki/Q1343660","display_name":"Register allocation","level":3,"score":0.5035554766654968},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.4499446451663971},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.42131489515304565},{"id":"https://openalex.org/C76782552","wikidata":"https://www.wikidata.org/wiki/Q110546","display_name":"Just-in-time compilation","level":3,"score":0.4141181707382202},{"id":"https://openalex.org/C185798385","wikidata":"https://www.wikidata.org/wiki/Q1161707","display_name":"Benchmark (surveying)","level":2,"score":0.4128704071044922},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.4072539806365967},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.3800983428955078},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.0},{"id":"https://openalex.org/C13280743","wikidata":"https://www.wikidata.org/wiki/Q131089","display_name":"Geodesy","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3568973","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3568973","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3568973","source":{"id":"https://openalex.org/S26056741","display_name":"ACM Transactions on Architecture and Code Optimization","issn_l":"1544-3566","issn":["1544-3566","1544-3973"],"is_oa":true,"is_in_doaj":false,"is_core":true,"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 Transactions on Architecture and Code Optimization","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3568973","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3568973","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3568973","source":{"id":"https://openalex.org/S26056741","display_name":"ACM Transactions on Architecture and Code Optimization","issn_l":"1544-3566","issn":["1544-3566","1544-3973"],"is_oa":true,"is_in_doaj":false,"is_core":true,"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 Transactions on Architecture and Code Optimization","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G1884936576","display_name":null,"funder_award_id":"61832009","funder_id":"https://openalex.org/F4320321001","funder_display_name":"National Natural Science Foundation of China"},{"id":"https://openalex.org/G7228692542","display_name":null,"funder_award_id":"61832009, 62272214","funder_id":"https://openalex.org/F4320321001","funder_display_name":"National Natural Science Foundation of China"},{"id":"https://openalex.org/G7528833784","display_name":null,"funder_award_id":"62272214","funder_id":"https://openalex.org/F4320321001","funder_display_name":"National Natural Science Foundation of China"}],"funders":[{"id":"https://openalex.org/F4320321001","display_name":"National Natural Science Foundation of China","ror":"https://ror.org/01h0zpd94"},{"id":"https://openalex.org/F4320324852","display_name":"Nanjing University","ror":"https://ror.org/01rxvg760"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4307168806.pdf","grobid_xml":"https://content.openalex.org/works/W4307168806.grobid-xml"},"referenced_works_count":36,"referenced_works":["https://openalex.org/W1534459555","https://openalex.org/W1556348796","https://openalex.org/W1828631218","https://openalex.org/W1964962870","https://openalex.org/W1993335798","https://openalex.org/W2007341641","https://openalex.org/W2010167524","https://openalex.org/W2024317539","https://openalex.org/W2029326467","https://openalex.org/W2031902842","https://openalex.org/W2036430035","https://openalex.org/W2036830099","https://openalex.org/W2058213389","https://openalex.org/W2072916763","https://openalex.org/W2074347309","https://openalex.org/W2097971372","https://openalex.org/W2104266030","https://openalex.org/W2107568022","https://openalex.org/W2117902492","https://openalex.org/W2129393463","https://openalex.org/W2139749211","https://openalex.org/W2166693749","https://openalex.org/W2245493112","https://openalex.org/W2789901355","https://openalex.org/W2790842698","https://openalex.org/W2905157839","https://openalex.org/W3004830048","https://openalex.org/W3009842572","https://openalex.org/W3031843753","https://openalex.org/W3108349989","https://openalex.org/W3199293564","https://openalex.org/W4200178601","https://openalex.org/W4231640297","https://openalex.org/W4237409376","https://openalex.org/W4239451401","https://openalex.org/W6642592000"],"related_works":["https://openalex.org/W2479014312","https://openalex.org/W1583465708","https://openalex.org/W2529681551","https://openalex.org/W2126208283","https://openalex.org/W2998595860","https://openalex.org/W1497385637","https://openalex.org/W2463380484","https://openalex.org/W2013156670","https://openalex.org/W1861891114","https://openalex.org/W2245493112"],"abstract_inverted_index":{"Interpreters":[0],"are":[1,218],"widely":[2],"used":[3],"in":[4,23,34,132,232,254],"the":[5,52,77,97,125,163,171,179,215,224,248],"implementation":[6,250,262],"of":[7,51,54,160,205,226,256],"many":[8],"programming":[9],"languages,":[10],"such":[11],"as":[12,147,196],"Python,":[13],"Perl,":[14],"and":[15,49,69,85,137,167,186,235,261],"Java.":[16],"Even":[17],"though":[18],"various":[19],"JIT":[20],"compilers":[21],"emerge":[22],"an":[24,108,197],"endless":[25],"stream,":[26],"interpretation":[27],"efficiency":[28],"still":[29],"plays":[30],"a":[31,38,42,93,158,201,239],"critical":[32],"role":[33],"program":[35],"performance.":[36,243],"Does":[37],"stack-based":[39],"interpreter":[40,44,79,112],"or":[41,154],"register-based":[43,78,216,249],"perform":[45],"better?":[46],"The":[47,60,119],"pros":[48],"cons":[50],"pair":[53],"architectures":[55],"have":[56,238],"long":[57],"been":[58],"discussed.":[59],"stack":[61,128],"architecture":[62],"is":[63,121,127,142,251],"attractive":[64],"for":[65],"its":[66,87],"concise":[67],"model":[68],"compact":[70],"bytecode,":[71],"but":[72],"our":[73],"study":[74],"finds":[75],"that":[76,86,214,247],"can":[80],"also":[81,194,252],"be":[82,102],"implemented":[83,107],"easily":[84],"bytecode":[88],"size":[89],"only":[90],"grows":[91],"by":[92],"small":[94],"margin.":[95],"Moreover,":[96],"latter":[98,126],"turns":[99],"out":[100,213],"to":[101,223],"appreciably":[103],"faster.":[104],"Specifically,":[105],"we":[106],"open":[109],"source":[110],"Python":[111],"named":[113],"RegCPython":[114,141],"based":[115],"on":[116,162,170,184,188,208,242],"CPython":[117],"v3.10.1.":[118],"former":[120],"register":[122],"based,":[123],"while":[124,230],"based.":[129],"Without":[130],"changes":[131,231],"syntax,":[133],"Application":[134,138],"Programming":[135],"Interface,":[136,140],"Binary":[139],"excellently":[143],"compatible":[144],"with":[145],"CPython,":[146],"it":[148,245],"does":[149],"not":[150],"break":[151],"existing":[152],"syntax":[153],"interfaces.":[155],"It":[156,211],"achieves":[157],"speedup":[159,181],"1.287":[161],"most":[164,172],"favorable":[165],"benchmark":[166],"0.977":[168],"even":[169],"unfavorable":[173],"benchmark.":[174],"For":[175],"all":[176],"Python-intensive":[177],"benchmarks,":[178],"average":[180],"reaches":[182],"1.120":[183],"x86":[185],"1.130":[187],"ARM.":[189],"Our":[190],"evaluation":[191],"work,":[192],"which":[193],"serves":[195],"empirical":[198],"study,":[199],"provides":[200],"detailed":[202],"performance":[203],"survey":[204],"both":[206],"interpreters":[207,217],"modern":[209],"hardware.":[210],"points":[212],"more":[219],"efficient":[220],"mainly":[221],"due":[222],"elimination":[225],"machine":[227],"instructions":[228],"needed,":[229],"branch":[233],"mispredictions":[234],"cache":[236],"misses":[237],"limited":[240],"impact":[241],"Additionally,":[244],"confirms":[246],"satisfactory":[253],"terms":[255],"memory":[257],"footprint,":[258],"compilation":[259],"cost,":[260],"complexity.":[263]},"counts_by_year":[{"year":2025,"cited_by_count":4},{"year":2023,"cited_by_count":2}],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2025-10-10T00:00:00"}
