{"id":"https://openalex.org/W2054661033","doi":"https://doi.org/10.1145/2095050.2095071","title":"Software transactional memory vs. locking in a functional language","display_name":"Software transactional memory vs. locking in a functional language","publication_year":2011,"publication_date":"2011-10-23","ids":{"openalex":"https://openalex.org/W2054661033","doi":"https://doi.org/10.1145/2095050.2095071","mag":"2054661033"},"language":"en","primary_location":{"id":"doi:10.1145/2095050.2095071","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2095050.2095071","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE! 2011, AOOPES'11, NEAT'11, &amp; VMIL'11","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/A5062400717","display_name":"Fernando Castor","orcid":"https://orcid.org/0000-0002-6389-3630"},"institutions":[{"id":"https://openalex.org/I25112270","display_name":"Universidade Federal de Pernambuco","ror":"https://ror.org/047908t24","country_code":"BR","type":"education","lineage":["https://openalex.org/I25112270"]}],"countries":["BR"],"is_corresponding":true,"raw_author_name":"Fernando Castor","raw_affiliation_strings":["Federal University of Pernambuco, Recife, Brazil"],"affiliations":[{"raw_affiliation_string":"Federal University of Pernambuco, Recife, Brazil","institution_ids":["https://openalex.org/I25112270"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5102137942","display_name":"Jo\u00e3o Paulo Oliveira","orcid":null},"institutions":[{"id":"https://openalex.org/I25112270","display_name":"Universidade Federal de Pernambuco","ror":"https://ror.org/047908t24","country_code":"BR","type":"education","lineage":["https://openalex.org/I25112270"]}],"countries":["BR"],"is_corresponding":false,"raw_author_name":"Jo\u00e3o Paulo Oliveira","raw_affiliation_strings":["Federal University of Pernambuco, Recife, Brazil"],"affiliations":[{"raw_affiliation_string":"Federal University of Pernambuco, Recife, Brazil","institution_ids":["https://openalex.org/I25112270"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5026301882","display_name":"Andr\u00e9 L. M. Santos","orcid":"https://orcid.org/0000-0001-6661-5970"},"institutions":[{"id":"https://openalex.org/I25112270","display_name":"Universidade Federal de Pernambuco","ror":"https://ror.org/047908t24","country_code":"BR","type":"education","lineage":["https://openalex.org/I25112270"]}],"countries":["BR"],"is_corresponding":false,"raw_author_name":"Andr\u00e9 L.M. Santos","raw_affiliation_strings":["Federal University of Pernambuco, Recife, Brazil"],"affiliations":[{"raw_affiliation_string":"Federal University of Pernambuco, Recife, Brazil","institution_ids":["https://openalex.org/I25112270"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5062400717"],"corresponding_institution_ids":["https://openalex.org/I25112270"],"apc_list":null,"apc_paid":null,"fwci":0.7002,"has_fulltext":false,"cited_by_count":9,"citation_normalized_percentile":{"value":0.7201333,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":97},"biblio":{"volume":null,"issue":null,"first_page":"117","last_page":"122"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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/T10772","display_name":"Distributed systems and fault tolerance","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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.9812999963760376,"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/T13471","display_name":"Cognitive Functions and Memory","score":0.9799000024795532,"subfield":{"id":"https://openalex.org/subfields/3205","display_name":"Experimental and Cognitive Psychology"},"field":{"id":"https://openalex.org/fields/32","display_name":"Psychology"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/software-transactional-memory","display_name":"Software transactional memory","score":0.8812640309333801},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8661197423934937},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.8420230150222778},{"id":"https://openalex.org/keywords/concurrency","display_name":"Concurrency","score":0.7657724618911743},{"id":"https://openalex.org/keywords/transactional-memory","display_name":"Transactional memory","score":0.7341424226760864},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6560598611831665},{"id":"https://openalex.org/keywords/concurrency-control","display_name":"Concurrency control","score":0.6022306680679321},{"id":"https://openalex.org/keywords/multiversion-concurrency-control","display_name":"Multiversion concurrency control","score":0.5356027483940125},{"id":"https://openalex.org/keywords/synchronization","display_name":"Synchronization (alternating current)","score":0.5264720916748047},{"id":"https://openalex.org/keywords/lock","display_name":"Lock (firearm)","score":0.48150834441185},{"id":"https://openalex.org/keywords/transactional-leadership","display_name":"Transactional leadership","score":0.43263471126556396},{"id":"https://openalex.org/keywords/concurrent-computing","display_name":"Concurrent computing","score":0.4274739921092987},{"id":"https://openalex.org/keywords/concurrent-object-oriented-programming","display_name":"Concurrent object-oriented programming","score":0.4164186120033264},{"id":"https://openalex.org/keywords/non-lock-concurrency-control","display_name":"Non-lock concurrency control","score":0.4122301936149597},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.3350025415420532},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.30947476625442505},{"id":"https://openalex.org/keywords/distributed-concurrency-control","display_name":"Distributed concurrency control","score":0.1339854896068573},{"id":"https://openalex.org/keywords/reactive-programming","display_name":"Reactive programming","score":0.13284090161323547},{"id":"https://openalex.org/keywords/database-transaction","display_name":"Database transaction","score":0.10807719826698303},{"id":"https://openalex.org/keywords/inductive-programming","display_name":"Inductive programming","score":0.09009793400764465}],"concepts":[{"id":"https://openalex.org/C167149655","wikidata":"https://www.wikidata.org/wiki/Q1189004","display_name":"Software transactional memory","level":4,"score":0.8812640309333801},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8661197423934937},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.8420230150222778},{"id":"https://openalex.org/C193702766","wikidata":"https://www.wikidata.org/wiki/Q1414548","display_name":"Concurrency","level":2,"score":0.7657724618911743},{"id":"https://openalex.org/C134277064","wikidata":"https://www.wikidata.org/wiki/Q878206","display_name":"Transactional memory","level":3,"score":0.7341424226760864},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6560598611831665},{"id":"https://openalex.org/C84511453","wikidata":"https://www.wikidata.org/wiki/Q2914952","display_name":"Concurrency control","level":3,"score":0.6022306680679321},{"id":"https://openalex.org/C108744092","wikidata":"https://www.wikidata.org/wiki/Q93695","display_name":"Multiversion concurrency control","level":5,"score":0.5356027483940125},{"id":"https://openalex.org/C2778562939","wikidata":"https://www.wikidata.org/wiki/Q1298791","display_name":"Synchronization (alternating current)","level":3,"score":0.5264720916748047},{"id":"https://openalex.org/C174839445","wikidata":"https://www.wikidata.org/wiki/Q1134386","display_name":"Lock (firearm)","level":2,"score":0.48150834441185},{"id":"https://openalex.org/C68489960","wikidata":"https://www.wikidata.org/wiki/Q2370659","display_name":"Transactional leadership","level":2,"score":0.43263471126556396},{"id":"https://openalex.org/C150495011","wikidata":"https://www.wikidata.org/wiki/Q128392","display_name":"Concurrent computing","level":2,"score":0.4274739921092987},{"id":"https://openalex.org/C3701939","wikidata":"https://www.wikidata.org/wiki/Q5159109","display_name":"Concurrent object-oriented programming","level":5,"score":0.4164186120033264},{"id":"https://openalex.org/C61912525","wikidata":"https://www.wikidata.org/wiki/Q7048952","display_name":"Non-lock concurrency control","level":5,"score":0.4122301936149597},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.3350025415420532},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.30947476625442505},{"id":"https://openalex.org/C208087996","wikidata":"https://www.wikidata.org/wiki/Q5283142","display_name":"Distributed concurrency control","level":4,"score":0.1339854896068573},{"id":"https://openalex.org/C150762246","wikidata":"https://www.wikidata.org/wiki/Q4354073","display_name":"Reactive programming","level":4,"score":0.13284090161323547},{"id":"https://openalex.org/C75949130","wikidata":"https://www.wikidata.org/wiki/Q848010","display_name":"Database transaction","level":2,"score":0.10807719826698303},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.09009793400764465},{"id":"https://openalex.org/C77805123","wikidata":"https://www.wikidata.org/wiki/Q161272","display_name":"Social psychology","level":1,"score":0.0},{"id":"https://openalex.org/C127162648","wikidata":"https://www.wikidata.org/wiki/Q16858953","display_name":"Channel (broadcasting)","level":2,"score":0.0},{"id":"https://openalex.org/C15744967","wikidata":"https://www.wikidata.org/wiki/Q9418","display_name":"Psychology","level":0,"score":0.0},{"id":"https://openalex.org/C31258907","wikidata":"https://www.wikidata.org/wiki/Q1301371","display_name":"Computer network","level":1,"score":0.0},{"id":"https://openalex.org/C78519656","wikidata":"https://www.wikidata.org/wiki/Q101333","display_name":"Mechanical engineering","level":1,"score":0.0},{"id":"https://openalex.org/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2095050.2095071","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2095050.2095071","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE! 2011, AOOPES'11, NEAT'11, &amp; VMIL'11","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"display_name":"Reduced inequalities","score":0.7900000214576721,"id":"https://metadata.un.org/sdg/10"}],"awards":[],"funders":[{"id":"https://openalex.org/F4320323678","display_name":"Funda\u00e7\u00e3o de Amparo \u00e0 Ci\u00eancia e Tecnologia do Estado de Pernambuco","ror":"https://ror.org/02te5rf52"}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":10,"referenced_works":["https://openalex.org/W2061863279","https://openalex.org/W2062796765","https://openalex.org/W2070310827","https://openalex.org/W2089755106","https://openalex.org/W2101545021","https://openalex.org/W2113751407","https://openalex.org/W2129990308","https://openalex.org/W2148049665","https://openalex.org/W2150732552","https://openalex.org/W2769656678"],"related_works":["https://openalex.org/W3005875561","https://openalex.org/W3009678450","https://openalex.org/W2133348162","https://openalex.org/W3023364199","https://openalex.org/W2114661031","https://openalex.org/W1985501539","https://openalex.org/W2529342191","https://openalex.org/W2138485531","https://openalex.org/W2153541479","https://openalex.org/W2508776720"],"abstract_inverted_index":{"Many":[0],"researchers":[1],"believe":[2],"that":[3,64,109],"software":[4],"transactional":[5],"memory":[6],"(STM)":[7],"will":[8],"play":[9],"an":[10],"important":[11],"role":[12],"in":[13,99,117],"the":[14,50,73,96,110,129],"transition":[15],"to":[16,48,83,127],"multicore":[17],"systems.":[18],"However,":[19,132],"little":[20],"effort":[21],"has":[22],"been":[23],"placed":[24],"on":[25,30],"assessing":[26],"whether":[27],"STM":[28,76,141],"delivers":[29],"its":[31],"promises":[32],"of":[33,52,69,75,119,123],"avoiding":[34],"common":[35],"concurrent/parallel":[36],"programming":[37,62],"pitfalls.":[38],"In":[39],"this":[40],"paper,":[41],"we":[42],"describe":[43],"a":[44,59,66,85],"controlled":[45],"experiment":[46],"aiming":[47],"evaluate":[49],"ease":[51],"using":[53],"STM.":[54,70],"The":[55],"study":[56],"targets":[57],"Haskell,":[58],"purely":[60],"functional":[61],"language":[63],"includes":[65],"mature":[67],"implementation":[68],"It":[71],"compares":[72],"use":[74],"and":[77,91,125],"Haskell's":[78],"lock-based":[79],"concurrency":[80,120],"control":[81],"mechanism":[82],"develop":[84,128],"program":[86],"with":[87],"(coarse-grained)":[88],"mutual":[89],"exclusion":[90],"synchronization":[92],"requirements.":[93],"We":[94,106],"organized":[95],"51":[97],"subjects":[98],"two":[100,111],"groups,":[101],"one":[102],"for":[103,133],"each":[104],"technique.":[105],"found":[107],"out":[108],"techniques":[112],"did":[113],"not":[114],"differ":[115],"significantly":[116],"terms":[118],"errors,":[121],"number":[122],"LoC":[124],"time":[126],"resulting":[130],"programs.":[131],"programs":[134],"where":[135],"developers":[136],"made":[137],"only":[138],"non-concurrency-related":[139],"mistakes,":[140],"programmers":[142],"finished":[143],"their":[144],"assignments":[145],"quicker.":[146]},"counts_by_year":[{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":4},{"year":2018,"cited_by_count":1},{"year":2015,"cited_by_count":1},{"year":2014,"cited_by_count":1},{"year":2013,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
