{"id":"https://openalex.org/W3047140595","doi":"https://doi.org/10.1017/s0956796810000134","title":"Roles, stacks, histories: A triple for Hoare","display_name":"Roles, stacks, histories: A triple for Hoare","publication_year":2010,"publication_date":"2010-09-22","ids":{"openalex":"https://openalex.org/W3047140595","doi":"https://doi.org/10.1017/s0956796810000134","mag":"3047140595"},"language":"en","primary_location":{"id":"doi:10.1017/s0956796810000134","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796810000134","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/23F4063DD70B051277741864576BF603/S0956796810000134a.pdf/div-class-title-roles-stacks-histories-a-triple-for-hoare-div.pdf","source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/23F4063DD70B051277741864576BF603/S0956796810000134a.pdf/div-class-title-roles-stacks-histories-a-triple-for-hoare-div.pdf","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5038036076","display_name":"Johannes Borgstr\u00f6m","orcid":"https://orcid.org/0000-0001-5990-5742"},"institutions":[{"id":"https://openalex.org/I4210164937","display_name":"Microsoft Research (United Kingdom)","ror":"https://ror.org/05k87vq12","country_code":"GB","type":"company","lineage":["https://openalex.org/I1290206253","https://openalex.org/I4210164937"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"JOHANNES BORGSTR\u00d6M","raw_affiliation_strings":["Microsoft Research, Cambridge, United Kingdom (e-mail:"],"affiliations":[{"raw_affiliation_string":"Microsoft Research, Cambridge, United Kingdom (e-mail:","institution_ids":["https://openalex.org/I4210164937"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5078684560","display_name":"Andrew D. Gordon","orcid":"https://orcid.org/0000-0002-5809-2484"},"institutions":[{"id":"https://openalex.org/I4210164937","display_name":"Microsoft Research (United Kingdom)","ror":"https://ror.org/05k87vq12","country_code":"GB","type":"company","lineage":["https://openalex.org/I1290206253","https://openalex.org/I4210164937"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"ANDREW D. GORDON","raw_affiliation_strings":["Microsoft Research, Cambridge, United Kingdom (e-mail:"],"affiliations":[{"raw_affiliation_string":"Microsoft Research, Cambridge, United Kingdom (e-mail:","institution_ids":["https://openalex.org/I4210164937"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5091462128","display_name":"Riccardo Pucella","orcid":null},"institutions":[{"id":"https://openalex.org/I12912129","display_name":"Northeastern University","ror":"https://ror.org/04t5xt781","country_code":"US","type":"education","lineage":["https://openalex.org/I12912129"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"RICCARDO PUCELLA","raw_affiliation_strings":["Northeastern University, College of Computer and Information Science, Boston, Massachusetts, USA"],"affiliations":[{"raw_affiliation_string":"Northeastern University, College of Computer and Information Science, Boston, Massachusetts, USA","institution_ids":["https://openalex.org/I12912129"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5038036076"],"corresponding_institution_ids":["https://openalex.org/I4210164937"],"apc_list":null,"apc_paid":null,"fwci":3.1573,"has_fulltext":true,"cited_by_count":9,"citation_normalized_percentile":{"value":0.92583113,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":"21","issue":"2","first_page":"159","last_page":"207"},"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.9998000264167786,"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.9998000264167786,"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/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"}},{"id":"https://openalex.org/T10927","display_name":"Access Control and Trust","score":0.9952999949455261,"subfield":{"id":"https://openalex.org/subfields/3312","display_name":"Sociology and Political Science"},"field":{"id":"https://openalex.org/fields/33","display_name":"Social Sciences"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8787715435028076},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6908218860626221},{"id":"https://openalex.org/keywords/syntax","display_name":"Syntax","score":0.5387158989906311},{"id":"https://openalex.org/keywords/monad","display_name":"Monad (category theory)","score":0.5218221545219421},{"id":"https://openalex.org/keywords/access-control","display_name":"Access control","score":0.5097422003746033},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.4862028956413269},{"id":"https://openalex.org/keywords/model-checking","display_name":"Model checking","score":0.4643002152442932},{"id":"https://openalex.org/keywords/type-theory","display_name":"Type theory","score":0.44344744086265564},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.4275713264942169},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.42611029744148254},{"id":"https://openalex.org/keywords/computer-security","display_name":"Computer security","score":0.2047540545463562},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.18241170048713684}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8787715435028076},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6908218860626221},{"id":"https://openalex.org/C60048249","wikidata":"https://www.wikidata.org/wiki/Q37437","display_name":"Syntax","level":2,"score":0.5387158989906311},{"id":"https://openalex.org/C33959348","wikidata":"https://www.wikidata.org/wiki/Q1630568","display_name":"Monad (category theory)","level":3,"score":0.5218221545219421},{"id":"https://openalex.org/C527821871","wikidata":"https://www.wikidata.org/wiki/Q228502","display_name":"Access control","level":2,"score":0.5097422003746033},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.4862028956413269},{"id":"https://openalex.org/C110251889","wikidata":"https://www.wikidata.org/wiki/Q1569697","display_name":"Model checking","level":2,"score":0.4643002152442932},{"id":"https://openalex.org/C93682546","wikidata":"https://www.wikidata.org/wiki/Q1056428","display_name":"Type theory","level":3,"score":0.44344744086265564},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.4275713264942169},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.42611029744148254},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.2047540545463562},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.18241170048713684},{"id":"https://openalex.org/C156772000","wikidata":"https://www.wikidata.org/wiki/Q864475","display_name":"Functor","level":2,"score":0.0},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1017/s0956796810000134","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796810000134","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/23F4063DD70B051277741864576BF603/S0956796810000134a.pdf/div-class-title-roles-stacks-histories-a-triple-for-hoare-div.pdf","source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1017/s0956796810000134","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796810000134","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/23F4063DD70B051277741864576BF603/S0956796810000134a.pdf/div-class-title-roles-stacks-histories-a-triple-for-hoare-div.pdf","source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/16","display_name":"Peace, Justice and strong institutions","score":0.75}],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3047140595.pdf","grobid_xml":"https://content.openalex.org/works/W3047140595.grobid-xml"},"referenced_works_count":53,"referenced_works":["https://openalex.org/W168400685","https://openalex.org/W1480909796","https://openalex.org/W1504054062","https://openalex.org/W1511133369","https://openalex.org/W1544662935","https://openalex.org/W1556566737","https://openalex.org/W1570043269","https://openalex.org/W1590844387","https://openalex.org/W1591295894","https://openalex.org/W1644112624","https://openalex.org/W1749560176","https://openalex.org/W1966663897","https://openalex.org/W1968195039","https://openalex.org/W1975575519","https://openalex.org/W1987339920","https://openalex.org/W1997143185","https://openalex.org/W1998070736","https://openalex.org/W2002829132","https://openalex.org/W2005192022","https://openalex.org/W2016696108","https://openalex.org/W2017060815","https://openalex.org/W2036961426","https://openalex.org/W2044590882","https://openalex.org/W2046970568","https://openalex.org/W2048921878","https://openalex.org/W2055477538","https://openalex.org/W2056073317","https://openalex.org/W2075849836","https://openalex.org/W2101085206","https://openalex.org/W2103317919","https://openalex.org/W2109772966","https://openalex.org/W2115721302","https://openalex.org/W2118671630","https://openalex.org/W2119866203","https://openalex.org/W2123479684","https://openalex.org/W2126275975","https://openalex.org/W2127402358","https://openalex.org/W2128057448","https://openalex.org/W2129894194","https://openalex.org/W2141210774","https://openalex.org/W2143150127","https://openalex.org/W2146306932","https://openalex.org/W2148025199","https://openalex.org/W2161011930","https://openalex.org/W2166602595","https://openalex.org/W2174624365","https://openalex.org/W2295923951","https://openalex.org/W2491114505","https://openalex.org/W2581716308","https://openalex.org/W4214538532","https://openalex.org/W4243512628","https://openalex.org/W4245524452","https://openalex.org/W4252361379"],"related_works":["https://openalex.org/W2767001837","https://openalex.org/W2545433890","https://openalex.org/W2255188432","https://openalex.org/W3123725507","https://openalex.org/W4299554251","https://openalex.org/W2952743438","https://openalex.org/W1993262756","https://openalex.org/W2128992690","https://openalex.org/W2114058479","https://openalex.org/W4233723952"],"abstract_inverted_index":{"Abstract":[0],"Behavioral":[1],"type":[2,59,84],"and":[3,13,23,37,61,93,117],"effect":[4],"systems":[5],"regulate":[6],"properties":[7],"such":[8],"as":[9,54,67],"adherence":[10],"to":[11,131],"object":[12],"communication":[14],"protocols,":[15],"dynamic":[16],"security":[17,138],"policies,":[18],"avoidance":[19],"of":[20,35,71,82,103,114,119,127,136],"race":[21],"conditions,":[22],"many":[24],"others.":[25],"Typically,":[26],"each":[27],"system":[28],"is":[29,38,130],"based":[30],"on":[31],"some":[32],"specific":[33],"syntax":[34],"constraints,":[36],"checked":[39],"with":[40,50,143],"an":[41,68],"ad":[42],"hoc":[43],"solver.":[44],"Instead,":[45],"we":[46,78],"advocate":[47],"types":[48],"refined":[49,105],"first-order":[51],"logic":[52],"formulas":[53],"a":[55,80,104,111,140],"basis":[56],"for":[57,86,90,94],"behavioral":[58,128],"systems,":[60],"general":[62],"purpose":[63],"automated":[64],"theorem":[65],"provers":[66],"effective":[69],"means":[70],"checking":[72],"programs.":[73],"To":[74],"illustrate":[75],"this":[76],"approach,":[77],"define":[79],"triple":[81],"security-related":[83],"systems:":[85],"role-based":[87],"access":[88,96,145],"control,":[89],"stack":[91],"inspection,":[92],"history-based":[95],"control.":[97,146],"The":[98],"three":[99],"are":[100],"all":[101],"instances":[102],"state":[106],"monad.":[107],"Our":[108],"semantics":[109],"allows":[110],"precise":[112],"comparison":[113],"the":[115,125,134],"similarities":[116],"differences":[118],"these":[120],"mechanisms.":[121],"In":[122],"our":[123],"examples,":[124],"benefit":[126],"type-checking":[129],"rule":[132],"out":[133],"possibility":[135],"unexpected":[137],"exceptions,":[139],"common":[141],"problem":[142],"code-based":[144]},"counts_by_year":[{"year":2021,"cited_by_count":1},{"year":2014,"cited_by_count":1},{"year":2013,"cited_by_count":2},{"year":2012,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
