{"id":"https://openalex.org/W2107406536","doi":null,"title":"Finding Application Errors Using PQL: a Program Query Language","display_name":"Finding Application Errors Using PQL: a Program Query Language","publication_year":2004,"publication_date":"2004-01-01","ids":{"openalex":"https://openalex.org/W2107406536","mag":"2107406536"},"language":"en","primary_location":{"id":"mag:2107406536","doi":null,"is_oa":false,"landing_page_url":"https://research.microsoft.com/en-us/um/people/livshits/papers/pql_tr.pdf","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null},"volume":null,"type":"article","is_traditional":true,"indexed_in":[],"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/A5044418818","display_name":"Martin V. Benjamin Livshits","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Martin V. Benjamin Livshits","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]},{"author_position":"last","author":{"id":"https://openalex.org/A5002419188","display_name":"Monica S. Lam","orcid":"https://orcid.org/0000-0002-1205-1302","observed_orcids":["https://orcid.org/0000-0002-1205-1302"]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Monica S. Lam","raw_affiliation_strings":[],"raw_orcid":"https://orcid.org/0000-0002-1205-1302","affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":11.6862,"has_fulltext":false,"cited_by_count":38,"citation_normalized_percentile":{"value":0.98311425,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":88,"max":93},"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.8687000274658203,"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"}},"topics":[{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.8687000274658203,"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.0649000033736229,"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/T10260","display_name":"Software Engineering Research","score":0.05649999901652336,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/design-rule-violations","display_name":"design rule violations","score":0.722000002861023},{"id":"https://openalex.org/keywords/event-sequences","display_name":"event sequences","score":0.5929999947547913},{"id":"https://openalex.org/keywords/security-vulnerabilities","display_name":"security vulnerabilities","score":0.5490000247955322},{"id":"https://openalex.org/keywords/resource-leaks","display_name":"resource leaks","score":0.984000027179718},{"id":"https://openalex.org/keywords/java-programs","display_name":"Java programs","score":0.8700000047683716},{"id":"https://openalex.org/keywords/open-source-software","display_name":"open source software","score":0.7160000205039978}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8694133758544922},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.649497389793396},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.5707664489746094},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.561181902885437},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.5432790517807007},{"id":"https://openalex.org/C150202949","wikidata":"https://www.wikidata.org/wiki/Q107602","display_name":"Pointer (user interface)","level":2,"score":0.5061437487602234},{"id":"https://openalex.org/C88468194","wikidata":"https://www.wikidata.org/wiki/Q1172416","display_name":"Data-flow analysis","level":3,"score":0.4658435583114624},{"id":"https://openalex.org/C7263679","wikidata":"https://www.wikidata.org/wiki/Q5978076","display_name":"Pointer analysis","level":3,"score":0.4276285171508789},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.42729729413986206},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3469805121421814},{"id":"https://openalex.org/C489000","wikidata":"https://www.wikidata.org/wiki/Q747385","display_name":"Data flow diagram","level":2,"score":0.2898712754249573},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.22597280144691467},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.113472580909729}],"mesh":[],"locations_count":1,"locations":[{"id":"mag:2107406536","doi":null,"is_oa":false,"landing_page_url":"https://research.microsoft.com/en-us/um/people/livshits/papers/pql_tr.pdf","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":23,"referenced_works":["https://openalex.org/W84258820","https://openalex.org/W87331621","https://openalex.org/W318451624","https://openalex.org/W1564121721","https://openalex.org/W1579850852","https://openalex.org/W1610570299","https://openalex.org/W1967966231","https://openalex.org/W1972544179","https://openalex.org/W1986453394","https://openalex.org/W2013007594","https://openalex.org/W2015607366","https://openalex.org/W2062613080","https://openalex.org/W2066836426","https://openalex.org/W2099016869","https://openalex.org/W2106972913","https://openalex.org/W2121059325","https://openalex.org/W2126077537","https://openalex.org/W2130958154","https://openalex.org/W2138369269","https://openalex.org/W2151298976","https://openalex.org/W2158600037","https://openalex.org/W2295399529","https://openalex.org/W2615760767"],"related_works":["https://openalex.org/W3033482452","https://openalex.org/W7095989124","https://openalex.org/W2298570127","https://openalex.org/W1524851376","https://openalex.org/W2153177359","https://openalex.org/W7047061676","https://openalex.org/W2170830071","https://openalex.org/W318451624","https://openalex.org/W7100622096","https://openalex.org/W4242528790"],"abstract_inverted_index":{"A":[0,63],"number":[1],"of":[2,26,32,38,75,84,208,224,232],"effective":[3],"error":[4],"detection":[5],"tools":[6],"have":[7,121,195],"been":[8],"built":[9],"in":[10,59,163,214],"recent":[11],"years":[12],"to":[13,19,54,71,99,128,131,175,185,204],"check":[14],"if":[15,190],"a":[16,36,44,67,80,102,143,222,230],"program":[17,174,182],"conforms":[18],"certain":[20,158],"design":[21,27,81],"rules.":[22],"An":[23],"important":[24,211],"class":[25],"rules":[28],"deals":[29],"with":[30,35],"sequences":[31],"events":[33],"associated":[34],"set":[37],"related":[39],"objects.":[40],"This":[41],"paper":[42],"presents":[43],"language":[45],"called":[46],"PQL":[47,132],"(Program":[48],"Query":[49],"Language)":[50],"that":[51,77],"allows":[52],"programmers":[53],"express":[55],"such":[56,106,191],"questions":[57],"easily":[58],"an":[60,114],"application-specific":[61],"context.":[62],"query":[64],"looks":[65],"like":[66],"code":[68,76],"excerpt":[69],"corresponding":[70],"the":[72,85,118,151,165,172,181,187,197],"shortest":[73],"amount":[74],"would":[78],"violate":[79],"rule.":[82],"Details":[83],"target":[86],"application\u2019s":[87],"precise":[88,156],"implementation":[89],"are":[90,161,192],"abstracted":[91],"away.":[92],"The":[93],"programmer":[94],"may":[95,153],"also":[96],"specify":[97],"actions":[98,189],"perform":[100,186],"when":[101],"match":[103],"is":[104],"found,":[105],"as":[107,180],"recording":[108],"relevant":[109],"information":[110],"or":[111],"even":[112],"correcting":[113],"erroneous":[115],"execution":[116],"on":[117],"fly.":[119],"We":[120,194],"developed":[122],"both":[123],"static":[124,135,233],"and":[125,184,200,210,234],"dynamic":[126,166,169,235],"techniques":[127,199],"find":[129,205],"solutions":[130],"queries.":[133],"Our":[134,168],"analyzer":[136,170],"finds":[137],"all":[138,177],"potential":[139],"matches":[140],"conservatively":[141],"using":[142,229],"context-sensitive,":[144],"flow-insensitive,":[145],"inclusionbased":[146],"pointer":[147],"alias":[148],"analysis.":[149,167,236],"While":[150],"results":[152],"not":[154],"be":[155],"for":[157],"queries,":[159],"they":[160],"useful":[162],"optimizing":[164],"instruments":[171],"source":[173],"catch":[176],"violations":[178],"precisely":[179],"runs":[183],"specified":[188],"provided.":[193],"implemented":[196],"proposed":[198],"used":[201],"them":[202],"successfully":[203],"severe":[206],"breaches":[207],"security":[209],"resource":[212],"leaks":[213],"6":[215],"large":[216],"real-world":[217],"open-source":[218],"Java":[219],"applications":[220],"containing":[221],"total":[223],"more":[225],"than":[226],"62,000":[227],"classes":[228],"combination":[231]},"counts_by_year":[{"year":2020,"cited_by_count":1},{"year":2016,"cited_by_count":1},{"year":2015,"cited_by_count":1},{"year":2012,"cited_by_count":1}],"updated_date":"2026-11-12T12:28:57.059296","created_date":"2016-06-24T00:00:00"}
