WYSIWIB: exploiting fine-grained program structure in a scriptable API-usage protocol-finding process
SUMMARY Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing c...
Saved in:
| Published in: | Software, practice & experience Vol. 43; no. 1; pp. 67 - 92 |
|---|---|
| Main Authors: | , , , , , |
| Format: | Journal Article |
| Language: | English |
| Published: |
Chichester, UK
John Wiley & Sons, Ltd
01.01.2013
Wiley Subscription Services, Inc Wiley |
| Subjects: | |
| ISSN: | 0038-0644, 1097-024X |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | SUMMARY
Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions. Copyright © 2012 John Wiley & Sons, Ltd. |
|---|---|
| AbstractList | Bug-finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions. SUMMARY Bug-finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions. Copyright © 2012 John Wiley & Sons, Ltd. [PUBLICATION ABSTRACT] SUMMARY Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions. Copyright © 2012 John Wiley & Sons, Ltd. SUMMARY Bug-finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions. Copyright [copy 2012 John Wiley & Sons, Ltd. Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions. Copyright © 2012 John Wiley & Sons, Ltd. |
| Author | Palix, Nicolas Brunel, Julien Muller, Gilles Lawall, Julia L. Hansen, René Rydhof Stuart, Henrik |
| Author_xml | – sequence: 1 givenname: Julia L. surname: Lawall fullname: Lawall, Julia L. email: julia@diku.dk, Julia L. Lawall, DIKU, University of Copenhagen, Copenhagen, Denmark., julia@diku.dk organization: DIKU, University of Copenhagen, Copenhagen, Denmark – sequence: 2 givenname: Julien surname: Brunel fullname: Brunel, Julien organization: DIKU, University of Copenhagen, Copenhagen, Denmark – sequence: 3 givenname: Nicolas surname: Palix fullname: Palix, Nicolas organization: DIKU, University of Copenhagen, Copenhagen, Denmark – sequence: 4 givenname: René Rydhof surname: Hansen fullname: Hansen, René Rydhof organization: Aalborg University, Aalborg, Denmark – sequence: 5 givenname: Henrik surname: Stuart fullname: Stuart, Henrik organization: DIKU, University of Copenhagen, Copenhagen, Denmark – sequence: 6 givenname: Gilles surname: Muller fullname: Muller, Gilles organization: INRIA/LIP6, Paris, France |
| BackLink | https://hal.science/hal-00940320$$DView record in HAL |
| BookMark | eNp10VFv0zAQAGALDYluIPETIvECDylnx4lj3so01ooKKgYqPFmOcy0eaRxsB7Z_j6PCEAhefNbp8-nOd0pOetcjIY8pzCkAex4GnDMK7B6ZUZAiB8Y_npAZQFHnUHH-gJyGcA1AacmqGcHtp6vVdvXyRYY3Q-dstP0-29ke873XKbTZ4F26HrIQ_Wji6DGzfaazYLwdom46zBabVT4GvcfJRmdcl6cK7VQpJQyG8JDc3-ku4KOf8Yx8eHXx_nyZr99ers4X69wUsmZ5K0otRSVRcCl2tS6xEuloRGtMxY2odCNLU-tW04ZSxlpoGAcjKTYllEYXZ-TZse5n3anB24P2t8ppq5aLtZpyAJJDweAbTfbp0aYev44YojrYYLDrdI9uDIpWgnLOpawTffIXvXaj79MkirJClnVVM5bU_KiMdyF43Cljo47W9TF9ZacoqGlDKm1ITRv63cHdg18t_4PmR_rddnj7X6euNhd_ehsi3tx57b-oShSiVNs3l0rUm_LdkhXqdfEDdTuvlw |
| CitedBy_id | crossref_primary_10_1145_2619090 |
| Cites_doi | 10.1109/DSN.2009.5270354 10.1145/1950365.1950401 10.1007/978-3-540-31980-1_30 10.1109/MS.2008.130 10.1145/1352592.1352618 10.1007/978-3-642-00768-2_26 10.1145/1217935.1217943 10.1145/1480881.1480897 |
| ContentType | Journal Article |
| Copyright | Copyright © 2012 John Wiley & Sons, Ltd. licence_http://creativecommons.org/publicdomain/zero |
| Copyright_xml | – notice: Copyright © 2012 John Wiley & Sons, Ltd. – notice: licence_http://creativecommons.org/publicdomain/zero |
| DBID | BSCLL AAYXX CITATION 7SC 8FD F28 FR3 JQ2 L7M L~C L~D 1XC |
| DOI | 10.1002/spe.2102 |
| DatabaseName | Istex CrossRef Computer and Information Systems Abstracts Technology Research Database ANTE: Abstracts in New Technology & Engineering Engineering Research Database ProQuest Computer Science Collection Advanced Technologies Database with Aerospace Computer and Information Systems Abstracts Academic Computer and Information Systems Abstracts Professional Hyper Article en Ligne (HAL) |
| DatabaseTitle | CrossRef Technology Research Database Computer and Information Systems Abstracts – Academic ProQuest Computer Science Collection Computer and Information Systems Abstracts Engineering Research Database Advanced Technologies Database with Aerospace ANTE: Abstracts in New Technology & Engineering Computer and Information Systems Abstracts Professional |
| DatabaseTitleList | Technology Research Database Technology Research Database CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1097-024X |
| EndPage | 92 |
| ExternalDocumentID | oai:HAL:hal-00940320v1 2844391661 10_1002_spe_2102 SPE2102 ark_67375_WNG_78P5RH23_K |
| Genre | article |
| GroupedDBID | -~X .3N .4S .DC .GA .Y3 05W 0R~ 10A 123 1L6 1OB 1OC 31~ 33P 3EH 3R3 3SF 3WU 4.4 4ZD 50Y 50Z 51W 51X 52M 52N 52O 52P 52S 52T 52U 52W 52X 5VS 66C 702 7PT 8-0 8-1 8-3 8-4 8-5 85S 8UM 8WZ 930 9M8 A03 A6W AAESR AAEVG AAHQN AAMMB AAMNL AANHP AANLZ AAONW AASGY AAXRX AAYCA AAZKR ABCQN ABCUV ABDPE ABEFU ABEML ABIJN ABLJU ACAHQ ACBWZ ACCZN ACFBH ACGFS ACIWK ACNCT ACPOU ACRPL ACSCC ACXBN ACXQS ACYXJ ADBBV ADEOM ADIZJ ADKYN ADMGS ADMLS ADMXK ADNMO ADOZA ADXAS ADZMN AEFGJ AEIGN AEIMD AENEX AEUYR AEYWJ AFBPY AFFPM AFGKR AFWVQ AFZJQ AGHNM AGQPQ AGXDD AGYGG AHBTC AIDQK AIDYY AIQQE AITYG AIURR AJXKR ALAGY ALMA_UNASSIGNED_HOLDINGS ALUQN ALVPJ AMBMR AMYDB ARCSS ASPBG ATUGU AUFTA AVWKF AZBYB AZFZN AZVAB BAFTC BDRZF BFHJK BHBCM BMNLL BNHUX BROTX BRXPI BSCLL BY8 CS3 CWDTD D-E D-F D0L DCZOG DPXWK DR2 DRFUL DRSTM DU5 EBS EJD F00 F01 F04 FEDTE G-S G.N GNP GODZA H.T H.X HBH HF~ HGLYW HHY HVGLF HZ~ IX1 J0M JPC KQQ LATKE LAW LC2 LC3 LEEKS LH4 LITHE LOXES LP6 LP7 LUTES LW6 LYRES M61 MEWTI MK4 MRFUL MRSTM MSFUL MSSTM MXFUL MXSTM N04 N05 N9A NF~ NNB O66 O9- OIG P2P P2W P2X P4D PALCI PQQKQ PZZ Q.N Q11 QB0 QRW R.K RIWAO RJQFR ROL RX1 RXW RYL S10 SAMSI SUPJJ TAE TUS TWZ UB1 V2E W8V W99 WBKPD WH7 WIB WIH WIK WOHZO WQJ WXSBR WYISQ WZISG XG1 XPP XV2 YYP ZCA ZY4 ZZTAW ~02 ~IA ~WT AAHHS ABTAH ACCFJ AEEZP AEQDE AEUQT AFPWT AIWBW AJBDE RWI WRC WWW AAYXX ABUFD CITATION O8X 7SC 8FD F28 FR3 JQ2 L7M L~C L~D 1XC |
| ID | FETCH-LOGICAL-c3982-d75a9769e7497f8a5e67a5eb7dcc64c76ab95c8ada1b1122d0b240c91eb505ca3 |
| IEDL.DBID | DRFUL |
| ISICitedReferencesCount | 8 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000312653300003&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 0038-0644 |
| IngestDate | Sat Nov 22 06:21:18 EST 2025 Wed Oct 01 14:25:25 EDT 2025 Fri Jul 25 12:17:43 EDT 2025 Sat Nov 29 04:02:35 EST 2025 Tue Nov 18 22:43:27 EST 2025 Wed Jan 22 16:41:04 EST 2025 Sun Sep 21 06:17:56 EDT 2025 |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 1 |
| Keywords | Linux bug finding program analysis |
| Language | English |
| License | http://onlinelibrary.wiley.com/termsAndConditions#vor licence_http://creativecommons.org/publicdomain/zero/: http://creativecommons.org/publicdomain/zero |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-c3982-d75a9769e7497f8a5e67a5eb7dcc64c76ab95c8ada1b1122d0b240c91eb505ca3 |
| Notes | This is an extended version of the article 'WYSIWIB: A Declarative Approach to Finding API Protocols and Bugs in Linux Code' that was presented at the 2009 IEEE/IFIP International Conference on Dependable Systems and Networks. ArticleID:SPE2102 istex:3147194B8E9F5B02960E7325CCF445DD58EF24CB ark:/67375/WNG-78P5RH23-K This is an extended version of the article ‘WYSIWIB: A Declarative Approach to Finding API Protocols and Bugs in Linux Code’ that was presented at the 2009 IEEE/IFIP International Conference on Dependable Systems and Networks. Julien Brunel's current address: ONERA, Toulouse, France ObjectType-Article-1 SourceType-Scholarly Journals-1 content type line 14 ObjectType-Feature-2 content type line 23 |
| ORCID | 0000-0002-1684-1264 0000-0001-8873-281X |
| PQID | 1239586822 |
| PQPubID | 1046349 |
| PageCount | 26 |
| ParticipantIDs | hal_primary_oai_HAL_hal_00940320v1 proquest_miscellaneous_1671444998 proquest_journals_1239586822 crossref_citationtrail_10_1002_spe_2102 crossref_primary_10_1002_spe_2102 wiley_primary_10_1002_spe_2102_SPE2102 istex_primary_ark_67375_WNG_78P5RH23_K |
| PublicationCentury | 2000 |
| PublicationDate | 2013-01 January 2013 2013-01-00 20130101 |
| PublicationDateYYYYMMDD | 2013-01-01 |
| PublicationDate_xml | – month: 01 year: 2013 text: 2013-01 |
| PublicationDecade | 2010 |
| PublicationPlace | Chichester, UK |
| PublicationPlace_xml | – name: Chichester, UK – name: Bognor Regis |
| PublicationSubtitle | Practice & Experience |
| PublicationTitle | Software, practice & experience |
| PublicationTitleAlternate | Softw. Pract. Exper |
| PublicationYear | 2013 |
| Publisher | John Wiley & Sons, Ltd Wiley Subscription Services, Inc Wiley |
| Publisher_xml | – name: John Wiley & Sons, Ltd – name: Wiley Subscription Services, Inc – name: Wiley |
| References | Ayewah N, Hovemeyer D, Morgenthaler JD, Penix J, Pugh W. Using static analysis to find bugs. IEEE Software 2008; 25(5):22-29. MacKenzie D, Eggert P, Stallman R. Comparing and Merging Files with GNU Diff and Patch. Network Theory Ltd. UK, Jan. 2003. Unified Format section, (Available from: http://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html). 2008; 25 2009 2008 2007 2006 2005 2003 2001 2000 2011 2010 Kremenek T (e_1_2_13_7_1) 2006 Ball T (e_1_2_13_3_1) 2006 e_1_2_13_15_1 MacKenzie D (e_1_2_13_13_1) 2003 e_1_2_13_16_1 e_1_2_13_11_1 e_1_2_13_22_1 e_1_2_13_9_1 Engler DR (e_1_2_13_5_1) 2000 e_1_2_13_8_1 Ramanathan MK (e_1_2_13_17_1) 2007 Lo D (e_1_2_13_12_1) 2008 Tan L (e_1_2_13_20_1) 2007 Olesen MC (e_1_2_13_14_1) 2010 Stuart H (e_1_2_13_19_1) 2007 Brunel J (e_1_2_13_4_1) 2009 Yang J (e_1_2_13_23_1) 2006 e_1_2_13_2_1 Tan L (e_1_2_13_21_1) 2008 Engler DR (e_1_2_13_6_1) 2001 Li Z (e_1_2_13_10_1) 2005 e_1_2_13_18_1 |
| References_xml | – reference: Ayewah N, Hovemeyer D, Morgenthaler JD, Penix J, Pugh W. Using static analysis to find bugs. IEEE Software 2008; 25(5):22-29. – reference: MacKenzie D, Eggert P, Stallman R. Comparing and Merging Files with GNU Diff and Patch. Network Theory Ltd. UK, Jan. 2003. Unified Format section, (Available from: http://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html). – start-page: 292 year: 2009 end-page: 306 – start-page: 240 year: 2007 end-page: 250 – start-page: 50 year: 2008 end-page: 56 – start-page: 379 year: 2008 end-page: 394 – start-page: 114 year: 2009 end-page: 126 – year: 2008 – year: 2007 – year: 2003 – start-page: 305 year: 2011 end-page: 318 – start-page: 247 year: 2008 end-page: 260 – start-page: 43 year: 2009 end-page: 52 – start-page: 145 year: 2007 end-page: 158 – start-page: 461 year: 2005 end-page: 476 – start-page: 73 year: 2006 end-page: 85 – start-page: 306 year: 2005 end-page: 315 – start-page: 57 year: 2001 end-page: 72 – start-page: 282 year: 2006 end-page: 291 – start-page: 1 year: 2000 end-page: 16 – volume: 25 start-page: 22 issue: 5 year: 2008 end-page: 29 article-title: Using static analysis to find bugs publication-title: IEEE Software – start-page: 161 year: 2006 end-page: 176 – year: 2010 – ident: e_1_2_13_8_1 doi: 10.1109/DSN.2009.5270354 – start-page: 240 volume-title: 29th International Conference on Software Engineering year: 2007 ident: e_1_2_13_17_1 – volume-title: 4th Workshop on Programming Languages and Operating Systems (PLOS 2007) year: 2007 ident: e_1_2_13_19_1 – start-page: 282 volume-title: 28th International Conference on Software Engineering (ICSE) year: 2006 ident: e_1_2_13_23_1 – start-page: 57 volume-title: Proceedings of the 18th ACM Symposium on Operating System Principles year: 2001 ident: e_1_2_13_6_1 – ident: e_1_2_13_16_1 doi: 10.1145/1950365.1950401 – start-page: 50 volume-title: International Workshop on Dynamic Analysis year: 2008 ident: e_1_2_13_12_1 – start-page: 1 volume-title: Fourth USENIX Symposium on Operating Systems Design and Implementation (OSDI) year: 2000 ident: e_1_2_13_5_1 – ident: e_1_2_13_22_1 doi: 10.1007/978-3-540-31980-1_30 – ident: e_1_2_13_11_1 – start-page: 145 volume-title: Proceedings of the 21st ACM Symposium on Operating System Principles year: 2007 ident: e_1_2_13_20_1 – ident: e_1_2_13_2_1 doi: 10.1109/MS.2008.130 – ident: e_1_2_13_18_1 – start-page: 161 volume-title: OSDI year: 2006 ident: e_1_2_13_7_1 – volume-title: 4th International Workshop on Foundations and Techniques for Open Source Software Certification year: 2010 ident: e_1_2_13_14_1 – ident: e_1_2_13_15_1 doi: 10.1145/1352592.1352618 – start-page: 306 volume-title: Proceedings of the 10th European Software Engineering Conference held jointly with the 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering year: 2005 ident: e_1_2_13_10_1 – ident: e_1_2_13_9_1 doi: 10.1007/978-3-642-00768-2_26 – start-page: 73 volume-title: The first ACM SIGOPS EuroSys conference (EuroSys 2006) year: 2006 ident: e_1_2_13_3_1 doi: 10.1145/1217935.1217943 – volume-title: Comparing and Merging Files with GNU Diff and Patch year: 2003 ident: e_1_2_13_13_1 – start-page: 379 volume-title: USENIX Security Symposium year: 2008 ident: e_1_2_13_21_1 – start-page: 114 volume-title: The 36th Annual ACM SIGPLAN‐SIGACT Symposium on Principles of Programming Languages year: 2009 ident: e_1_2_13_4_1 doi: 10.1145/1480881.1480897 |
| SSID | ssj0011526 |
| Score | 2.0411358 |
| Snippet | SUMMARY
Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all... Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible... SUMMARY Bug-finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all... Bug-finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible... |
| SourceID | hal proquest crossref wiley istex |
| SourceType | Open Access Repository Aggregation Database Enrichment Source Index Database Publisher |
| StartPage | 67 |
| SubjectTerms | API bug finding Computer programs Computer Science Construction equipment Heuristic Inference Linux Operating Systems program analysis Software Software Engineering Specifications Strategy |
| Title | WYSIWIB: exploiting fine-grained program structure in a scriptable API-usage protocol-finding process |
| URI | https://api.istex.fr/ark:/67375/WNG-78P5RH23-K/fulltext.pdf https://onlinelibrary.wiley.com/doi/abs/10.1002%2Fspe.2102 https://www.proquest.com/docview/1239586822 https://www.proquest.com/docview/1671444998 https://hal.science/hal-00940320 |
| Volume | 43 |
| WOSCitedRecordID | wos000312653300003&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVWIB databaseName: Wiley Online Library Full Collection 2020 customDbUrl: eissn: 1097-024X dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0011526 issn: 0038-0644 databaseCode: DRFUL dateStart: 19960101 isFulltext: true titleUrlDefault: https://onlinelibrary.wiley.com providerName: Wiley-Blackwell |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV1Lb9NAEB7RhAMXylMNFLQgBCfTZG3vrrmlpSERVRS1VCmn1b7SRkVOlDQVR34Cv5FfwoxfUAkkJC62ZI_t1e7Mzjfe2W8AXlnhbRx4iFSczKIEEXxkjMxwMhQukalV3HaLYhNyPFZnZ9mkyqqkvTAlP0Tzw40so5ivycCNXe_9Ig1dL8Nbile2oM1RbZMWtN8fD06PmjUE9EyiJGVUETrepKae7fK9-tkbzmjrglIh29S7X2_gzd9Ra-F2Btv_0-B7cLcCm6xfasd9uBXyB7BdF3JglV0_hMvp55PRdLT_jgVKyZtTKjSb4Qd_fPt-TjUkgmdVIhcrCWc3q8DmOTOsnHVo_xXrT0Yov6FMNZK-WqCO4YViVRzftyy3JDyC08Hhp4NhVFVhiFycIfz2MjWIWbIgk0zOlEmDkHiw0jsnEieFsVnqlPGmZxG8cd-1iBJc1gsW0ZUz8WNo5Ys87ADrhYCviYXyDiNy7pXDaMl1CWIglIh9B97Uw6FdRVFOlTK-6JJcmWvsQ0192IEXjeSypOX4g8xLHNHmNvFoD_tHmq5RPiVVjr_udeB1MeCNmFldUq6bTPV0_EFLNUmPhzzWHzuwW2uErsx8rdHtZ6kSCLKwQc1tNFBadTF5WGxQRkgMWjGwVPitQj_-2mJ9Mjmk85N_FXwKd3hRnoN-Ce1CCzUgPIPb7vpqvl49rwziJ0eaEFI |
| linkProvider | Wiley-Blackwell |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV1LbxMxEB61CRJcKK-qgQIGITgtTfZhe8spQEOihijqQykny69AVLSJkqbiyE_gN_aXMLMvqAQSEpestDvZtewZzzf2-BuAF4Y7E_nQBzKKp0GMCD7QWqQ4GXIbi8TI0LTzYhNiNJJnZ-l4A95UZ2EKfoh6wY0sI5-vycBpQXrvF2voauFfU8CyCc0YtShpQPP9Ue90WG8ioGviBSujDNDzxhX3bDvcq_57zRttfqFcyCZ177drgPN32Jr7nd7Wf7X4Dtwu4SbrFvpxFzZ8dg-2qlIOrLTs-3A--XQ8mAze7jNPSXkzSoZmU_zi1fcfn6mKhHesTOViBeXseunZLGOaFfMOncBi3fEA5deUq0bSF3PUMryR74vj-xbFoYQHcNo7OHnXD8o6DIGNUgTgTiQaUUvqRZyKqdSJ5wJ_jHDW8tgKrk2aWKmd7hiEb6FrG8QJNu14g_jK6mgbGtk88zvAOt7jayIuncWYPHTSYrxk2wQyEExErgWvqvFQtiQpp1oZX1VBrxwq7ENFfdiCZ7XkoiDm-IPMcxzS-jExafe7Q0X3KKOSasdfdlrwMh_xWkwvzynbTSRqMvqghBwnR_0wUoct2K1UQpWGvlLo-NNEcoRZ2KD6MZoo7bvozM_XKMMFhq0YWkr8Vq4gf22xOh4f0PXhvwo-hZv9k49DNRyMDh_BrTAv1kELRLvQQG3wj-GGvbyYrZZPSuv4CYRvFEI |
| linkToPdf | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV1Lb9NAEB61DUJcKE8RKLAgBCfTxI99wCnQhkSNIqulSntarXc3bVTkRElTceQn8Bv5Jcz4BZVAQuJiS_bYXu3O7Hzjnf0G4FXGXRb50AcyiqdBjAg-MEYonAy5jUWSyTDrFMUmxHgsT05UugHv670wJT9E88ONLKOYr8nA_cJNd3-xhq4W_i0FLJvQihPF0Spbe4f941GziICuiZesjDJAzxvX3LOdcLd-9po32jynXMgWde_Xa4Dzd9ha-J3-9n-1-A7cruAm65X6cRc2fH4PtutSDqyy7PtwMTk9Gk6GH94xT0l5M0qGZlP84o9v38-oioR3rErlYiXl7Hrp2SxnhpXzDu3AYr10iPJrylUj6cs5ahleKNbF8X2LclPCAzju73_-OAiqOgyBjRQCcCcSg6hFeRErMZUm8VzgIRPOWh5bwU2mEiuNM90M4VvoOhniBKu6PkN8ZU30ELbyee4fAet6j6-JuHQWY_LQSYvxku0QyEAwEbk2vKnHQ9uKpJxqZXzRJb1yqLEPNfVhG140kouSmOMPMi9xSJvbxKQ96I00XaOMSqodf9Vtw-tixBsxs7ygbDeR6Mn4kxYyTQ4HYaQP2rBTq4SuDH2l0fGrRHKEWdig5jaaKK27mNzP1yjDBYatGFpK_FahIH9tsT5K9-n8-F8Fn8PNdK-vR8PxwRO4FRa1Ouj_0A5soTL4p3DDXl3OVstnlXH8BPM8E70 |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=WYSIWIB%3A+exploiting+fine-grained+program+structure+in+a+scriptable+API-usage+protocol-finding+process&rft.jtitle=Software%2C+practice+%26+experience&rft.au=Lawall%2C+Julia+L&rft.au=Brunel%2C+Julien&rft.au=Palix%2C+Nicolas&rft.au=Hansen%2C+Ren%C3%A9+Rydhof&rft.date=2013-01-01&rft.pub=Wiley+Subscription+Services%2C+Inc&rft.issn=0038-0644&rft.eissn=1097-024X&rft.volume=43&rft.issue=1&rft.spage=67&rft_id=info:doi/10.1002%2Fspe.2102&rft.externalDBID=NO_FULL_TEXT&rft.externalDocID=2844391661 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0038-0644&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0038-0644&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0038-0644&client=summon |