{"id":"https://openalex.org/W2120979781","doi":"https://doi.org/10.1109/scam.2015.7335406","title":"Detecting function purity in JavaScript","display_name":"Detecting function purity in JavaScript","publication_year":2015,"publication_date":"2015-09-01","ids":{"openalex":"https://openalex.org/W2120979781","doi":"https://doi.org/10.1109/scam.2015.7335406","mag":"2120979781"},"language":"en","primary_location":{"id":"doi:10.1109/scam.2015.7335406","is_oa":false,"landing_page_url":"https://doi.org/10.1109/scam.2015.7335406","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2015 IEEE 15th International Working Conference on Source Code Analysis and Manipulation (SCAM)","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/A5043235206","display_name":"Jens Nicolay","orcid":"https://orcid.org/0000-0003-4653-5820"},"institutions":[{"id":"https://openalex.org/I13469542","display_name":"Vrije Universiteit Brussel","ror":"https://ror.org/006e5kg04","country_code":"BE","type":"education","lineage":["https://openalex.org/I13469542"]}],"countries":["BE"],"is_corresponding":true,"raw_author_name":"Jens Nicolay","raw_affiliation_strings":["Software Languages Lab, Vrije Universiteit Brussel, Brussels, Belgium","Software Languages Lab Vrije Universiteit Brussel Brussels Belgium"],"affiliations":[{"raw_affiliation_string":"Software Languages Lab, Vrije Universiteit Brussel, Brussels, Belgium","institution_ids":["https://openalex.org/I13469542"]},{"raw_affiliation_string":"Software Languages Lab Vrije Universiteit Brussel Brussels Belgium","institution_ids":["https://openalex.org/I13469542"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5029912744","display_name":"Carlos Noguera","orcid":"https://orcid.org/0000-0002-3258-5993"},"institutions":[{"id":"https://openalex.org/I13469542","display_name":"Vrije Universiteit Brussel","ror":"https://ror.org/006e5kg04","country_code":"BE","type":"education","lineage":["https://openalex.org/I13469542"]}],"countries":["BE"],"is_corresponding":false,"raw_author_name":"Carlos Noguera","raw_affiliation_strings":["Software Languages Lab, Vrije Universiteit Brussel, Brussels, Belgium","Software Languages Lab Vrije Universiteit Brussel Brussels Belgium"],"affiliations":[{"raw_affiliation_string":"Software Languages Lab, Vrije Universiteit Brussel, Brussels, Belgium","institution_ids":["https://openalex.org/I13469542"]},{"raw_affiliation_string":"Software Languages Lab Vrije Universiteit Brussel Brussels Belgium","institution_ids":["https://openalex.org/I13469542"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5042827940","display_name":"Coen De Roover","orcid":"https://orcid.org/0000-0002-1710-1268"},"institutions":[{"id":"https://openalex.org/I13469542","display_name":"Vrije Universiteit Brussel","ror":"https://ror.org/006e5kg04","country_code":"BE","type":"education","lineage":["https://openalex.org/I13469542"]}],"countries":["BE"],"is_corresponding":false,"raw_author_name":"Coen De Roover","raw_affiliation_strings":["Software Languages Lab, Vrije Universiteit Brussel, Brussels, Belgium","Software Languages Lab Vrije Universiteit Brussel Brussels Belgium"],"affiliations":[{"raw_affiliation_string":"Software Languages Lab, Vrije Universiteit Brussel, Brussels, Belgium","institution_ids":["https://openalex.org/I13469542"]},{"raw_affiliation_string":"Software Languages Lab Vrije Universiteit Brussel Brussels Belgium","institution_ids":["https://openalex.org/I13469542"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5090657641","display_name":"Wolfgang De Meuter","orcid":"https://orcid.org/0000-0002-5229-5627"},"institutions":[{"id":"https://openalex.org/I13469542","display_name":"Vrije Universiteit Brussel","ror":"https://ror.org/006e5kg04","country_code":"BE","type":"education","lineage":["https://openalex.org/I13469542"]}],"countries":["BE"],"is_corresponding":false,"raw_author_name":"Wolfgang De Meuter","raw_affiliation_strings":["Software Languages Lab, Vrije Universiteit Brussel, Brussels, Belgium","Software Languages Lab Vrije Universiteit Brussel Brussels Belgium"],"affiliations":[{"raw_affiliation_string":"Software Languages Lab, Vrije Universiteit Brussel, Brussels, Belgium","institution_ids":["https://openalex.org/I13469542"]},{"raw_affiliation_string":"Software Languages Lab Vrije Universiteit Brussel Brussels Belgium","institution_ids":["https://openalex.org/I13469542"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5043235206"],"corresponding_institution_ids":["https://openalex.org/I13469542"],"apc_list":null,"apc_paid":null,"fwci":2.6706,"has_fulltext":false,"cited_by_count":10,"citation_normalized_percentile":{"value":0.91771546,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":97},"biblio":{"volume":null,"issue":null,"first_page":"101","last_page":"110"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","score":0.9986000061035156,"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"}},"topics":[{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","score":0.9986000061035156,"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"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.998199999332428,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9969000220298767,"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/javascript","display_name":"JavaScript","score":0.8487002849578857},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7808372974395752},{"id":"https://openalex.org/keywords/function","display_name":"Function (biology)","score":0.5865033864974976},{"id":"https://openalex.org/keywords/unobtrusive-javascript","display_name":"Unobtrusive JavaScript","score":0.49764779210090637},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.4436027705669403},{"id":"https://openalex.org/keywords/static-analysis","display_name":"Static analysis","score":0.44113969802856445},{"id":"https://openalex.org/keywords/property","display_name":"Property (philosophy)","score":0.4220763146877289},{"id":"https://openalex.org/keywords/inheritance","display_name":"Inheritance (genetic algorithm)","score":0.4213988184928894},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.3300740122795105},{"id":"https://openalex.org/keywords/rich-internet-application","display_name":"Rich Internet application","score":0.07863432168960571}],"concepts":[{"id":"https://openalex.org/C544833334","wikidata":"https://www.wikidata.org/wiki/Q2005","display_name":"JavaScript","level":2,"score":0.8487002849578857},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7808372974395752},{"id":"https://openalex.org/C14036430","wikidata":"https://www.wikidata.org/wiki/Q3736076","display_name":"Function (biology)","level":2,"score":0.5865033864974976},{"id":"https://openalex.org/C198240166","wikidata":"https://www.wikidata.org/wiki/Q2298909","display_name":"Unobtrusive JavaScript","level":4,"score":0.49764779210090637},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.4436027705669403},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.44113969802856445},{"id":"https://openalex.org/C189950617","wikidata":"https://www.wikidata.org/wiki/Q937228","display_name":"Property (philosophy)","level":2,"score":0.4220763146877289},{"id":"https://openalex.org/C2780902518","wikidata":"https://www.wikidata.org/wiki/Q6033780","display_name":"Inheritance (genetic algorithm)","level":3,"score":0.4213988184928894},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3300740122795105},{"id":"https://openalex.org/C103048170","wikidata":"https://www.wikidata.org/wiki/Q725485","display_name":"Rich Internet application","level":3,"score":0.07863432168960571},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C55493867","wikidata":"https://www.wikidata.org/wiki/Q7094","display_name":"Biochemistry","level":1,"score":0.0},{"id":"https://openalex.org/C78458016","wikidata":"https://www.wikidata.org/wiki/Q840400","display_name":"Evolutionary biology","level":1,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C104317684","wikidata":"https://www.wikidata.org/wiki/Q7187","display_name":"Gene","level":2,"score":0.0},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0},{"id":"https://openalex.org/C185592680","wikidata":"https://www.wikidata.org/wiki/Q2329","display_name":"Chemistry","level":0,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1109/scam.2015.7335406","is_oa":false,"landing_page_url":"https://doi.org/10.1109/scam.2015.7335406","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2015 IEEE 15th International Working Conference on Source Code Analysis and Manipulation (SCAM)","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.720.4044","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.720.4044","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://soft.vub.ac.be/Publications/2015/vub-soft-tr-15-09.pdf","raw_type":"text"},{"id":"pmh:oai:vubissmart:VUBISSMART:2000:96251","is_oa":false,"landing_page_url":"https://biblio.vub.ac.be/vubir/detecting-function-purity-in-javascript(149c8429-f75a-4091-8fde-3fc06e0ed744).html","pdf_url":null,"source":{"id":"https://openalex.org/S4306402573","display_name":"VUBIR (Vrije Universiteit Brussel)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I13469542","host_organization_name":"Vrije Universiteit Brussel","host_organization_lineage":["https://openalex.org/I13469542"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[{"id":"https://openalex.org/F4320327336","display_name":"Vlaamse regering","ror":null}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":13,"referenced_works":["https://openalex.org/W1475955015","https://openalex.org/W1500987966","https://openalex.org/W1517943150","https://openalex.org/W1522000168","https://openalex.org/W1530069485","https://openalex.org/W1915934711","https://openalex.org/W2045424609","https://openalex.org/W2068530643","https://openalex.org/W2118004641","https://openalex.org/W2127317841","https://openalex.org/W2134968380","https://openalex.org/W2964225594","https://openalex.org/W6640219749"],"related_works":["https://openalex.org/W650647575","https://openalex.org/W2472584751","https://openalex.org/W1566603754","https://openalex.org/W2621181330","https://openalex.org/W2085515337","https://openalex.org/W2766362161","https://openalex.org/W2525971262","https://openalex.org/W2949337025","https://openalex.org/W2584011092","https://openalex.org/W2290206096"],"abstract_inverted_index":{"We":[0,67],"present":[1],"an":[2,56],"approach":[3,23],"to":[4,59,80],"detect":[5],"function":[6,11,95],"purity":[7,50],"in":[8,98],"JavaScript.":[9],"A":[10],"is":[12,24,91],"pure":[13],"if":[14],"none":[15],"of":[16,41,48,62,72,93,101],"its":[17],"applications":[18],"cause":[19],"observable":[20],"side-effects.":[21],"The":[22],"based":[25],"on":[26],"a":[27],"pushdown":[28],"flow":[29,37],"analysis":[30,58],"that":[31,88],"besides":[32],"traditional":[33],"control":[34],"and":[35,64,75,107],"value":[36],"also":[38],"keeps":[39],"track":[40],"write":[42],"effects.":[43],"To":[44],"increase":[45],"the":[46,69,99],"precision":[47],"our":[49,73,77,89],"analysis,":[51,74],"we":[52],"combine":[53],"it":[54],"with":[55],"intraprocedural":[57],"determine":[60],"freshness":[61],"variables":[63],"object":[65],"references.":[66],"formalize":[68],"core":[70],"aspects":[71],"discuss":[76],"implementation":[78],"used":[79],"analyze":[81],"several":[82],"common":[83],"JavaScript":[84],"benchmarks.":[85],"Experiments":[86],"show":[87],"technique":[90],"capable":[92],"detecting":[94],"purity,":[96],"even":[97],"presence":[100],"higher-order":[102],"functions,":[103],"dynamic":[104],"property":[105],"expressions,":[106],"prototypal":[108],"inheritance.":[109]},"counts_by_year":[{"year":2020,"cited_by_count":4},{"year":2018,"cited_by_count":1},{"year":2017,"cited_by_count":3},{"year":2016,"cited_by_count":2}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
